llvm-6502/lib/Transforms/Scalar
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
..
ADCE.cpp [ADCE] Don't indent inside an anonymous namespace 2015-02-16 18:08:00 +00:00
AlignmentFromAssumptions.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
BDCE.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
CMakeLists.txt Simplify n-ary adds by reassociation 2015-04-14 04:59:22 +00:00
ConstantHoisting.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
ConstantProp.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
CorrelatedValuePropagation.cpp CVP: Improve handling of Selects used as incoming PHI values 2015-05-12 22:31:47 +00:00
DCE.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
DeadStoreElimination.cpp [CallSite] Make construction from Value* (or Instruction*) explicit. 2015-04-10 14:50:08 +00:00
EarlyCSE.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
FlattenCFGPass.cpp
Float2Int.cpp Reapply r233175 and r233183: float2int. 2015-03-27 10:36:57 +00:00
GVN.cpp [opaque pointer type] API migration for GEP constant factories 2015-04-02 18:55:32 +00:00
InductiveRangeCheckElimination.cpp [IRCE] Fix how IRCE checks for no-sign-overflow. 2015-03-24 19:29:22 +00:00
IndVarSimplify.cpp [SCEV] Refactor out isHighCostExpansion. NFCI. 2015-04-14 03:20:28 +00:00
JumpThreading.cpp [JumpThreading] Simplify comparisons when simplifying branches 2015-05-07 00:19:14 +00:00
LICM.cpp Convert PHI getIncomingValue() to foreach over incoming_values(). NFC. 2015-05-12 20:05:31 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
LoadCombine.cpp Mark empty default constructors as =default if it makes the type POD 2015-04-11 18:57:14 +00:00
LoopDeletion.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LoopIdiomRecognize.cpp [LoopIdiomRecognize] Transform backedge-taken count check into an assertion. 2015-05-11 21:02:34 +00:00
LoopInstSimplify.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
LoopInterchange.cpp Fix LoopInterchange/reductions.ll test for debug builds 2015-04-24 17:39:16 +00:00
LoopRerollPass.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
LoopRotation.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
LoopStrengthReduce.cpp [LSR][NFC] Remove a stale comment. 2015-04-21 20:42:50 +00:00
LoopUnrollPass.cpp [Unrolling] Refactor the start and step offsets to simplify overflow 2015-05-12 23:32:56 +00:00
LoopUnswitch.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
LowerAtomic.cpp
LowerExpectIntrinsic.cpp [PM] Port LowerExpectIntrinsic to the new pass manager. 2015-01-24 11:13:02 +00:00
Makefile
MemCpyOptimizer.cpp [MemCpyOpt] Look at any dependency -not just source- for memset+memcpy. 2015-05-11 23:09:46 +00:00
MergedLoadStoreMotion.cpp Another set of missing raw_ostream.h. Still no functional change. 2015-03-23 18:45:56 +00:00
NaryReassociate.cpp Resurrect r235688 2015-04-24 04:22:39 +00:00
PartiallyInlineLibCalls.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
PlaceSafepoints.cpp [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
Reassociate.cpp don't repeat function names in comments; NFC 2015-04-22 18:04:46 +00:00
Reg2Mem.cpp Standardize {pred,succ,use,user}_empty() 2015-01-13 03:46:47 +00:00
RewriteStatepointsForGC.cpp [RewriteStatepointsForGC] Extend base pointer to handle more cases w/vectors 2015-05-12 22:19:52 +00:00
SampleProfile.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Scalar.cpp Simplify n-ary adds by reassociation 2015-04-14 04:59:22 +00:00
Scalarizer.cpp [opaque pointer type] More GEP IRBuilder API migrations 2015-04-03 23:03:54 +00:00
ScalarReplAggregates.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
SCCP.cpp [opaque pointer type] API migration for GEP constant factories 2015-04-02 18:55:32 +00:00
SeparateConstOffsetFromGEP.cpp Fix comment for NoCommonBits. 2015-04-23 22:55:48 +00:00
SimplifyCFGPass.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
Sink.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
SROA.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
StraightLineStrengthReduce.cpp [SLSR] garbage-collect unused instructions 2015-04-21 19:56:18 +00:00
StructurizeCFG.cpp Change range-based for-loops to be -Wrange-loop-analysis clean. 2015-04-15 01:21:15 +00:00
TailRecursionElimination.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00