mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
ee0b8f44c1
This is a big step to split revng-lift in two parts: one that only writes the model and one that actually lifts to LLVM IR. * Introduce `revng import binary` * Split off `BinaryFile.h` * Drop `revng.h` * `GeneratedCodeBasicInfo`: use model * Reduce role of `GeneratedCodeBasicInfo` in favor of `model::Architecture` and `model::Register` methods * `CodeGenerator`: adopt `RawBinaryView` and model * `JumpTargetManager`: adopt `RawBinaryView` and model * `ExternalJumpsHandler`: adopt model * `InstructionTranslator`: discard `Architecture` in favor of `EndianessMismatch` * Many other changes
22 lines
483 B
C++
22 lines
483 B
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/IR/PassManager.h"
|
|
|
|
class IndirectBranchInfoPrinterPass
|
|
: public llvm::PassInfoMixin<IndirectBranchInfoPrinterPass> {
|
|
llvm::raw_fd_ostream &OS;
|
|
|
|
public:
|
|
IndirectBranchInfoPrinterPass(llvm::raw_fd_ostream &OS) : OS(OS){};
|
|
|
|
llvm::PreservedAnalyses
|
|
run(llvm::Function &F, llvm::FunctionAnalysisManager &FAM);
|
|
|
|
private:
|
|
void serialize(llvm::CallBase *Call);
|
|
};
|