llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands 4a544a79bd Split the init.trampoline intrinsic, which currently combines GCC's
init.trampoline and adjust.trampoline intrinsics, into two intrinsics
like in GCC.  While having one combined intrinsic is tempting, it is
not natural because typically the trampoline initialization needs to
be done in one function, and the result of adjust trampoline is needed
in a different (nested) function.  To get around this llvm-gcc hacks the
nested function lowering code to insert an additional parent variable
holding the adjust.trampoline result that can be accessed from the child
function.  Dragonegg doesn't have the luxury of tweaking GCC code, so it
stored the result of adjust.trampoline in the memory GCC set aside for
the trampoline itself (this is always available in the child function),
and set up some new memory (using an alloca) to hold the trampoline.
Unfortunately this breaks Go which allocates trampoline memory on the
heap and wants to use it even after the parent has exited (!).  Rather
than doing even more hacks to get Go working, it seemed best to just use
two intrinsics like in GCC.  Patch mostly by Sanjoy Das.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139140 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06 13:37:06 +00:00
..
CMakeLists.txt Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
DAGCombiner.cpp Roll back the rest of r126557. It's a hack that will break in some obscure cases. 2011-08-19 22:39:31 +00:00
FastISel.cpp FastISel: avoid function calls between the materialization of the constant and its use. 2011-08-18 22:06:10 +00:00
FunctionLoweringInfo.cpp Add the support in code-gen for the landingpad instruction lowering. 2011-08-17 21:56:44 +00:00
InstrEmitter.cpp Follow up to r138791. 2011-08-30 19:09:48 +00:00
InstrEmitter.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
LegalizeDAG.cpp Split the init.trampoline intrinsic, which currently combines GCC's 2011-09-06 13:37:06 +00:00
LegalizeFloatTypes.cpp Misc cleanup; addresses Duncan's comments on r138877. 2011-08-31 20:13:26 +00:00
LegalizeIntegerTypes.cpp Misc cleanup; addresses Duncan's comments on r138877. 2011-08-31 20:13:26 +00:00
LegalizeTypes.cpp Misc cleanup; addresses Duncan's comments on r138877. 2011-08-31 20:13:26 +00:00
LegalizeTypes.h Misc cleanup; addresses Duncan's comments on r138877. 2011-08-31 20:13:26 +00:00
LegalizeTypesGeneric.cpp Fill in type legalization for MERGE_VALUES in all the various cases. Patch by Micah Villmow. (No testcase because the issue only showed up in an out-of-tree backend.) 2011-08-31 18:36:04 +00:00
LegalizeVectorOps.cpp [VECTOR-SELECT] 2011-07-14 11:11:14 +00:00
LegalizeVectorTypes.cpp Fill in type legalization for MERGE_VALUES in all the various cases. Patch by Micah Villmow. (No testcase because the issue only showed up in an out-of-tree backend.) 2011-08-31 18:36:04 +00:00
Makefile
ScheduleDAGFast.cpp - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
ScheduleDAGList.cpp Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
ScheduleDAGRRList.cpp PreRA scheduler should avoid cloning compares. 2011-09-01 00:54:31 +00:00
ScheduleDAGSDNodes.cpp Rename TargetSubtarget to TargetSubtargetInfo for consistency. 2011-07-01 21:01:15 +00:00
ScheduleDAGSDNodes.h The index stored in the RegDefIter is one after the current index. When getting the index, decrement it so that it points to the current element. Fixes an off-by-one bug encountered when trying to make use of MVT::untyped. 2011-06-27 18:34:12 +00:00
SDNodeDbgValue.h Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. 2011-02-18 22:43:42 +00:00
SDNodeOrdering.h
SelectionDAG.cpp Split the init.trampoline intrinsic, which currently combines GCC's 2011-09-06 13:37:06 +00:00
SelectionDAGBuilder.cpp Split the init.trampoline intrinsic, which currently combines GCC's 2011-09-06 13:37:06 +00:00
SelectionDAGBuilder.h Basic x86 code generation for atomic load and store instructions. 2011-08-24 20:50:09 +00:00
SelectionDAGISel.cpp Follow up to r138791. 2011-08-30 19:09:48 +00:00
SelectionDAGPrinter.cpp Pass the graph to the DOTGraphTraits.getEdgeAttributes(). 2011-02-27 04:11:03 +00:00
TargetLowering.cpp Fix a truly heinous bug in DAGCombine related to AssertZext. 2011-09-03 00:26:49 +00:00
TargetSelectionDAGInfo.cpp Implement a bunch more TargetSelectionDAGInfo infrastructure. 2010-05-11 17:31:57 +00:00