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
21 lines
504 B
C++
21 lines
504 B
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/IR/AssemblyAnnotationWriter.h"
|
|
#include "llvm/IR/PassManager.h"
|
|
|
|
class AAWriterPass : public llvm::PassInfoMixin<AAWriterPass> {
|
|
llvm::raw_fd_ostream &OS;
|
|
const bool StoresOnly;
|
|
|
|
public:
|
|
AAWriterPass(llvm::raw_fd_ostream &OS, bool StoresOnly = false) :
|
|
OS(OS), StoresOnly(StoresOnly){};
|
|
|
|
llvm::PreservedAnalyses
|
|
run(llvm::Function &F, llvm::FunctionAnalysisManager &FAM);
|
|
};
|