1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib/MCA
Andrea Di Biagio 5f4f979934 [MCA] Refactor class LSUnit. NFCI
This should be the last bit of refactoring in preparation for a patch that would
finally fix PR37494.

This patch introduces the concept of memory dependency groups (class
MemoryGroup) and "Load/Store Unit token" (LSUToken) to track the status of a
memory operation.

A MemoryGroup is a node of a memory dependency graph. It is used internally to
classify memory operations based on the memory operations they depend on.  Let I
and J be two memory operations, we say that I and J equivalent (for the purpose
of mapping instructions to memory dependency groups) if the set of memory
operations they depend depend on is identical.

MemoryGroups are identified by so-called LSUToken (a unique group identifier
assigned by the LSUnit to every group). When an instruction I is dispatched to
the LSUnit, the LSUnit maps I to a group, and then returns a LSUToken.
LSUTokens are used by class Scheduler to track memory dependencies.

This patch simplifies the LSUnit interface and moves most of the implementation
details to its base class (LSUnitBase). There is no user visible change to the
output.

llvm-svn: 361950
2019-05-29 11:38:27 +00:00
..
HardwareUnits [MCA] Refactor class LSUnit. NFCI 2019-05-29 11:38:27 +00:00
Stages [MCA] Refactor the logic that computes the critical memory dependency info. NFCI 2019-05-26 18:41:35 +00:00
CMakeLists.txt [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
Context.cpp [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
HWEventListener.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InstrBuilder.cpp [MCA] Remove dead assignment. NFC 2019-05-08 10:28:56 +00:00
Instruction.cpp [MCA] Refactor the logic that computes the critical memory dependency info. NFCI 2019-05-26 18:41:35 +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
Pipeline.cpp [MCA] Fix -Wparentheses warning breaking the -Werror build. 2019-03-27 16:22:36 +00:00
Support.cpp [MCA] Improved debug prints. NFC 2019-02-12 16:18:57 +00:00