llvm-6502/lib/CodeGen/SelectionDAG
Sanjoy Das 8fadf8f4d3 [SelectionDAG] Fix PR23603.
Summary:
LLVM's MI level notion of invariant_load is different from LLVM's IR
level notion of invariant_load with respect to dereferenceability.  The
IR notion of invariant_load only guarantees that all *non-faulting*
invariant loads result in the same value.  The MI notion of invariant
load guarantees that the load can be legally moved to any location
within its containing function.  The MI notion of invariant_load is
stronger than the IR notion of invariant_load -- an MI invariant_load is
an IR invariant_load + a guarantee that the location being loaded from
is dereferenceable throughout the function's lifetime.

Reviewers: hfinkel, reames

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238881 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 22:33:30 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Add target hook to allow merging stores of nonzero constants 2015-05-24 00:51:27 +00:00
FastISel.cpp [Fast-ISel] Don't mark the first use of a remat constant as killed. 2015-05-09 00:51:03 +00:00
FunctionLoweringInfo.cpp [WinEH] Start inserting state number stores for C++ EH 2015-05-28 22:00:24 +00:00
InstrEmitter.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
InstrEmitter.h
LegalizeDAG.cpp Add SDNodes for umin, umax, smin and smax. 2015-05-15 09:03:15 +00:00
LegalizeFloatTypes.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeIntegerTypes.cpp SelectionDAG: fix logic for promoting shift types 2015-05-29 23:37:22 +00:00
LegalizeTypes.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeTypes.h Added promotion to EXTRACT_SUBVECTOR operand. 2015-05-25 11:33:13 +00:00
LegalizeTypesGeneric.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeVectorOps.cpp Add SDNodes for umin, umax, smin and smax. 2015-05-15 09:03:15 +00:00
LegalizeVectorTypes.cpp Add SDNodes for umin, umax, smin and smax. 2015-05-15 09:03:15 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
ScheduleDAGSDNodes.cpp Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types 2015-05-29 19:43:39 +00:00
ScheduleDAGSDNodes.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
ScheduleDAGVLIW.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SDNodeDbgValue.h SDAG: Cleanup initialization of SDDbgValue, NFC 2015-05-22 05:35:53 +00:00
SelectionDAG.cpp [sdag] Add the helper I most want to the DAG -- building a bitcast 2015-05-30 04:14:10 +00:00
SelectionDAGBuilder.cpp [SelectionDAG] Fix PR23603. 2015-06-02 22:33:30 +00:00
SelectionDAGBuilder.h [SelectionDAG] Delete SelectionDAGBuilder::removeValue. NFC. 2015-05-06 18:02:10 +00:00
SelectionDAGDumper.cpp Add SDNodes for umin, umax, smin and smax. 2015-05-15 09:03:15 +00:00
SelectionDAGISel.cpp Preserve the order of READ_REGISTER and WRITE_REGISTER 2015-05-18 16:42:10 +00:00
SelectionDAGPrinter.cpp
StatepointLowering.cpp [StatepointLowering] Support of the gc.relocates for invoke statepoints. 2015-05-20 11:37:25 +00:00
StatepointLowering.h [StatepointLowering] Support of the gc.relocates for invoke statepoints. 2015-05-20 11:37:25 +00:00
TargetLowering.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
TargetSelectionDAGInfo.cpp