llvm-project/llvm/lib/Transforms/IPO
Nikita Popov 7ed3e87825 [Attributes] Determine attribute properties from TableGen data
Continuing from D105763, this allows placing certain properties
about attributes in the TableGen definition. In particular, we
store whether an attribute applies to fn/param/ret (or a combination
thereof). This information is used by the Verifier, as well as the
ForceFunctionAttrs pass. I also plan to use this in LLParser,
which also duplicates info on which attributes are valid where.

This keeps metadata about attributes in one place, and makes it
more likely that it stays in sync, rather than in various
functions spread across the codebase.

Differential Revision: https://reviews.llvm.org/D105780
2021-07-12 22:13:38 +02:00
..
AlwaysInliner.cpp [coroutine] should disable inline before calling coro split 2020-12-08 08:53:08 -08:00
Annotation2Metadata.cpp Add pass to add !annotate metadata from @llvm.global.annotations. 2020-11-16 14:57:11 +00:00
ArgumentPromotion.cpp ArgumentPromotion.cpp - remove unused <string> include. NFCI. 2021-06-13 13:03:47 +01:00
Attributor.cpp [Attributor][NFCI] Add UsedAssumedInformation to more interfaces 2021-07-11 19:18:03 -05:00
AttributorAttributes.cpp [Attributor][NFCI] Add UsedAssumedInformation to more interfaces 2021-07-11 19:18:03 -05:00
BarrierNoopPass.cpp
BlockExtractor.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
CMakeLists.txt Move Function Specialization to its correct location. NFC. 2021-06-11 15:00:10 +01:00
CalledValuePropagation.cpp
ConstantMerge.cpp [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
CrossDSOCFI.cpp
DeadArgumentElimination.cpp [DAE] Adjust param/arg attributes when changing parameter to undef 2021-03-25 14:53:22 -07:00
ElimAvailExtern.cpp
ExtractGV.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
ForceFunctionAttrs.cpp [Attributes] Determine attribute properties from TableGen data 2021-07-12 22:13:38 +02:00
FunctionAttrs.cpp Revert "[NewPM] Only invalidate modified functions' analyses in CGSCC passes" 2021-05-21 16:38:03 -07:00
FunctionImport.cpp [HIP] support ThinLTO 2021-05-22 10:48:34 -04:00
FunctionSpecialization.cpp [FuncSpec] Add an option to specializing literal constant 2021-06-30 11:26:44 +08:00
GlobalDCE.cpp
GlobalOpt.cpp [NFC][OpaquePtr] Use GlobalValue::getValueType() more 2021-07-09 09:55:41 -07:00
GlobalSplit.cpp
HotColdSplitting.cpp Calculate getTerminator only when necessary 2021-06-13 20:16:07 -07:00
IPO.cpp Function Specialization Pass 2021-06-11 09:11:29 +01:00
IROutliner.cpp [IROutliner] Adding DebugInfo handling for IR Outlined Functions 2021-06-15 10:57:08 -05:00
InferFunctionAttrs.cpp [inferattrs] Don't infer lib func attributes for nobuiltin functions 2021-04-16 15:36:15 -07:00
InlineSimple.cpp
Inliner.cpp [llvm][Inliner] Templatize PriorityInlineOrder 2021-07-12 10:38:22 +08:00
Internalize.cpp [Internalize] Preserve variables externally initialized. 2021-07-08 10:48:19 -04:00
LoopExtractor.cpp [LoopExtract][NewPM] Port -loop-extract to NPM 2020-10-13 22:55:42 -07:00
LowerTypeTests.cpp [LTT] Handle merged llvm.assume when dropping type tests 2021-05-25 17:02:13 -07:00
MergeFunctions.cpp [Clang] Introduce Swift async calling convention. 2021-07-09 11:50:10 -07:00
OpenMPOpt.cpp [Attributor][NFCI] Add UsedAssumedInformation to more interfaces 2021-07-11 19:18:03 -05:00
PartialInlining.cpp NFC: Migrate PartialInlining to work on InstructionCost 2021-03-30 11:59:45 +01:00
PassManagerBuilder.cpp [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
PruneEH.cpp [PruneEH][NFC] Use CallGraphUpdater in PruneEH 2020-09-14 14:43:19 -07:00
SCCP.cpp Function Specialization Pass 2021-06-11 09:11:29 +01:00
SampleContextTracker.cpp [CSSPGO] Top-down processing order based on full profile. 2021-03-30 10:42:22 -07:00
SampleProfile.cpp [AFDO] Merge function attributes after inlining 2021-07-09 16:47:12 -07:00
SampleProfileProbe.cpp [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
StripDeadPrototypes.cpp
StripSymbols.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
SyntheticCountsPropagation.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
ThinLTOBitcodeWriter.cpp Revert "ThinLTO: Fix inline assembly references to static functions with CFI" 2021-06-23 19:24:56 -07:00
WholeProgramDevirt.cpp [WPD] Don't optimize calls more than once 2021-06-24 13:28:09 -07:00