Files
revng-revng/lib/mlir/Dialect/Clift/Transforms/CSemantics.cpp
Lauri Vasama 237d246665 Factor out the default C target implementation
This commit also adds size 16 -> extended integer kind mapping.

While we are hardcoding this for now, some maintenance (as above) is
needed, so it's best to hardcode it only in one place and share that
definition.
2025-07-17 16:45:03 +02:00

36 lines
850 B
C++

//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include "mlir/Pass/Pass.h"
#include "revng/mlir/Dialect/Clift/Transforms/Passes.h"
#include "revng/mlir/Dialect/Clift/Utils/CSemantics.h"
namespace mlir {
namespace clift {
#define GEN_PASS_DEF_CLIFTVERIFYC
#include "revng/mlir/Dialect/Clift/Transforms/Passes.h.inc"
} // namespace clift
} // namespace mlir
namespace clift = mlir::clift;
namespace {
struct VerifyCPass : clift::impl::CliftVerifyCBase<VerifyCPass> {
void runOnOperation() override {
const auto &Target = clift::TargetCImplementation::Default;
if (mlir::failed(verifyCSemantics(getOperation(), Target)))
signalPassFailure();
}
};
} // namespace
std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
clift::createVerifyCPass() {
return std::make_unique<VerifyCPass>();
}