llvm-6502/include/llvm/Target
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
..
CostTable.h
Mangler.h Move getSymbol to TargetLoweringObjectFile. 2013-10-29 17:28:26 +00:00
Target.td StackMap: Implement support for DirectMemRefOp. 2013-11-26 02:03:25 +00:00
TargetCallingConv.h SelectionDAG: Pass along the original argument/element type in ISD::InputArg 2013-10-23 00:44:24 +00:00
TargetCallingConv.td
TargetFrameLowering.h
TargetInstrInfo.h Added a size field to the stack map record to handle subregister spills. 2013-11-17 01:36:23 +00:00
TargetIntrinsicInfo.h
TargetItinerary.td
TargetJITInfo.h
TargetLibraryInfo.h Convert calls to __sinpi and __cospi into __sincospi_stret 2013-11-03 06:48:38 +00:00
TargetLowering.h Add target hook to prevent folding some bitcasted loads. 2013-11-15 04:42:23 +00:00
TargetLoweringObjectFile.h Move getSymbol to TargetLoweringObjectFile. 2013-10-29 17:28:26 +00:00
TargetMachine.h Teach ISel not to optimize 'optnone' functions (revised). 2013-11-22 19:11:24 +00:00
TargetOpcodes.h Lower stackmap intrinsics directly to their target opcode in the DAG builder. 2013-10-31 17:18:24 +00:00
TargetOptions.h
TargetRegisterInfo.h
TargetSchedule.td Even more spelling fixes for "instruction". 2013-09-28 13:42:22 +00:00
TargetSelectionDAG.td
TargetSelectionDAGInfo.h
TargetSubtargetInfo.h Added temp flag -misched-bench for staging in default changes. 2013-09-26 05:53:35 +00:00