1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/lib
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
..
Analysis [InstSimplify] use FMF to improve fcmp+select fold 2019-11-04 08:29:56 -05:00
AsmParser [IR] Add Freeze instruction 2019-11-05 15:54:56 +09:00
BinaryFormat [DWARF5] Added support for deleted C++ special member functions. 2019-10-29 13:44:06 -07:00
Bitcode [IR] Add Freeze instruction 2019-11-05 15:54:56 +09:00
Bitstream
CodeGen [DFAPacketizer] Allow up to 64 functional units 2019-11-05 15:41:42 +00:00
DebugInfo DWARFDebugLoclists: Make it possible to read relocated addresses 2019-11-05 10:21:39 +01:00
Demangle [demangle] NFC: get rid of NodeOrString 2019-11-04 12:17:12 -08:00
ExecutionEngine [JITLink] Move block ownership from LinkGraph to Section. 2019-10-30 17:57:03 -07:00
Fuzzer
FuzzMutate
IR [IR] Remove switch's default block that causes clang 8 raise error 2019-11-05 16:31:51 +09:00
IRReader
LineEditor
Linker [Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned) 2019-10-15 11:24:36 +00:00
LTO Fix compilation warning on the trailing whitespace. NFC. 2019-10-24 09:55:06 -04:00
MC [PowerPC][AIX] Adds support for writing the data section in object files 2019-10-30 18:44:35 +00:00
MCA [MCA] Fix a spelling mistake in a comment. NFC 2019-10-27 10:06:22 +00:00
Object [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
ObjectYAML minidump: Add an "arm64" constant 2019-10-31 11:20:46 +01:00
Option
Passes [NewPM] Add an SROA pass after loop unroll 2019-11-01 14:59:08 -07:00
ProfileData [profile] Add a mode to continuously sync counter updates to a file 2019-10-31 16:04:09 -07:00
Remarks [Remarks] Add support for linking remarks 2019-10-31 15:26:55 -07:00
Support [demangle] NFC: get rid of NodeOrString 2019-11-04 12:17:12 -08:00
TableGen Add Record::getValueAsOptionalDef(). 2019-10-25 16:39:21 -07:00
Target [ARM] Always enable UseAA in the arm backend 2019-11-05 10:46:56 +00:00
Testing
TextAPI Reland "[TextAPI] Introduce TBDv4" 2019-10-10 04:24:44 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms [LV] Apply sink-after & interleave-groups as VPlan transformations (NFC) 2019-11-05 17:29:13 +02:00
WindowsManifest
XRay
CMakeLists.txt
LLVMBuild.txt