llvm-project/llvm/lib
Nikita Popov 198ab60136 [ConstantRange] Add saturating add/sub methods
Add support for uadd_sat and friends to ConstantRange, so we can
handle uadd.sat and friends in LVI. The implementation is forwarding
to the corresponding APInt methods with appropriate bounds.

One thing worth pointing out here is that the handling of wrapping
ranges is not maximally accurate. A simple example is that adding 0
to a wrapped range will return a full range, rather than the original
wrapped range. The tests also only check that the non-wrapping
envelope is correct and minimal.

Differential Revision: https://reviews.llvm.org/D60946

llvm-svn: 358855
2019-04-21 15:23:05 +00:00
..
Analysis [ConstantRange] Add getNonEmpty() constructor 2019-04-21 15:22:54 +00:00
AsmParser Add LLVM IR debug info support for Fortran COMMON blocks 2019-04-08 19:13:55 +00:00
BinaryFormat [XCOFF] Add functionality for parsing AIX XCOFF object file headers 2019-04-04 00:53:21 +00:00
Bitcode Use llvm::lower_bound. NFC 2019-04-12 02:02:06 +00:00
CodeGen Revert r358800. Breaks Obsequi from the test suite. 2019-04-20 21:25:00 +00:00
DebugInfo [llvm-symbolizer] Fix section index at the end of a section 2019-04-20 13:00:09 +00:00
Demangle llvm-undname: Fix stack overflow on invalid found by oss-fuzz 2019-04-21 14:25:07 +00:00
ExecutionEngine [JITLink] Remove an overly strict error check in JITLink's eh-frame parser. 2019-04-21 04:48:32 +00:00
FuzzMutate [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Fuzzer
IR [ConstantRange] Add saturating add/sub methods 2019-04-21 15:23:05 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO [NewPassManager] Adding pass tuning options: loop vectorize. 2019-04-19 16:11:59 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker [Linker] Fix crash handling appending linkage 2019-03-20 19:20:07 +00:00
MC [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt 2019-04-19 02:26:56 +00:00
MCA [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
Object [WebAssembly] Object: Improve error messages on invalid section 2019-04-20 00:11:46 +00:00
ObjectYAML MinidumpYAML: Fix ambiguity between std::make_unique and llvm::make_unique 2019-04-18 15:06:03 +00:00
Option Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Passes Remove the EnableEarlyCSEMemSSA set of options from the legacy 2019-04-19 22:18:53 +00:00
ProfileData Change some StringRef::data() reinterpret_cast to bytes_begin() or arrayRefFromStringRef() 2019-04-07 03:58:42 +00:00
Remarks [Remarks] Fix mismatched delete due to missing virtual destructor 2019-03-20 17:44:24 +00:00
Support [CachePruning] Simplify comparator 2019-04-21 06:17:40 +00:00
TableGen [TableGen] Introduce !listsplat 'binary' operator 2019-04-10 18:26:36 +00:00
Target [ARM] Rewrite isLegalT2AddressImmediate 2019-04-21 09:54:29 +00:00
Testing Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TextAPI [TextAPI] Prefix all architecture enums to fix the build on i386. 2019-04-04 22:56:50 +00:00
ToolDrivers [llvm-ar][libObject] Fix relative paths when nesting thin archives. 2019-02-13 23:39:41 +00:00
Transforms [CorrelatedValuePropagation] Mark subs that we know not to wrap with nuw/nsw. 2019-04-20 13:14:18 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00