llvm-mirror/docs
Duncan Sands 6939ae53ac 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.

llvm-svn: 139140
2011-09-06 13:37:06 +00:00
..
CommandGuide
HistoricalNotes
img
tutorial
AliasAnalysis.html
Atomics.html
BitCodeFormat.html
BranchWeightMetadata.html
Bugpoint.html
CFEBuildInstrs.html
CMake.html
CodeGenerator.html
CodingStandards.html
CommandLine.html
CompilerDriver.html
CompilerDriverTutorial.html
CompilerWriterInfo.html
DebuggingJITedCode.html
DeveloperPolicy.html
doxygen.cfg.in
doxygen.css
doxygen.footer
doxygen.header
doxygen.intro
ExceptionHandling.html
ExtendedIntegerResults.txt
ExtendingLLVM.html
FAQ.html
GarbageCollection.html
GCCFEBuildInstrs.html
GetElementPtr.html
GettingStarted.html
GettingStartedVS.html
GoldPlugin.html
HowToReleaseLLVM.html
HowToSubmitABug.html
index.html
LangRef.html
Lexicon.html
LinkTimeOptimization.html
llvm.css
Makefile
MakefileGuide.html
Packaging.html
Passes.html
ProgrammersManual.html
Projects.html
re_format.7
ReleaseNotes.html
SegmentedStacks.html
SourceLevelDebugging.html
SystemLibrary.html
TableGenFundamentals.html
TestingGuide.html
UsingLibraries.html
WritingAnLLVMBackend.html
WritingAnLLVMPass.html