aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen/GlobalISel/Legalizer.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-15 00:38:20 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-15 00:38:20 +0800
commitf6fdfb8d484b4e52cdb24a94a31b0f00d41a5eb7 (patch)
tree9362d0230db6174acdbe095288f4bbb1c4a896a9 /backend/include/rcc/CodeGen/GlobalISel/Legalizer.h
parent7e2660ad5b7ec5b74cafed27f674939691f9e0fc (diff)
downloadrcc-project-f6fdfb8d484b4e52cdb24a94a31b0f00d41a5eb7.tar.gz
rcc-project-f6fdfb8d484b4e52cdb24a94a31b0f00d41a5eb7.tar.xz
[GlobalISel] Match LLVM CSE builder result semantics
Diffstat (limited to 'backend/include/rcc/CodeGen/GlobalISel/Legalizer.h')
-rw-r--r--backend/include/rcc/CodeGen/GlobalISel/Legalizer.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/backend/include/rcc/CodeGen/GlobalISel/Legalizer.h b/backend/include/rcc/CodeGen/GlobalISel/Legalizer.h
index dfeda22..358ed1a 100644
--- a/backend/include/rcc/CodeGen/GlobalISel/Legalizer.h
+++ b/backend/include/rcc/CodeGen/GlobalISel/Legalizer.h
@@ -3,6 +3,7 @@
#ifndef RCC_CODEGEN_GLOBALISEL_LEGALIZER_H
#define RCC_CODEGEN_GLOBALISEL_LEGALIZER_H
+#include "rcc/CodeGen/CommandFlags.h"
#include "rcc/CodeGen/GlobalISel/LegalizerInfo.h"
#include "rcc/CodeGen/MachinePassManager.h"
@@ -12,10 +13,12 @@ namespace rcc {
class Legalizer final : public MachineFunctionPass {
public:
- explicit Legalizer(const LegalizerInfo *Info) : Info(Info) {}
- explicit Legalizer(const LegalizerInfo &Info) : Info(&Info) {}
- explicit Legalizer(std::unique_ptr<LegalizerInfo> Info)
- : OwnedInfo(std::move(Info)), Info(OwnedInfo.get()) {}
+ Legalizer(const LegalizerInfo *Info, OptimizationLevel Optimization)
+ : Info(Info), Optimization(Optimization) {}
+ Legalizer(const LegalizerInfo &Info, OptimizationLevel Optimization)
+ : Info(&Info), Optimization(Optimization) {}
+ Legalizer(std::unique_ptr<LegalizerInfo> Info, OptimizationLevel Optimization)
+ : OwnedInfo(std::move(Info)), Info(OwnedInfo.get()), Optimization(Optimization) {}
[[nodiscard]] const MachinePassContract &contract() const noexcept override;
[[nodiscard]] Expected<MachinePassResult> run(MachineFunction &Function,
@@ -29,6 +32,7 @@ private:
std::unique_ptr<LegalizerInfo> OwnedInfo;
const LegalizerInfo *Info = nullptr;
+ OptimizationLevel Optimization;
};
} // namespace rcc