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 DWARF Type Units: Avoid emitting type units under fission if the type requires an address. 2014-04-26 17:27:38 +00:00
AddressPool.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
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 Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
AsmPrinterHandler.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AsmPrinterInlineAsm.cpp [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. 2014-12-17 10:56:16 +00:00
ByteStreamer.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
CMakeLists.txt Move DwarfCompileUnit from DwarfUnit.h to its own header (DwarfCompileUnit.h) 2014-10-04 15:49:50 +00:00
DbgValueHistoryCalculator.cpp DbgValueHistoryCalculator: Store modified registers in a BitVector instead of std::set. 2014-10-06 15:31:04 +00:00
DbgValueHistoryCalculator.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
DebugLocEntry.h Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
DebugLocList.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
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 CodeGen: split out the Win64Exception emitter 2014-09-01 23:48:34 +00:00
DwarfFile.cpp Sink dwarf unit length emission down into DwarfUnit::emitHeader 2014-11-01 23:59:23 +00:00
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 Remove the unused string section symbol parameter from DwarfFile::emitStrings 2014-09-11 21:12:48 +00:00
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 Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
OcamlGCPrinter.cpp GCStrategy should not own GCFunctionInfo 2014-12-11 01:47:23 +00:00
Win64Exception.cpp CodeGen: split out the Win64Exception emitter 2014-09-01 23:48:34 +00:00
Win64Exception.h CodeGen: split out the Win64Exception emitter 2014-09-01 23:48:34 +00:00
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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00