mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
2d46979813
A pass which segregates direct stack accesses from all other memory accesses through appropriate alias information metadata. By doing so, we provide a way to say that stack accesses reasonably do not interfere with any other memory access. This pass also tries to canonicalize `inttoptr` + `add` instructions into `getelementptr`s so as to avoid the use of `inttoptr`, which would otherwise inhibit compiler optimizations.
18 lines
374 B
C++
18 lines
374 B
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/IR/PassManager.h"
|
|
|
|
#include "revng/Support/revng.h"
|
|
|
|
class SegregateDirectStackAccessesPass
|
|
: public llvm::PassInfoMixin<SegregateDirectStackAccessesPass> {
|
|
|
|
public:
|
|
llvm::PreservedAnalyses
|
|
run(llvm::Function &F, llvm::FunctionAnalysisManager &FAM);
|
|
};
|