mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
35b0da291a
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.
21 lines
474 B
C++
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;
|
|
};
|