Skip to content

Commit

Permalink
fix after llvm18 merge
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilippvK committed Feb 22, 2024
1 parent 7c27260 commit 0e029ac
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions llvm/tools/pattern-gen/LLVMOverride.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The alternative to using a file like this is modifying LLVM source
more aggressively directly.
*/
#include "../lib/Target/RISCV/RISCVISelDAGToDAG.h"
#include "../lib/Target/RISCV/RISCVMacroFusion.h"
// #include "../lib/Target/RISCV/RISCVMacroFusion.h"
#include "../lib/Target/RISCV/RISCVTargetMachine.h"
#include "PatternGen.hpp"
#include "llvm/Analysis/CGSCCPassManager.h"
Expand Down Expand Up @@ -113,20 +113,34 @@ class RISCVPatternPassConfig : public TargetPassConfig {
ScheduleDAGInstrs *
createMachineScheduler(MachineSchedContext *C) const override {
const RISCVSubtarget &ST = C->MF->getSubtarget<RISCVSubtarget>();
if (ST.hasMacroFusion()) {
ScheduleDAGMILive *DAG = createGenericSchedLive(C);
DAG->addMutation(createRISCVMacroFusionDAGMutation());
return DAG;
// if (ST.hasMacroFusion()) {
// ScheduleDAGMILive *DAG = createGenericSchedLive(C);
// DAG->addMutation(createRISCVMacroFusionDAGMutation());
// return DAG;
// }
// return nullptr;
ScheduleDAGMILive *DAG = nullptr;
const auto &MacroFusions = ST.getMacroFusions();
if (!MacroFusions.empty()) {
DAG = DAG ? DAG : createGenericSchedLive(C);
DAG->addMutation(createMacroFusionDAGMutation(MacroFusions));
}
return nullptr;
return DAG;
}

ScheduleDAGInstrs *
createPostMachineScheduler(MachineSchedContext *C) const override {
const RISCVSubtarget &ST = C->MF->getSubtarget<RISCVSubtarget>();
if (ST.hasMacroFusion()) {
// if (ST.hasMacroFusion()) {
// ScheduleDAGMI *DAG = createGenericSchedPostRA(C);
// DAG->addMutation(createRISCVMacroFusionDAGMutation());
// return DAG;
// }
// return nullptr;
const auto &MacroFusions = ST.getMacroFusions();
if (!MacroFusions.empty()) {
ScheduleDAGMI *DAG = createGenericSchedPostRA(C);
DAG->addMutation(createRISCVMacroFusionDAGMutation());
DAG->addMutation(createMacroFusionDAGMutation(MacroFusions));
return DAG;
}
return nullptr;
Expand Down

0 comments on commit 0e029ac

Please sign in to comment.