1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/utils/TableGen
James Molloy aecd6e19a2 [DFAPacketizer] Reapply: Track resources for packetized instructions
Reapply with fix to reduce resources required by the compiler - use
unsigned[2] instead of std::pair. This causes clang and gcc to compile
the generated file multiple times faster, and hopefully will reduce
the resource requirements on Visual Studio also. This fix is a little
ugly but it's clearly the same issue the previous author of
DFAPacketizer faced (the previous tables use unsigned[2] rather uglily
too).

This patch allows the DFAPacketizer to be queried after a packet is formed to work out which
resources were allocated to the packetized instructions.

This is particularly important for targets that do their own bundle packing - it's not
sufficient to know simply that instructions can share a packet; which slots are used is
also required for encoding.

This extends the emitter to emit a side-table containing resource usage diffs for each
state transition. The packetizer maintains a set of all possible resource states in its
current state. After packetization is complete, all remaining resource states are
possible packetization strategies.

The sidetable is only ~500K for Hexagon, but the extra tracking is disabled by default
(most uses of the packetizer like MachinePipeliner don't care and don't need the extra
maintained state).

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

llvm-svn: 371399
2019-09-09 13:17:55 +00:00
..
AsmMatcherEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
AsmWriterEmitter.cpp [llvm-objdump] Implement -Mreg-names-raw/-std options. 2019-02-26 12:15:14 +00:00
AsmWriterInst.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
AsmWriterInst.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Attributes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CallingConvEmitter.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
CMakeLists.txt [MCSched] Bind PFM Counters to the CPUs instead of the SchedModel. 2018-10-25 07:44:01 +00:00
CodeEmitterGen.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
CodeGenDAGPatterns.cpp Retire llvm::less/equal in favor of C++14 std::less<>/equal_to<>. 2019-08-22 17:31:59 +00:00
CodeGenDAGPatterns.h TableGen: Add MinAlignment predicate 2019-07-31 00:14:43 +00:00
CodeGenHwModes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenHwModes.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenInstruction.cpp Allow target to handle STRICT floating-point nodes 2019-06-05 22:33:10 +00:00
CodeGenInstruction.h Allow target to handle STRICT floating-point nodes 2019-06-05 22:33:10 +00:00
CodeGenIntrinsics.h Teach GlobalISelEmitter to treat used iPTRAny operands as pointer operands 2019-08-20 22:04:10 +00:00
CodeGenMapTable.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
CodeGenRegisters.cpp GlobalISel: Support physical register inputs in patterns 2019-09-06 20:32:37 +00:00
CodeGenRegisters.h GlobalISel: Support physical register inputs in patterns 2019-09-06 20:32:37 +00:00
CodeGenSchedule.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CodeGenSchedule.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGenTarget.cpp [ValueTypes] Add v16f16 and v32f16 to EVT::getEVTString and Tablegen's getEnumName 2019-08-30 17:34:29 +00:00
CodeGenTarget.h Recommit "[GlobalISel] Import patterns containing INSERT_SUBREG" 2019-08-27 17:47:06 +00:00
CTagsEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DAGISelEmitter.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
DAGISelMatcher.cpp [TableGen] Replace a dyn_cast with isa to avoid an unused variable warning introduced in r355785. NFC 2019-03-11 16:51:37 +00:00
DAGISelMatcher.h TableGen: Support physical register inputs > 255 2019-07-22 15:02:34 +00:00
DAGISelMatcherEmitter.cpp TableGen: Support physical register inputs > 255 2019-07-22 15:02:34 +00:00
DAGISelMatcherGen.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
DAGISelMatcherOpt.cpp [SelectionDAG] Add a OPC_CheckChild2CondCode to SelectionDAGISel to remove a MoveChild and MoveParent pair. 2019-02-25 03:11:44 +00:00
DFAPacketizerEmitter.cpp [DFAPacketizer] Reapply: Track resources for packetized instructions 2019-09-09 13:17:55 +00:00
DisassemblerEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
ExegesisEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FastISelEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FixedLenDecoderEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
GlobalISelEmitter.cpp GlobalISel: Support physical register inputs in patterns 2019-09-06 20:32:37 +00:00
InfoByHwMode.cpp Add support for pointer types in patterns 2019-02-20 19:43:47 +00:00
InfoByHwMode.h Add support for pointer types in patterns 2019-02-20 19:43:47 +00:00
InstrDocsEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
InstrInfoEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
IntrinsicEmitter.cpp [IntrinsicEmitter] Support scalable vectors in intrinsics 2019-08-27 12:57:09 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OptParserEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PredicateExpander.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PredicateExpander.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PseudoLoweringEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterBankEmitter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfoEmitter.cpp Retire llvm::less/equal in favor of C++14 std::less<>/equal_to<>. 2019-08-22 17:31:59 +00:00
RISCVCompressInstEmitter.cpp [RISCV] Replace map with set in getReqFeatures 2019-06-10 17:15:45 +00:00
SDNodeProperties.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
SDNodeProperties.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SearchableTableEmitter.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
SequenceToOffsetTable.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SubtargetEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
SubtargetFeatureInfo.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
SubtargetFeatureInfo.h Use bitset for assembler predicates 2019-03-11 17:04:35 +00:00
TableGen.cpp [tblgen] Add a timer covering the time spent reading the Instruction defs 2019-02-11 23:02:02 +00:00
TableGenBackends.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
tdtags Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Types.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Types.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WebAssemblyDisassemblerEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
WebAssemblyDisassemblerEmitter.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86DisassemblerShared.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86DisassemblerTables.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
X86DisassemblerTables.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86EVEX2VEXTablesEmitter.cpp [X86] Remove check on isAsmParserOnly from EVEX2VEX tablegenerator. NFCI 2019-04-09 07:40:19 +00:00
X86FoldTablesEmitter.cpp [X86] Make the X86FoldTablesEmitter functional again. Fix the spacing in the output to make it easier to diff. 2019-06-01 06:20:55 +00:00
X86ModRMFilters.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86ModRMFilters.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
X86RecognizableInstr.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
X86RecognizableInstr.h [X86] Split the VEX_WPrefix in X86Inst tablegen class into 3 separate fields with clear meanings. 2019-04-09 07:40:06 +00:00