1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/include/llvm/IR
Philip Reames 546a9c07c3 Default to generating statepoints with deopt and gc-transition bundles if needed
Continues from D80598.

The key point of the change is to default to using operand bundles instead of the inline length prefix argument lists for statepoint nodes. An important subtlety to note is that the presence of a bundle has semantic meaning, even if it is empty. As such, we need to make a somewhat deeper change to the interface than is first obvious.

Existing code treats statepoint deopt arguments and the deopt bundle operands differently during inlining. The former is ignored (resulting in caller state being dropped), the later is merged.

We can't preserve the old behaviour for calls with deopt fed to RS4GC and then inlining, but we can avoid the no-deopt case changing. At least in internal testing, that seem to be the important one. (I'd argue the "stop merging after RS4GC" behaviour for the former was always "unexpected", but that the behaviour for non-deopt calls actually make sense.)

Differential Revision: https://reviews.llvm.org/D80674
2020-05-28 10:14:23 -07:00
..
AbstractCallSite.h Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
Argument.h Reland [X86] Codegen for preallocated 2020-05-20 11:25:44 -07:00
AssemblyAnnotationWriter.h
Attributes.h Enable align <n> to be used in the intrinsic definition. 2020-05-27 16:38:18 -04:00
Attributes.td [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
AutoUpgrade.h [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
BasicBlock.h [IR] Simplify BasicBlock::removePredecessor. NFCI. 2020-05-20 09:58:21 +01:00
CallingConv.h Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
CFG.h [CFG/BasicBlock] Rename pred_const to const_pred. [NFC] 2020-03-25 12:40:55 -07:00
CMakeLists.txt [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
Comdat.h
Constant.h [IR] allow undefined elements when checking for splat constants 2019-12-10 17:16:59 -05:00
ConstantFolder.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.h [ConstantRange] Add initial support for binaryXor. 2020-03-24 12:59:50 +00:00
Constants.h [IR][BFloat] Add BFloat IR type 2020-05-15 14:43:43 +01:00
ConstrainedOps.def [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
DataLayout.h [Align] Remove operations on MaybeAlign that asserted that it had a defined value. 2020-05-22 21:54:28 -07:00
DebugInfo.h [DebugInfo] Merge DebugInfoFinder::{processDeclare,processValue} into processVariable 2020-02-01 23:00:21 -08:00
DebugInfoFlags.def [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct)) 2019-12-17 09:40:36 +01:00
DebugInfoMetadata.h [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
DebugLoc.h
DerivedTypes.h [SVE] Add specialized getters to derived vector types 2020-05-19 11:27:18 -07:00
DerivedUser.h
DiagnosticHandler.h Fix broken C++ mode comment 2019-07-01 22:00:59 +00:00
DiagnosticInfo.h [MC][ELF] Put explicit section name symbols into entry size compatible sections 2020-04-16 19:12:49 +00:00
DiagnosticPrinter.h
DIBuilder.h [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
Dominators.h Revert "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff." 2020-04-10 07:44:06 +00:00
FixedMetadataKinds.def Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
FPEnv.h [FPEnv] Use single enum to represent rounding mode 2020-04-09 13:26:47 +07:00
Function.h [ViewCFG] Allow printing edge weights in debuggers 2020-04-26 13:18:29 -07:00
GetElementPtrTypeIterator.h [SVE] Remove calls to isScalable from IR 2020-04-23 11:51:22 -07:00
GlobalAlias.h Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
GlobalIFunc.h Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
GlobalIndirectSymbol.h Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
GlobalObject.h [Alignment][NFC] Remove deprecated functions introduced in 10.0.0 2020-04-06 12:07:18 +00:00
GlobalValue.h Make explicit -fno-semantic-interposition (in -fpic mode) infer dso_local 2020-05-25 20:48:18 -07:00
GlobalVariable.h GlobalVariable.h - remove unused PointerUnion.h include. NFC 2020-05-19 13:12:41 +01:00
GVMaterializer.h
InlineAsm.h [MIR] Add comments to INLINEASM immediate flag MachineOperands 2020-04-16 13:46:14 +02:00
InstIterator.h
InstrTypes.h Reland [X86] Codegen for preallocated 2020-05-20 11:25:44 -07:00
Instruction.def [IR] Redefine Freeze instruction 2019-11-12 10:49:00 +09:00
Instruction.h [IR] add set function for FMF 'contract' 2020-05-27 09:14:51 -04:00
Instructions.h [Alignment] Remove unnecessary getValueOrABITypeAlignment calls (NFC) 2020-05-17 22:19:15 +02:00
InstVisitor.h [llvm][NFC][CallSite] Remove {Immutable}CallSite and CallSiteBase 2020-04-24 11:03:35 -07:00
IntrinsicInst.h [NFC] clang-format IntrinsicInst.h|cpp 2020-04-15 12:05:23 +02:00
Intrinsics.h [IR][BFloat] add BFloat IR intrinsics support 2020-05-27 14:37:47 +01:00
Intrinsics.td Enable align <n> to be used in the intrinsic definition. 2020-05-27 16:38:18 -04:00
IntrinsicsAArch64.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsAMDGPU.td Enable align <n> to be used in the intrinsic definition. 2020-05-27 16:38:18 -04:00
IntrinsicsARM.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsBPF.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsHexagon.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsHexagonDep.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsMips.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsNVVM.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsPowerPC.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsRISCV.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsSystemZ.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsWebAssembly.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsX86.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IntrinsicsXCore.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
IRBuilder.h Default to generating statepoints with deopt and gc-transition bundles if needed 2020-05-28 10:14:23 -07:00
IRBuilderFolder.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
IRPrintingPasses.h [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
LegacyPassManager.h [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
LegacyPassManagers.h [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
LegacyPassNameParser.h
LLVMContext.h [NFC][DwarfDebug] Add test for variables with a single location which 2020-05-11 11:49:11 +02:00
LLVMRemarkStreamer.h [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
Mangler.h Mangler.h - reduce GlobalValue.h include to forward declaration. NFC. 2020-05-10 14:03:27 +01:00
MatrixBuilder.h [Matrix] Add IR MatrixBuilder. 2020-03-04 11:14:20 +00:00
MDBuilder.h Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
Metadata.def Add LLVM IR debug info support for Fortran COMMON blocks 2019-04-08 19:13:55 +00:00
Metadata.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
Module.h Make explicit -fno-semantic-interposition (in -fpic mode) infer dso_local 2020-05-25 20:48:18 -07:00
ModuleSlotTracker.h
ModuleSummaryIndex.h Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
ModuleSummaryIndexYAML.h Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
NoFolder.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
OperandTraits.h
Operator.h [Attributor] Use AAValueConstantRange to infer dereferencability. 2020-05-13 16:44:15 -05:00
OptBisect.h
PassInstrumentation.h PassInstrumentation.h - reduce TypeName.h include to StringRef forward declaration. NFC. 2020-05-10 14:22:02 +01:00
PassManager.h [NewPassManager] Add assertions when getting statefull cached analysis. 2020-05-13 12:38:38 -07:00
PassManagerImpl.h Add PassManagerImpl.h to hide implementation details 2020-02-03 11:15:55 -08:00
PassManagerInternal.h [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
PassTimingInfo.h [TimePasses] Small fix in "-time-passes" flag that makes it more stable 2020-04-08 15:59:45 +00:00
PatternMatch.h [PatternMatch] abbreviate vector inst matchers; NFC 2020-05-24 09:19:47 -04:00
PredIteratorCache.h
ProfileSummary.h [ProfileSummary] Add the PartialProfileRatio field in ProfileSummary metadata. 2020-05-21 09:12:23 -07:00
RuntimeLibcalls.def [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
SafepointIRVerifier.h SafepointIRVerifier port to new Pass Manager 2019-03-31 10:15:39 +00:00
Statepoint.h Sink first bit of functionality from Statepoint to GCStatepointInst 2020-05-27 18:32:28 -07:00
SymbolTableListTraits.h
TrackingMDRef.h
Type.h Reorder Type fields to make various isa< > check more concise 2020-05-18 14:23:52 +02:00
TypeFinder.h
Use.h [IR] Trivial cleanups in Use. NFC. 2020-05-15 18:14:45 +01:00
UseListOrder.h
User.h Basis of dropping uses in llvm.assume. 2020-03-12 10:10:22 +01:00
Value.def
Value.h Make Value::getPointerAlignment() return an Align, not a MaybeAlign. 2020-05-20 16:37:20 -07:00
ValueHandle.h [BFI] Use CallbackVH to notify BFI about deletion of basic blocks 2020-03-06 19:12:12 +07:00
ValueMap.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ValueSymbolTable.h
Verifier.h
VPIntrinsics.def [VP,Integer,#1] Vector-predicated integer intrinsics 2020-03-19 10:51:47 +01:00