1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/include/llvm/CodeGen
Daniel Sanders 6c59dcec86 Re-commit: r309094 [globalisel][tablegen] Fuse the generated tables together.
Summary:
Now that we have control flow in place, fuse the per-rule tables into a
single table. This is a compile-time saving at this point. However, this will
also enable the optimization of a table so that similar instructions can be
tested together, reducing the time spent on the matching the code.

This is NFC in terms of externally visible behaviour but some internals have
changed slightly. State.MIs is no longer reset between each rule that is
attempted because it's not necessary to do so. As a consequence of this the
restriction on the order that instructions are added to State.MIs has been
relaxed to only affect recorded instructions that require new elements to be
added to the vector. GIM_RecordInsn can now write to any element from 1 to
State.MIs.size() instead of just State.MIs.size().

The compile-time regressions from the last commit were caused by the ARM target
including a non-const variable (zero_reg) in the table and therefore generating
an initializer for it. That variable is now const.

Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar

Reviewed By: rovka

Subscribers: kristof.beyls, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D35681

llvm-svn: 309264
2017-07-27 11:03:45 +00:00
..
GlobalISel Re-commit: r309094 [globalisel][tablegen] Fuse the generated tables together. 2017-07-27 11:03:45 +00:00
MIRParser CodeGen: Refactor MIR parsing 2017-06-06 00:44:35 +00:00
PBQP [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
Analysis.h Move llvm::canBeOmittedFromSymbolTable() to Analysis. 2017-03-31 04:46:31 +00:00
AsmPrinter.h [AsmPrinter] Constify needsCFIMoves. NFC 2017-07-19 23:47:33 +00:00
AtomicExpandUtils.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
BasicTTIImpl.h Fix spelling in comments. NFCI. 2017-07-24 12:44:35 +00:00
CalcSpillWeights.h
CallingConvLower.h [CodeGen] Remove dead call-or-prologue enum from CCState 2017-02-02 21:58:22 +00:00
CommandFlags.h Re-land r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList" 2017-05-02 22:07:37 +00:00
DAGCombine.h
DFAPacketizer.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
DIE.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
DIEValue.def Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfStringPoolEntry.h
EdgeBundles.h
ExecutionDepsFix.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
ExpandReductions.h Add a late IR expansion pass for the experimental reduction intrinsics. 2017-05-10 09:42:49 +00:00
FastISel.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
FaultMaps.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
FunctionLoweringInfo.h ISel: Fix FastISel of swifterror values 2017-06-15 17:34:42 +00:00
GCMetadata.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCMetadataPrinter.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCs.h
GCStrategy.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
IntrinsicLowering.h
ISDOpcodes.h Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry. 2017-06-01 11:14:17 +00:00
LatencyPriorityQueue.h
LazyMachineBlockFrequencyInfo.h [LazyMachineBFI] Reimplement with getAnalysisIfAvailable 2017-02-23 17:30:01 +00:00
LexicalScopes.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
LiveIntervalAnalysis.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveIntervalUnion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LivePhysRegs.h LivePhysRegs: Rework constructor + documentation; NFC 2017-05-26 21:51:00 +00:00
LiveRangeEdit.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveRegMatrix.h LiveRegMatrix: Fix some subreg interference checks 2017-03-02 00:35:08 +00:00
LiveRegUnits.h RegisterScavenging: Fix PR33687 2017-07-07 03:02:18 +00:00
LiveStackAnalysis.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LiveVariables.h Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
LowLevelType.h Recommit: [globalisel] Change LLT constructor string into an LLT-based object that knows how to generate it. 2017-03-07 23:20:35 +00:00
MachineBasicBlock.h [NFC] Fix typo in comment 2017-07-19 22:28:08 +00:00
MachineBlockFrequencyInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
MachineBranchProbabilityInfo.h
MachineCombinerPattern.h [AArch64][MachineCombine] Fold FNMUL+FSUB -> FNMADD. 2017-05-11 20:07:24 +00:00
MachineConstantPool.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineDominanceFrontier.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineFrameInfo.h Add an ID field to StackObjects 2017-07-20 21:03:45 +00:00
MachineFunction.h Enhance synchscope representation 2017-07-11 22:23:00 +00:00
MachineFunctionPass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineInstr.h Revert "r306529 - [X86] Correct dwarf unwind information in function epilogue" 2017-06-29 13:58:24 +00:00
MachineInstrBuilder.h PR32382: Fix emitting complex DWARF expressions. 2017-04-18 01:21:53 +00:00
MachineInstrBundle.h MachineInstrBundle: Pass iterators to getBundle(Start|End); NFC 2016-10-25 02:55:17 +00:00
MachineInstrBundleIterator.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineJumpTableInfo.h
MachineLoopInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineMemOperand.h Add an ID field to StackObjects 2017-07-20 21:03:45 +00:00
MachineModuleInfo.h CodeGen: Refactor MIR parsing 2017-06-06 00:44:35 +00:00
MachineModuleInfoImpls.h [WebAssembly] Use __stack_pointer global when writing wasm binary 2017-06-16 23:59:10 +00:00
MachineOperand.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineOptimizationRemarkEmitter.h [ORE] Unify spelling as "diagnostics hotness" 2017-06-30 18:13:59 +00:00
MachinePassRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MachinePostDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineRegionInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
MachineRegisterInfo.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineScheduler.h Fix incorrect comment in machine-scheduler 2017-06-27 16:49:45 +00:00
MachineSSAUpdater.h
MachineTraceMetrics.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-21 22:07:52 +00:00
MachineValueType.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MachORelocation.h
MacroFusion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MIRPrinter.h MIParser/MIRPrinter: Compute block successors if not explicitely specified 2017-05-05 21:09:30 +00:00
MIRYamlMapping.h Add an ID field to StackObjects 2017-07-20 21:03:45 +00:00
ParallelCG.h
Passes.h Revert "r306529 - [X86] Correct dwarf unwind information in function epilogue" 2017-06-29 13:58:24 +00:00
PBQPRAConstraint.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
PreISelIntrinsicLowering.h
PseudoSourceValue.h Remove inline keyword from inline classof methods 2017-06-29 19:35:17 +00:00
RegAllocPBQP.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
RegAllocRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
RegisterClassInfo.h Disable Callee Saved Registers 2017-03-14 09:09:26 +00:00
RegisterPressure.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
RegisterScavenging.h RegScavenging: Add scavengeRegisterBackwards() 2017-06-17 02:08:18 +00:00
RegisterUsageInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ResourcePriorityQueue.h
RuntimeLibcalls.def Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
RuntimeLibcalls.h Move Runtime libcall definitions to a .def file 2017-07-19 21:53:30 +00:00
ScheduleDAG.h [CodeGen] Add dependency printer 2017-07-12 15:30:59 +00:00
ScheduleDAGInstrs.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleDAGMutation.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
ScheduleDFS.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleHazardRecognizer.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
SchedulerRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ScoreboardHazardRecognizer.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
SelectionDAG.h [DAG] Move DAGCombiner::GetDemandedBits to SelectionDAG 2017-07-25 16:36:44 +00:00
SelectionDAGAddressAnalysis.h [DAG] Fold FrameIndex offset into BaseIndexOffset analysis. NFCI. 2017-06-29 15:48:11 +00:00
SelectionDAGISel.h [CodeGen] Pass SDAG an ORE, and replace FastISel stats with remarks. 2017-03-30 17:49:58 +00:00
SelectionDAGNodes.h Enhance synchscope representation 2017-07-11 22:23:00 +00:00
SelectionDAGTargetInfo.h
SlotIndexes.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
StackMaps.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00
StackProtector.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
TailDuplicator.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
TargetLoweringObjectFileImpl.h IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
TargetPassConfig.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
TargetSchedule.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
UnreachableBlockElim.h
ValueTypes.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
ValueTypes.td [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
VirtRegMap.h RegAllocPBQP: Do not assign reserved physical register 2017-06-08 21:30:54 +00:00
WinEHFuncInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00