1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib
Philip Reames 965addef14 [LVI] Introduce an intersect operation on lattice values
LVI has several separate sources of facts - edge local conditions, recursive queries, assumes, and control independent value facts - which all apply to the same value at the same location. The existing implementation was very conservative about exploiting all of these facts at once.

This change introduces an "intersect" function specifically to abstract the action of picking a good set of facts from all of the separate facts given. At the moment, this function is relatively simple (i.e. mostly just reuses the bits which were already there), but even the minor additions reveal the inherent power. For example, JumpThreading is now capable of doing an inductive proof that a particular value is always positive and removing a half range check.

I'm currently only using the new intersect function in one place. If folks are happy with the direction of the work, I plan on making a series of small changes without review to replace mergeIn with intersect at all the appropriate places.

Differential Revision: http://reviews.llvm.org/D14476

llvm-svn: 259461
2016-02-02 03:15:40 +00:00
..
Analysis [LVI] Introduce an intersect operation on lattice values 2016-02-02 03:15:40 +00:00
AsmParser Remove autoconf support 2016-01-26 21:29:08 +00:00
Bitcode [ThinLTO] Ensure function summary output order is stable 2016-02-01 20:16:35 +00:00
CodeGen MachineVerifier: Use report_context() instead of ad-hoc messages. 2016-02-02 02:44:25 +00:00
DebugInfo [DebugInfo] Support zero-length CIE in the _eh_frame parser 2016-01-27 14:05:35 +00:00
ExecutionEngine [RuntimeDyld][MachO] Fix handling of empty eh-frame sections. 2016-01-28 22:35:48 +00:00
Fuzzer [libFuzzer] allow passing 1 or more files as individual inputs 2016-02-02 03:03:47 +00:00
IR clean up; NFC 2016-01-31 16:32:23 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker Improve efficiency of handling unmapped subprogram metadata 2016-01-28 15:08:09 +00:00
LTO Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
MC Fix infinite recursion in MCAsmStreamer::EmitValueImpl. 2016-02-01 20:36:49 +00:00
Object Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes Remove autoconf support 2016-01-26 21:29:08 +00:00
ProfileData [Profiling] Add a -sparse mode to llvm-profdata merge 2016-01-29 22:54:45 +00:00
Support Shrink character buffer size in raw_ostream::write_hex to 16 characters intead of 20 as that's the largest string a 64-bit hex value can be. 2016-01-31 01:12:38 +00:00
TableGen Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Target [X86] Fix a bug in getMemOpBaseRegImmOfs 2016-02-02 02:32:43 +00:00
Transforms function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
CMakeLists.txt
LLVMBuild.txt