llvm-6502/lib/CodeGen/SelectionDAG
Philip Reames 07fbc5c1c6 Move ownership of GCStrategy objects to LLVMContext
Note: This change ended up being slightly more controversial than expected.  Chandler has tentatively okayed this for the moment, but I may be revisiting this in the near future after we settle some high level questions.

Rather than have the GCStrategy object owned by the GCModuleInfo - which is an immutable analysis pass used mainly by gc.root - have it be owned by the LLVMContext. This simplifies the ownership logic (i.e. can you have two instances of the same strategy at once?), but more importantly, allows us to access the GCStrategy in the middle end optimizer. To this end, I add an accessor through Function which becomes the canonical way to get at a GCStrategy instance.

In the near future, this will allows me to move some of the checks from http://reviews.llvm.org/D6808 into the Verifier itself, and to introduce optimization legality predicates for some of the recent additions to InstCombine. (These will follow as separate changes.)

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226311 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-16 20:07:33 +00:00
..
CMakeLists.txt
DAGCombiner.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
FastISel.cpp [PM] Move TargetLibraryInfo into the Analysis library. 2015-01-15 02:16:27 +00:00
FunctionLoweringInfo.cpp Remove dead code for llvm.eh.selector in the old EH model 2015-01-14 18:49:39 +00:00
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp Implement new way of expanding extloads. 2015-01-14 01:35:17 +00:00
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp Masked Load/Store - fixed a bug in type legalization. 2015-01-08 12:29:19 +00:00
LegalizeTypes.cpp
LegalizeTypes.h Masked Load/Store - fixed a bug in type legalization. 2015-01-08 12:29:19 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp [SelectionDAG] Allow targets to specify legality of extloads' result 2015-01-08 00:51:32 +00:00
LegalizeVectorTypes.cpp Masked Load/Store - fixed a bug in type legalization. 2015-01-08 12:29:19 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp
ScheduleDAGSDNodes.cpp Adjust ScheduleDAGSDNodes::RegDefIter for patchpoints 2015-01-14 01:07:03 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp Implement new way of expanding extloads. 2015-01-14 01:35:17 +00:00
SelectionDAGBuilder.cpp Move ownership of GCStrategy objects to LLVMContext 2015-01-16 20:07:33 +00:00
SelectionDAGBuilder.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
SelectionDAGDumper.cpp
SelectionDAGISel.cpp Move ownership of GCStrategy objects to LLVMContext 2015-01-16 20:07:33 +00:00
SelectionDAGPrinter.cpp
StatepointLowering.cpp Move ownership of GCStrategy objects to LLVMContext 2015-01-16 20:07:33 +00:00
StatepointLowering.h
TargetLowering.cpp Replace size method call of containers to empty method where appropriate 2015-01-15 11:41:30 +00:00
TargetSelectionDAGInfo.cpp