llvm-6502/include/llvm/IR
Sanjoy Das ead2d1fbe0 [Statepoints] Support for "patchable" statepoints.
Summary:
This change adds two new parameters to the statepoint intrinsic, `i64 id`
and `i32 num_patch_bytes`.  `id` gets propagated to the ID field
in the generated StackMap section.  If the `num_patch_bytes` is
non-zero then the statepoint is lowered to `num_patch_bytes` bytes of
nops instead of a call (the spill and reload code remains unchanged).
A non-zero `num_patch_bytes` is useful in situations where a language
runtime requires complete control over how a call is lowered.

This change brings statepoints one step closer to patchpoints.  With
some additional work (that is not part of this patch) it should be
possible to get rid of `TargetOpcode::STATEPOINT` altogether.

PlaceSafepoints generates `statepoint` wrappers with `id` set to
`0xABCDEF00` (the old default value for the ID reported in the stackmap)
and `num_patch_bytes` set to `0`.  This can be made more sophisticated
later.

Reviewers: reames, pgavlin, swaroop.sridhar, AndyAyers

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237214 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-12 23:52:24 +00:00
..
Argument.h Add missing dereferenceable_or_null getters 2015-05-06 17:41:54 +00:00
AssemblyAnnotationWriter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Attributes.h Attributes.h: Fix incorrect \brief introduced in r236666. [-Wdocumentation] 2015-05-07 10:18:56 +00:00
AutoUpgrade.h Rename loop unrolling and loop vectorizer metadata to have a common prefix. 2014-06-25 15:41:00 +00:00
BasicBlock.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
CallingConv.h X86: Implement the vectorcall calling convention 2014-10-28 01:29:26 +00:00
CallSite.h Add missing dereferenceable_or_null getters 2015-05-06 17:41:54 +00:00
CFG.h Fix the build broken in r231142 2015-03-03 21:56:11 +00:00
CMakeLists.txt [CMake] intrinsics_gen: Use add_public_tablegen_target(). 2014-02-20 13:42:16 +00:00
Comdat.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
Constant.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
ConstantFolder.h [opaque pointer types] Push explicit type parameter for geps through the constant folders 2015-04-03 01:15:16 +00:00
ConstantRange.h [ConstantRange] Split makeICmpRegion in two. 2015-03-18 00:41:24 +00:00
Constants.h IR: Add ConstantFP::getNaN() 2015-04-20 19:38:24 +00:00
DataLayout.h COFF: Let globals with private linkage reside in their own section 2015-03-17 23:54:51 +00:00
DebugInfo.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DebugInfoFlags.def IR: Move DebugInfo Flag* definitions to .def file, NFC 2015-02-21 00:37:53 +00:00
DebugInfoMetadata.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DebugLoc.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DerivedTypes.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
DiagnosticInfo.h std::function is part of <functional>, not <utility> 2015-03-01 21:49:21 +00:00
DiagnosticPrinter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
DIBuilder.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Dominators.h [PM] Port domtree to the new pass manager (at last). 2015-01-14 10:19:28 +00:00
Function.h Update Function::getContext documentation. NFC. 2015-05-08 21:01:29 +00:00
GetElementPtrTypeIterator.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
GlobalAlias.h [opaque pointer type] Pass GlobalAlias the actual pointer type rather than decomposing it into pointee type + address space 2015-04-29 21:22:39 +00:00
GlobalObject.h Add some type safety to GlobalObject/GlobalValue - they're always PointerTypes so let's type them that way. 2015-04-06 18:06:06 +00:00
GlobalValue.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
GlobalVariable.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
GVMaterializer.h Fix PR23045. 2015-03-30 21:36:43 +00:00
InlineAsm.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
InstIterator.h Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter 2015-03-16 18:06:57 +00:00
InstrTypes.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Instruction.def
Instruction.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Instructions.h Add a const method to iterator over PHI incoming values. 2015-05-12 20:05:23 +00:00
InstVisitor.h [Layering] Move InstVisitor.h into the IR library as it is pretty 2014-03-06 03:23:41 +00:00
IntrinsicInst.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Intrinsics.h Masked Gather and Scatter Intrinsics. 2015-02-08 08:27:19 +00:00
Intrinsics.td [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
IntrinsicsAArch64.td Port memory barriers intrinsics to AArch64 2014-07-17 10:50:20 +00:00
IntrinsicsARM.td ARM: add @llvm.arm.space intrinsic for testing ConstantIslands. 2014-11-13 17:58:48 +00:00
IntrinsicsBPF.td [bpf] add support for bpf pseudo instruction 2015-03-27 18:51:42 +00:00
IntrinsicsHexagon.td [Hexagon] Intrinsics for circular and bit-reversed loads and stores 2015-03-18 16:23:44 +00:00
IntrinsicsMips.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
IntrinsicsNVVM.td [NVPTX] Make the alignment an explicit argument to ldu/ldg 2014-08-29 15:30:20 +00:00
IntrinsicsPowerPC.td [PowerPC] Add asm/disasm support for dcbt with hint 2015-04-23 22:47:57 +00:00
IntrinsicsR600.td R600/SI: Add class intrinsic 2015-01-06 23:00:37 +00:00
IntrinsicsSystemZ.td [SystemZ] Add vector intrinsics 2015-05-05 19:31:09 +00:00
IntrinsicsX86.td AVX-512: Changed CC parameter in "cmp" intrinsic 2015-05-11 09:03:14 +00:00
IntrinsicsXCore.td [XCore] Add intrinsic for CLRPT (clear port time) instruction. 2014-02-25 17:31:15 +00:00
IRBuilder.h [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
IRPrintingPasses.h uselistorder: Pull the bit through PrintModulePass 2015-04-15 02:38:06 +00:00
LegacyPassManager.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LegacyPassManagers.h [LPM] A targeted but somewhat horrible fix to the legacy pass manager's 2015-01-28 09:47:21 +00:00
LegacyPassNameParser.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LLVMContext.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
Mangler.h Revert "Address review comments" 2015-03-17 20:40:21 +00:00
MDBuilder.h [IC] Turn non-null MD on pointer loads to range MD on integer loads. 2015-02-25 05:10:25 +00:00
Metadata.def IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Metadata.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
MetadataTracking.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Module.h uselistorder: Pull the assembly bit up out of the printer 2015-04-15 02:12:41 +00:00
NoFolder.h [opaque pointer types] Push explicit type parameter for geps through the constant folders 2015-04-03 01:15:16 +00:00
OperandTraits.h
Operator.h [opaque pointer type] Explicit pointee type for GEPOperator/GEPConstantExpr. 2015-05-08 00:42:26 +00:00
PassManager.h Remove std::move on return of temporary. 2015-05-01 15:26:22 +00:00
PassManagerInternal.h [Modules] Include the header needed for make_unique, otherwise we can't 2015-03-07 10:55:47 +00:00
PatternMatch.h [InstCombine][CodeGenPrep] Create llvm.uadd.with.overflow in CGP. 2015-04-10 21:07:09 +00:00
PredIteratorCache.h Revamp PredIteratorCache interface to be cleaner. 2015-04-21 21:11:50 +00:00
Statepoint.h [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
SymbolTableListTraits.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
TrackingMDRef.h Add a C++ marker to this header file. 2014-12-22 19:07:45 +00:00
Type.h Add the i128 builtin type to LLVM. 2015-04-17 15:32:15 +00:00
TypeBuilder.h Update comment. NFC. 2015-04-21 21:15:35 +00:00
TypeFinder.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Use.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
UseListOrder.h uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
User.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Value.h Move Value.isDereferenceablePointer to ValueTracking [NFC] 2015-04-23 17:36:48 +00:00
ValueHandle.h Revert "Remove the explicit SDNodeIterator::operator= in favor of the implicit default" 2015-03-03 21:18:16 +00:00
ValueMap.h [Mips] Use unique_ptr to manage ownership. 2015-04-16 12:43:33 +00:00
ValueSymbolTable.h
Verifier.h Verifier: Remove the separate -verify-di pass 2015-03-19 22:24:17 +00:00