1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/include/llvm/CodeGen
Sanjoy Das 91fd65c3a6 Introduce a "patchable-function" function attribute
Summary:
The `"patchable-function"` attribute can be used by an LLVM client to
influence LLVM's code generation in ways that makes the generated code
easily patchable at runtime (for instance, to redirect control).
Right now only one patchability scheme is supported,
`"prologue-short-redirect"`, but this can be expanded in the future.

Reviewers: joker.eph, rnk, echristo, dberris

Subscribers: joker.eph, echristo, mcrosier, llvm-commits

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

llvm-svn: 266715
2016-04-19 05:24:47 +00:00
..
GlobalISel [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MIRParser [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
PBQP [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Analysis.h [WinEH] Permit branch folding in the face of funclets 2015-10-04 02:22:52 +00:00
AsmPrinter.h [IFUNC] Use GlobalIndirectSymbol when aliases and ifuncs have something similar 2016-04-05 08:47:51 +00:00
AtomicExpandUtils.h Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function. 2015-08-03 15:29:47 +00:00
BasicTTIImpl.h [TTI] Add getInliningThresholdMultiplier. 2016-04-15 01:38:48 +00:00
CalcSpillWeights.h Trace copies when checking for rematerializability in spill weight calculation 2015-08-10 11:59:44 +00:00
CallingConvLower.h CodeGen: Factor out code for tail call result compatibility check; NFC 2016-03-30 22:46:04 +00:00
CommandFlags.h Implemented stack symbol table ordering/packing optimization to improve data locality and code size from SP/FP offset encoding. 2016-02-15 23:44:13 +00:00
DAGCombine.h
DFAPacketizer.h Add DAG mutation interface to the DFA packetizer 2016-03-08 15:33:51 +00:00
DIE.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
DIEValue.def DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DwarfStringPoolEntry.h
EdgeBundles.h
FastISel.h Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
FaultMaps.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
FunctionLoweringInfo.h Swift Calling Convention: swifterror target-independent change. 2016-04-05 18:13:16 +00:00
GCMetadata.h Prune trailing whitespaces in comment lines. 2015-10-05 04:43:57 +00:00
GCMetadataPrinter.h
GCs.h
GCStrategy.h [GC] Make GCStrategy::isGCManagedPointer a type predicate not a value predicate [NFC] 2015-12-23 01:42:15 +00:00
IntrinsicLowering.h Reformat 3 files in llvm/include/llvm/CodeGen/. 2015-10-05 04:44:18 +00:00
ISDOpcodes.h AMDGPU: Implement canonicalize 2016-04-14 01:42:16 +00:00
LatencyPriorityQueue.h
LexicalScopes.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h CodeGen: Tune the SmallVector size in LiveRange 2016-03-04 00:58:39 +00:00
LiveIntervalAnalysis.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LiveIntervalUnion.h RAGreedy: Keep track of allocated PhysRegs internally 2015-07-14 17:38:17 +00:00
LivePhysRegs.h LivePhysRegs: removeReg() must remove aliased registers 2016-04-06 02:46:35 +00:00
LiveRangeEdit.h Don't skip splitSeparateComponents in eliminateDeadDefs for HoistSpillHelper::hoistAllSpills. 2016-04-15 23:16:44 +00:00
LiveRegMatrix.h MachineRegisterInfo: Remove UsedPhysReg infrastructure 2015-07-14 17:52:07 +00:00
LiveStackAnalysis.h Reformat 3 files in llvm/include/llvm/CodeGen/. 2015-10-05 04:44:18 +00:00
LiveVariables.h
MachineBasicBlock.h CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC 2016-02-27 06:40:41 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI. 2015-12-18 21:53:24 +00:00
MachineCombinerPattern.h replace MachineCombinerPattern namespace and enum with enum class; NFCI 2015-11-05 19:34:57 +00:00
MachineConstantPool.h Drop prelink support. 2015-11-17 00:51:23 +00:00
MachineDominanceFrontier.h
MachineDominators.h NFC. 2015-08-07 18:04:17 +00:00
MachineFrameInfo.h Use member initializers for all scalar fields of MachineFrameInfo to save boilerplate 2016-04-11 17:54:16 +00:00
MachineFunction.h Replace MachineRegisterInfo::TracksLiveness with a MachineFunctionProperty 2016-04-11 23:32:13 +00:00
MachineFunctionAnalysis.h
MachineFunctionInitializer.h
MachineFunctionPass.h Introduce MachineFunctionProperties and the AllVRegsAllocated property 2016-03-28 17:05:30 +00:00
MachineInstr.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MachineInstrBuilder.h Sink DI metadata usage out of MachineInstr.h and MachineInstrBuilder.h 2016-04-14 18:29:59 +00:00
MachineInstrBundle.h WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC 2016-02-27 17:05:33 +00:00
MachineInstrBundleIterator.h CodeGen: Bring back MachineBasicBlock::iterator::getInstrIterator()... 2016-02-22 21:30:15 +00:00
MachineJumpTableInfo.h
MachineLoopInfo.h fix documentation comments; NFC 2016-04-08 21:42:43 +00:00
MachineMemOperand.h PseudoSourceValue: Replace global manager with a manager in a machine function. 2015-08-11 23:09:45 +00:00
MachineModuleInfo.h [ptr-traits] Add a bunch of includes to provide complete types that are 2015-12-29 09:06:21 +00:00
MachineModuleInfoImpls.h Reformat 3 files in llvm/include/llvm/CodeGen/. 2015-10-05 04:44:18 +00:00
MachineOperand.h CodeGen: Push the ModuleSlotTracker through MachineOperands 2015-06-26 22:06:47 +00:00
MachinePassRegistry.h
MachinePostDominators.h
MachineRegionInfo.h Remove macro guards for extern template instantiations. 2015-07-13 17:21:31 +00:00
MachineRegisterInfo.h Replace MachineRegisterInfo::TracksLiveness with a MachineFunctionProperty 2016-04-11 23:32:13 +00:00
MachineScheduler.h Add DAG mutation interface to the post-RA scheduler 2016-03-05 15:45:23 +00:00
MachineSSAUpdater.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MachineTraceMetrics.h Reapply "CodeGen: Use references in MachineTraceMetrics::Trace, NFC" 2016-02-22 03:33:28 +00:00
MachineValueType.h Declare MVT::SimpleValueType as an int8_t sized enum. This removes 400 bytes from TargetLoweringBase and probably other places. 2016-04-17 17:37:33 +00:00
MachORelocation.h
MIRYamlMapping.h Introduce MachineFunctionProperties and the AllVRegsAllocated property 2016-03-28 17:05:30 +00:00
ParallelCG.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Passes.h Introduce a "patchable-function" function attribute 2016-04-19 05:24:47 +00:00
PBQPRAConstraint.h
PseudoSourceValue.h [ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten. 2016-02-03 17:52:29 +00:00
RegAllocPBQP.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
RegAllocRegistry.h Reformat partially. 2015-10-05 04:46:30 +00:00
RegisterClassInfo.h
RegisterPressure.h MachineScheduler: Allow independent scheduling of sub register defs 2016-01-20 00:23:32 +00:00
RegisterScavenging.h RegisterScavenger: Take a reference as enterBasicBlock() argument. 2016-04-06 02:47:09 +00:00
ResourcePriorityQueue.h
RuntimeLibcalls.h Add __atomic_* lowering to AtomicExpandPass. 2016-04-12 20:18:48 +00:00
ScheduleDAG.h [ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten. 2016-02-03 17:52:29 +00:00
ScheduleDAGInstrs.h [ScheduleDAGInstrs] Re-factor for based on review feedback. NFC. 2016-04-14 21:31:07 +00:00
ScheduleDAGMutation.h Add DAG mutation interface to the post-RA scheduler 2016-03-05 15:45:23 +00:00
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h Move the Target way of overriding DAG Scheduler to a target hook 2015-07-28 06:18:04 +00:00
ScoreboardHazardRecognizer.h
SelectionDAG.h Prevent X86ISelLowering from merging volatile loads 2016-03-31 13:40:55 +00:00
SelectionDAGISel.h [CodeGen] Add space-optimized EmitMergeInputChains1_2 to the DAG isel matching tables. Shaves about 5100 bytes from the X86 matcher table. NFC 2016-03-07 07:29:12 +00:00
SelectionDAGNodes.h [x86] use BMI 'andn' for logic + compare ops 2016-04-09 16:02:52 +00:00
SelectionDAGTargetInfo.h Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
SlotIndexes.h WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC 2016-02-27 17:05:33 +00:00
StackMaps.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
StackProtector.h [SSP] Remove llvm.stackprotectorcheck. 2016-04-08 21:26:31 +00:00
TailDuplicator.h Codegen: Factor tail duplication into a utility class. NFC 2016-04-08 20:35:01 +00:00
TargetLoweringObjectFileImpl.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
TargetSchedule.h [MachineCombiner] Work with itineraries 2015-07-15 08:22:23 +00:00
ValueTypes.h [CodeGen] Mark EVT:getExtendedSizeInBits() as LLVM_READONLY. 2016-03-30 05:26:43 +00:00
ValueTypes.td Declare MVT::SimpleValueType as an int8_t sized enum. This removes 400 bytes from TargetLoweringBase and probably other places. 2016-04-17 17:37:33 +00:00
VirtRegMap.h
WinEHFuncInfo.h Make more headers self-contained. 2016-01-27 18:03:37 +00:00