1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/utils/TableGen
jmolloy 548ef37194 [DFAPacketizer] Allow up to 64 functional units
Summary:
To drive the automaton we used a uint64_t as an action type. This
contained the transition's resource requirements as a conjunction:

  (a OR b) AND (b OR c)

We encoded this conjunction as a sequence of four 16-bit bitmasks.
This limited the number of addressable functional units to 16, which
is quite low and has bitten many people in the past.

Instead, the DFAEmitter now generates a lookup table from InstrItinerary
class (index of the ItinData inside the ProcItineraries) to an internal
action index which is essentially a dense embedding of the conjunctive
form. Because we never materialize the conjunctive form, we no longer
have the 16 FU restriction.

In this patch we limit to 64 functional units due to using a uint64_t
bitmask in the DFAEmitter. Now that we've decoupled these representations
we can increase this in future.

Reviewers: ThomasRaoux, kparzysz, majnemer

Reviewed By: ThomasRaoux

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69110
2019-11-05 15:41:42 +00:00
..
GlobalISel [gicombiner] Add a CodeExpander to handle C++ fragments with variable expansion 2019-10-03 19:13:39 +00:00
AsmMatcherEmitter.cpp Cosmetic; don't use the magic constant 35 when HASH is more readable. This matches other MCK__<THING>_* usage better. 2019-09-23 12:52:42 +00:00
AsmWriterEmitter.cpp [tblgen] Add getOperatorAsDef() to Record 2019-10-08 18:41:32 +00:00
AsmWriterInst.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
AsmWriterInst.h
Attributes.cpp
CallingConvEmitter.cpp AArch64: support arm64_32, an ILP32 slice for watchOS. 2019-09-12 10:22:23 +00:00
CMakeLists.txt [TableGen] Introduce a generic automaton (DFA) backend 2019-10-04 09:03:36 +00:00
CodeEmitterGen.cpp [TableGen] Fix crash when using HwModes in CodeEmitterGen 2019-10-09 09:15:34 +00:00
CodeGenDAGPatterns.cpp Stop static analyzer warnings about using bitwise operators on booleans. NFCI. 2019-11-02 22:40:04 +00:00
CodeGenDAGPatterns.h TableGen: Add MinAlignment predicate 2019-07-31 00:14:43 +00:00
CodeGenHwModes.cpp
CodeGenHwModes.h
CodeGenInstruction.cpp GlobalISel: Add target pre-isel instructions 2019-10-07 18:43:29 +00:00
CodeGenInstruction.h GlobalISel: Add target pre-isel instructions 2019-10-07 18:43:29 +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] CodeGenMapTable - Don't dereference a dyn_cast result. NFCI. 2019-09-17 17:32:15 +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 [TableGen] Improve error reporting of overlapping definitions (NFC) 2019-10-02 19:44:53 +00:00
CodeGenSchedule.h
CodeGenTarget.cpp [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
CodeGenTarget.h Recommit "[GlobalISel] Import patterns containing INSERT_SUBREG" 2019-08-27 17:47:06 +00:00
CTagsEmitter.cpp
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 DAGISelMatcherOpt - TGParser::ParseOperation - silence static analyzer cast_or_null<CheckTypeMatcher> null dereference warning. NFCI. 2019-09-26 17:38:47 +00:00
DFAEmitter.cpp [TableGen] Pacify gcc-5.4 more 2019-10-07 08:23:20 +00:00
DFAEmitter.h [TableGen] Introduce a generic automaton (DFA) backend 2019-10-04 09:03:36 +00:00
DFAPacketizerEmitter.cpp [DFAPacketizer] Allow up to 64 functional units 2019-11-05 15:41:42 +00:00
DisassemblerEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
ExegesisEmitter.cpp
FastISelEmitter.cpp
FixedLenDecoderEmitter.cpp [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
GICombinerEmitter.cpp [gicombiner] Add parse failure tests for defs/match 2019-10-25 12:56:49 -07:00
GlobalISelEmitter.cpp MatchTableRecord::emit - fix boolean operator precedence warnings from PVS Studio. NFCI. 2019-11-02 21:04:07 +00:00
InfoByHwMode.cpp [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
InfoByHwMode.h [TableGen] Support encoding per-HwMode 2019-09-19 13:39:54 +00:00
InstrDocsEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
InstrInfoEmitter.cpp GlobalISel: Add target pre-isel instructions 2019-10-07 18:43:29 +00:00
IntrinsicEmitter.cpp [IntrinsicEmitter] Add overloaded type VecOfBitcastsToInt for SVE intrinsics 2019-10-02 09:25:02 +00:00
LLVMBuild.txt
OptParserEmitter.cpp
PredicateExpander.cpp
PredicateExpander.h
PseudoLoweringEmitter.cpp
RegisterBankEmitter.cpp
RegisterInfoEmitter.cpp TableGen: Use enum names in composeSubRegIndices table 2019-10-27 21:26:56 -07:00
RISCVCompressInstEmitter.cpp [tblgen] Add getOperatorAsDef() to Record 2019-10-08 18:41:32 +00:00
SDNodeProperties.cpp [tablegen] Add locations to many PrintFatalError() calls 2019-02-12 17:36:57 +00:00
SDNodeProperties.h
SearchableTableEmitter.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
SequenceToOffsetTable.h Relax assertions when there's really no entries. [NFC] 2019-10-22 15:26:30 -04:00
SubtargetEmitter.cpp [TableGen] Fix a bug that MCSchedClassDesc is interfered between different SchedModel 2019-10-11 08:36:54 +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 [TableGen] Introduce a generic automaton (DFA) backend 2019-10-04 09:03:36 +00:00
TableGenBackends.h [TableGen] Introduce a generic automaton (DFA) backend 2019-10-04 09:03:36 +00:00
tdtags
Types.cpp
Types.h
WebAssemblyDisassemblerEmitter.cpp [TableGen] Correct comments for end of namespace. NFC 2019-08-25 10:47:30 +00:00
WebAssemblyDisassemblerEmitter.h
X86DisassemblerShared.h
X86DisassemblerTables.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
X86DisassemblerTables.h
X86EVEX2VEXTablesEmitter.cpp [X86] Consider isCodeGenOnly in the EVEX2VEX pass to make VMAXPD/PS map to the non-commutable VEX instruction. Use EVEX2VEX override to fix the scalar instructions. 2019-10-01 07:10:09 +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
X86ModRMFilters.h
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