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

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

namespace rcc::riscv {

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

} // namespace rcc::riscv