[all-commits] [llvm/llvm-project] cc3bb8: [llvm][Hexagon] Generalize VLIWResourceModel, VLIW...
James Nagurne via All-commits
all-commits at lists.llvm.org
Mon Dec 6 14:24:11 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: cc3bb85580189d4a004cfd9bd2d6286cd1c1169f
https://github.com/llvm/llvm-project/commit/cc3bb85580189d4a004cfd9bd2d6286cd1c1169f
Author: James Nagurne <j-nagurne at ti.com>
Date: 2021-12-06 (Mon, 06 Dec 2021)
Changed paths:
M llvm/include/llvm/CodeGen/MachineScheduler.h
A llvm/include/llvm/CodeGen/VLIWMachineScheduler.h
M llvm/lib/CodeGen/CMakeLists.txt
M llvm/lib/CodeGen/MachineScheduler.cpp
A llvm/lib/CodeGen/VLIWMachineScheduler.cpp
M llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp
M llvm/lib/Target/Hexagon/HexagonMachineScheduler.h
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
Log Message:
-----------
[llvm][Hexagon] Generalize VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler
The Pre-RA VLIWMachineScheduler used by Hexagon is a relatively generic
implementation that would make sense to use on other VLIW targets.
This commit lifts those classes into their own header/source file with the
root VLIWMachineScheduler. I chose this path rather than adding the
strategy et al. into MachineScheduler to avoid bloating the file with other
implementations.
Target-specific behaviors have been captured and replicated through
function overloads.
- Added an overloadable DFAPacketizer creation member function. This is
mainly done for our downstream, which has the capability to override
the DFAPacketizer with custom implementations. This is an upstreamable
TODO on our end. Currently, it always returns the result of
TargetInstrInfo::CreateTargetScheduleState
- Added an extra helper which returns the number of instructions in the
current packet. This is used in our downstream, and may be useful
elsewhere.
- Placed the priority heuristic values into the ConvergingVLIWscheduler
class instead of defining them as local statics in the implementation
- Added a overridable helper in ConvergingVLIWScheduler so that targets
can create their own VLIWResourceModel
Differential Revision: https://reviews.llvm.org/D113150
More information about the All-commits
mailing list