llvm-6502/include/llvm
Andrew Trick 501aeea325 StackMap: Implement support for DirectMemRefOp.
A Direct stack map location records the address of frame index. This
address is itself the value that the runtime requested. This differs
from IndirectMemRefOp locations, which refer to a stack locations from
which the requested values must be loaded. Direct locations can
directly communicate the address if an alloca, while IndirectMemRefOp
handle register spills.

For example:

entry:
  %a = alloca i64...
  llvm.experimental.stackmap(i32 <ID>, i32 <shadowBytes>, i64* %a)

Since both the alloca and stackmap intrinsic are in the entry block,
and the intrinsic takes the address of the alloca, the runtime can
assume that LLVM will not substitute alloca with any intervening
value. This must be verified by the runtime by checking that the stack
map's location is a Direct location type. The runtime can then
determine the alloca's relative location on the stack immediately after
compilation, or at any time thereafter. This differs from Register and
Indirect locations, because the runtime can only read the values in
those locations when execution reaches the instruction address of the
stack map.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195712 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-26 02:03:25 +00:00
..
ADT Lift self-copy protection up to the header file and add self-move 2013-11-26 00:54:44 +00:00
Analysis [PM] Make the (really awesome) file comment here available as part of 2013-11-26 01:27:20 +00:00
Assembly
Bitcode Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
CodeGen Fix a typo where we were creating <def,kill> operands instead of 2013-11-22 00:46:32 +00:00
Config Update to reflect the next release. 2013-11-20 10:10:50 +00:00
DebugInfo
ExecutionEngine [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
IR Add an intrinsic for the SSE2 PAUSE instruction. 2013-11-26 00:20:43 +00:00
IRReader
LTO Protect user-supplied runtime library functions in LTO 2013-11-12 21:44:01 +00:00
MC Teach ISel not to optimize 'optnone' functions (revised). 2013-11-22 19:11:24 +00:00
Object Readobj: If NumbersOfSections is 0xffff, it's an COFF import library. 2013-11-15 20:23:25 +00:00
Option
Support Debug Info: add a constant for debug info version number. 2013-11-22 19:41:59 +00:00
TableGen
Target StackMap: Implement support for DirectMemRefOp. 2013-11-26 02:03:25 +00:00
Transforms Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
AutoUpgrade.h Fix spacing, forward declare order. 2013-11-18 02:51:33 +00:00
CMakeLists.txt
DebugInfo.h Debug Info: move StripDebugInfo from StripSymbols.cpp to DebugInfo.cpp. 2013-11-22 22:06:31 +00:00
DIBuilder.h DebugInfo: Simplify a few more explicit constructions, underconstrained types, and make DIType(MDNode*) explicit like all the other DI* node ctors. 2013-11-18 23:33:32 +00:00
GVMaterializer.h Use error_code in GVMaterializer. 2013-11-05 19:36:34 +00:00
InitializePasses.h Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
InstVisitor.h Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
LinkAllIR.h
LinkAllPasses.h Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h
PassSupport.h