llvm-6502/lib/VMCore
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
..
AsmWriter.cpp
Attributes.cpp
AutoUpgrade.cpp Split the init.trampoline intrinsic, which currently combines GCC's 2011-09-06 13:37:06 +00:00
BasicBlock.cpp Add getFirstInsertionPt() method. 2011-08-16 20:42:52 +00:00
CMakeLists.txt
ConstantFold.cpp Return undef value (instead of arbitrary) for wrong or undef index in 2011-09-02 17:01:40 +00:00
ConstantFold.h
Constants.cpp Implement Constant::isAllOnesValue(). Fix ConstantFolding to use the new api. 2011-08-24 20:18:38 +00:00
ConstantsContext.h
Core.cpp Add some useful accessors to c++ api that appear to be missing from the c api 2011-08-23 20:27:46 +00:00
DebugInfoProbe.cpp
DebugLoc.cpp
Dominators.cpp
Function.cpp
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp Make isSafeToSpeculativelyExecute() return the right answer for some new instructions. Found by inspection; not sure what practical impact, if any, this has. 2011-09-01 21:03:03 +00:00
Instructions.cpp Fixes following the CR by Chris and Duncan: 2011-08-29 19:58:36 +00:00
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMContext.cpp
LLVMContextImpl.cpp
LLVMContextImpl.h
Makefile
Metadata.cpp
Module.cpp
Pass.cpp
PassManager.cpp Dump with dbgs() instead of printf. 2011-08-29 18:14:17 +00:00
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp Rip out the old StructType APIs as warned about on llvmdev last week. 2011-08-18 17:39:28 +00:00
Use.cpp
User.cpp
Value.cpp
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp