[clang] [CIR][NFC] Add TargetLowering pass (PR #179245)
Henrich Lauko via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 2 22:09:38 PST 2026
================
@@ -0,0 +1,77 @@
+//===- TargetLowering.cpp -------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements the cir-target-lowering pass.
+//
+//===----------------------------------------------------------------------===//
+
+#include "TargetLowering/LowerModule.h"
+
+#include "mlir/Support/LLVM.h"
+#include "clang/CIR/Dialect/Passes.h"
+#include "llvm/ADT/TypeSwitch.h"
+
+using namespace mlir;
+using namespace cir;
+
+namespace mlir {
+#define GEN_PASS_DEF_TARGETLOWERING
+#include "clang/CIR/Dialect/Passes.h.inc"
+} // namespace mlir
+
+namespace {
+
+struct TargetLoweringPass
+ : public impl::TargetLoweringBase<TargetLoweringPass> {
+ TargetLoweringPass() = default;
+ void runOnOperation() override;
+
+private:
+ void runOnOp(cir::LoadOp op, cir::LowerModule &lowerModule);
+ void runOnOp(cir::StoreOp op, cir::LowerModule &lowerModule);
+};
+
+} // namespace
+
+void TargetLoweringPass::runOnOp(cir::LoadOp op,
+ cir::LowerModule &lowerModule) {
+ if (std::optional<cir::SyncScopeKind> syncScope = op.getSyncScope())
+ op.setSyncScope(
+ lowerModule.getTargetLoweringInfo().convertSyncScope(*syncScope));
+}
+
+void TargetLoweringPass::runOnOp(cir::StoreOp op,
+ cir::LowerModule &lowerModule) {
+ if (std::optional<cir::SyncScopeKind> syncScope = op.getSyncScope())
+ op.setSyncScope(
+ lowerModule.getTargetLoweringInfo().convertSyncScope(*syncScope));
+}
----------------
xlauko wrote:
These are 2 times the same function, should be template?
And maybe better named:
`convertSyncScopeIfPresent`?
https://github.com/llvm/llvm-project/pull/179245
More information about the cfe-commits
mailing list