llvm-6502/lib/CodeGen/AsmPrinter
Philip Reames 28fa9e1e9f Introduce an example statepoint GC strategy
This change includes the most basic possible GCStrategy for a GC which is using the statepoint lowering code. At the moment, this GCStrategy doesn't really do much - aside from actually generate correct stackmaps that is - but I went ahead and added a few extra correctness checks as proof of concept. It's mostly here to provide documentation on how to do one, and to provide a point for various optimization legality hooks I'd like to add going forward. (For context, see the TODOs in InstCombine around gc.relocate.)

Most of the validation logic added here as proof of concept will soon move in to the Verifier.  That move is dependent on http://reviews.llvm.org/D6811

There was discussion in the review thread about addrspace(1) being reserved for something.  I'm going to follow up on a seperate llvmdev thread.  If needed, I'll update all the code at once.

Note that I am deliberately not making a GCStrategy required to use gc.statepoints with this change. I want to give folks out of tree - including myself - a chance to migrate. In a week or two, I'll make having a GCStrategy be required for gc.statepoints. To this end, I added the gc tag to one of the test cases but not others.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225365 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-07 19:07:50 +00:00
..
AddressPool.cpp
AddressPool.h
ARMException.cpp Allow the use of functions as typeinfo in landingpad clauses 2014-11-14 00:35:50 +00:00
AsmPrinter.cpp Introduce an example statepoint GC strategy 2015-01-07 19:07:50 +00:00
AsmPrinterDwarf.cpp
AsmPrinterHandler.h
AsmPrinterInlineAsm.cpp [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. 2014-12-17 10:56:16 +00:00
ByteStreamer.h
CMakeLists.txt
DbgValueHistoryCalculator.cpp
DbgValueHistoryCalculator.h
DebugLocEntry.h
DebugLocList.h
DIE.cpp Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DIEHash.cpp Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DIEHash.h Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DwarfAccelTable.cpp Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DwarfAccelTable.h Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DwarfCFIException.cpp Rename EH related stuff to be more precise 2014-11-14 23:31:07 +00:00
DwarfCompileUnit.cpp Cleanup: Calls to getDwarfRegNum() may actually fail, if there is 2014-12-05 01:02:46 +00:00
DwarfCompileUnit.h Provide gmlt-like inline scope information in the skeleton CU to facilitate symbolication without needing the .dwo files 2014-11-04 22:12:25 +00:00
DwarfDebug.cpp Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DwarfDebug.h Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
DwarfException.h
DwarfFile.cpp
DwarfFile.h Move cross-unit DIE caching to the DwarfFile level, so it doesn't interfere with fission-gmlt data and produce skeleton<>full unit cross referencing. 2014-11-04 22:12:18 +00:00
DwarfStringPool.cpp Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
DwarfStringPool.h
DwarfUnit.cpp Debug Info: In symmetry to DW_TAG_pointer_type, do not emit the byte size 2014-12-24 01:17:51 +00:00
DwarfUnit.h Make DIE.h a public CodeGen header. 2015-01-05 21:29:41 +00:00
EHStreamer.cpp EH: Sink computation of local PadMap variable into function that uses it 2014-12-19 22:30:08 +00:00
EHStreamer.h EH: Sink computation of local PadMap variable into function that uses it 2014-12-19 22:30:08 +00:00
ErlangGCPrinter.cpp GCStrategy should not own GCFunctionInfo 2014-12-11 01:47:23 +00:00
LLVMBuild.txt
Makefile
OcamlGCPrinter.cpp GCStrategy should not own GCFunctionInfo 2014-12-11 01:47:23 +00:00
Win64Exception.cpp
Win64Exception.h
WinCodeViewLineTables.cpp Temporary fix for PR21528 - use mangled C++ function names in COFF debug info to un-break ASan on Windows 2014-11-12 20:21:20 +00:00
WinCodeViewLineTables.h