aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/RISCVOptimizationPipeline.cpp
blob: cfc5583a2c17ed901ee8a34cc167cda95925927c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: GPL-3.0-or-later

#include "RISCV.h"
#include "RISCVInstrInfo.h"

namespace rcc::riscv {

MachineOptimizationPipelineTargetInfo
optimizationPipelineInfo(const RISCVSubtarget &Subtarget, bool EmitSchedulerDebugOutput) noexcept {
  return {
      .InstrInfo = instrInfo(),
      .Combiner = machineCombinerInfo(),
      .MemoryFolding = memoryFoldingInfo(),
      .FrameLowering = frameLowering(Subtarget.targetABI()),
      .PseudoExpansion = pseudoExpansionInfo(),
      .SchedulingModel = Subtarget.schedulingModel(),
      .SchedulerOptions = {.EmitDebugOutput = EmitSchedulerDebugOutput},
  };
}

} // namespace rcc::riscv