mirror of
https://github.com/intel/llvm.git
synced 2026-02-02 18:18:09 +08:00
[lldb][NFC] Remove misleading ModulePass base class for IRForTarget
IRForTarget is never used by a pass manager or any other interface that requires this class to inherit from `Pass`. Also IRForTarget doesn't implement the current interface correctly because it uses the `runOnModule` return value to indicate success/failure instead of changed/not-changed, so if this ever ends up being used as a pass it would most likely not work as intended. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D102677
This commit is contained in:
@@ -41,8 +41,6 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
static char ID;
|
||||
|
||||
typedef SmallVector<Instruction *, 2> InstrList;
|
||||
|
||||
IRForTarget::FunctionValueCache::FunctionValueCache(Maker const &maker)
|
||||
@@ -72,7 +70,7 @@ IRForTarget::IRForTarget(lldb_private::ClangExpressionDeclMap *decl_map,
|
||||
lldb_private::IRExecutionUnit &execution_unit,
|
||||
lldb_private::Stream &error_stream,
|
||||
const char *func_name)
|
||||
: ModulePass(ID), m_resolve_vars(resolve_vars), m_func_name(func_name),
|
||||
: m_resolve_vars(resolve_vars), m_func_name(func_name),
|
||||
m_decl_map(decl_map), m_error_stream(error_stream),
|
||||
m_execution_unit(execution_unit),
|
||||
m_entry_instruction_finder(FindEntryInstruction) {}
|
||||
@@ -101,8 +99,6 @@ static std::string PrintType(const llvm::Type *type, bool truncate = false) {
|
||||
return s;
|
||||
}
|
||||
|
||||
IRForTarget::~IRForTarget() {}
|
||||
|
||||
bool IRForTarget::FixFunctionLinkage(llvm::Function &llvm_function) {
|
||||
llvm_function.setLinkage(GlobalValue::ExternalLinkage);
|
||||
|
||||
@@ -2018,10 +2014,3 @@ bool IRForTarget::runOnModule(Module &llvm_module) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void IRForTarget::assignPassManager(PMStack &pass_mgr_stack,
|
||||
PassManagerType pass_mgr_type) {}
|
||||
|
||||
PassManagerType IRForTarget::getPotentialPassManagerType() const {
|
||||
return PMT_ModulePassManager;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class IRMemoryMap;
|
||||
/// transformations to the IR which make it relocatable. These
|
||||
/// transformations are discussed in more detail next to their relevant
|
||||
/// functions.
|
||||
class IRForTarget : public llvm::ModulePass {
|
||||
class IRForTarget {
|
||||
public:
|
||||
enum class LookupResult { Success, Fail, Ignore };
|
||||
|
||||
@@ -87,9 +87,6 @@ public:
|
||||
lldb_private::Stream &error_stream,
|
||||
const char *func_name = "$__lldb_expr");
|
||||
|
||||
/// Destructor
|
||||
~IRForTarget() override;
|
||||
|
||||
/// Run this IR transformer on a single module
|
||||
///
|
||||
/// Implementation of the llvm::ModulePass::runOnModule() function.
|
||||
@@ -101,20 +98,7 @@ public:
|
||||
///
|
||||
/// \return
|
||||
/// True on success; false otherwise
|
||||
bool runOnModule(llvm::Module &llvm_module) override;
|
||||
|
||||
/// Interface stub
|
||||
///
|
||||
/// Implementation of the llvm::ModulePass::assignPassManager() function.
|
||||
void assignPassManager(llvm::PMStack &pass_mgr_stack,
|
||||
llvm::PassManagerType pass_mgr_type =
|
||||
llvm::PMT_ModulePassManager) override;
|
||||
|
||||
/// Returns PMT_ModulePassManager
|
||||
///
|
||||
/// Implementation of the llvm::ModulePass::getPotentialPassManagerType()
|
||||
/// function.
|
||||
llvm::PassManagerType getPotentialPassManagerType() const override;
|
||||
bool runOnModule(llvm::Module &llvm_module);
|
||||
|
||||
private:
|
||||
/// Ensures that the current function's linkage is set to external.
|
||||
|
||||
Reference in New Issue
Block a user