Files
revng-revng/lib/FunctionIsolation/PostInlineHelpersVerifyPass.h
Andrea Gussoni 35b0da291a InlineHelpers: add post-inlining no-GEP verifier
Add `PostInlineHelpersVerifyPass`, a `ModulePass` derived class that
aborts on any `getelementptr` instruction found in any Isolated
function. `inline-helpers` is the only pass in the post-isolate chain
that could import a GEP into an Isolated function by inlining a helper
body that contains one, so the verifier is invoked at the end of
`InlineHelpersPass::runOnModule`. In this way, we early catch this
invariant on the IR.
2026-05-29 17:12:35 +02:00

21 lines
474 B
C++

#pragma once
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include "llvm/Pass.h"
/// Module pass that asserts no `getelementptr` instruction remains in any
/// `Isolated` function after the `inline-helpers` pass has run.
class PostInlineHelpersVerifyPass : public llvm::ModulePass {
public:
static char ID;
public:
PostInlineHelpersVerifyPass() : llvm::ModulePass(ID) {}
public:
bool runOnModule(llvm::Module &M) final;
};