mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
Remove the unused FindUsedTypes pass.
It was dead since r134829. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222684 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
468d2fc5ca
commit
7fe9d46f39
@ -1,66 +0,0 @@
|
||||
//===- llvm/Analysis/FindUsedTypes.h - Find all Types in use ----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This pass is used to seek out all of the types in use by the program.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_ANALYSIS_FINDUSEDTYPES_H
|
||||
#define LLVM_ANALYSIS_FINDUSEDTYPES_H
|
||||
|
||||
#include "llvm/ADT/SetVector.h"
|
||||
#include "llvm/Pass.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class Type;
|
||||
class Value;
|
||||
|
||||
class FindUsedTypes : public ModulePass {
|
||||
SetVector<Type *> UsedTypes;
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
FindUsedTypes() : ModulePass(ID) {
|
||||
initializeFindUsedTypesPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
||||
/// getTypes - After the pass has been run, return the set containing all of
|
||||
/// the types used in the module.
|
||||
///
|
||||
const SetVector<Type *> &getTypes() const { return UsedTypes; }
|
||||
|
||||
/// Print the types found in the module. If the optional Module parameter is
|
||||
/// passed in, then the types are printed symbolically if possible, using the
|
||||
/// symbol table from the module.
|
||||
///
|
||||
void print(raw_ostream &o, const Module *M) const override;
|
||||
|
||||
private:
|
||||
/// IncorporateType - Incorporate one type and all of its subtypes into the
|
||||
/// collection of used types.
|
||||
///
|
||||
void IncorporateType(Type *Ty);
|
||||
|
||||
/// IncorporateValue - Incorporate all of the types used by this value.
|
||||
///
|
||||
void IncorporateValue(const Value *V);
|
||||
|
||||
public:
|
||||
/// run - This incorporates all types used by the specified module
|
||||
bool runOnModule(Module &M) override;
|
||||
|
||||
/// getAnalysisUsage - We do not modify anything.
|
||||
void getAnalysisUsage(AnalysisUsage &AU) const override {
|
||||
AU.setPreservesAll();
|
||||
}
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
@ -131,7 +131,6 @@ void initializeDataFlowSanitizerPass(PassRegistry&);
|
||||
void initializeScalarizerPass(PassRegistry&);
|
||||
void initializeEarlyCSEPass(PassRegistry&);
|
||||
void initializeExpandISelPseudosPass(PassRegistry&);
|
||||
void initializeFindUsedTypesPass(PassRegistry&);
|
||||
void initializeFunctionAttrsPass(PassRegistry&);
|
||||
void initializeGCMachineCodeAnalysisPass(PassRegistry&);
|
||||
void initializeGCModuleInfoPass(PassRegistry&);
|
||||
|
@ -18,7 +18,6 @@
|
||||
#include "llvm/Analysis/AliasSetTracker.h"
|
||||
#include "llvm/Analysis/CallPrinter.h"
|
||||
#include "llvm/Analysis/DomPrinter.h"
|
||||
#include "llvm/Analysis/FindUsedTypes.h"
|
||||
#include "llvm/Analysis/IntervalPartition.h"
|
||||
#include "llvm/Analysis/Lint.h"
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
@ -168,7 +167,6 @@ namespace {
|
||||
(void) llvm::createRewriteSymbolsPass();
|
||||
|
||||
(void)new llvm::IntervalPartition();
|
||||
(void)new llvm::FindUsedTypes();
|
||||
(void)new llvm::ScalarEvolution();
|
||||
((llvm::Function*)nullptr)->viewCFGOnly();
|
||||
llvm::RGPassManager RGM;
|
||||
|
@ -2,7 +2,6 @@ add_llvm_library(LLVMipa
|
||||
CallGraph.cpp
|
||||
CallGraphSCCPass.cpp
|
||||
CallPrinter.cpp
|
||||
FindUsedTypes.cpp
|
||||
GlobalsModRef.cpp
|
||||
IPA.cpp
|
||||
InlineCost.cpp
|
||||
|
@ -1,99 +0,0 @@
|
||||
//===- FindUsedTypes.cpp - Find all Types used by a module ----------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This pass is used to seek out all of the types in use by the program. Note
|
||||
// that this analysis explicitly does not include types only used by the symbol
|
||||
// table.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Analysis/FindUsedTypes.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
using namespace llvm;
|
||||
|
||||
char FindUsedTypes::ID = 0;
|
||||
INITIALIZE_PASS(FindUsedTypes, "print-used-types",
|
||||
"Find Used Types", false, true)
|
||||
|
||||
// IncorporateType - Incorporate one type and all of its subtypes into the
|
||||
// collection of used types.
|
||||
//
|
||||
void FindUsedTypes::IncorporateType(Type *Ty) {
|
||||
// If ty doesn't already exist in the used types map, add it now, otherwise
|
||||
// return.
|
||||
if (!UsedTypes.insert(Ty)) return; // Already contain Ty.
|
||||
|
||||
// Make sure to add any types this type references now.
|
||||
//
|
||||
for (Type *SubTy : Ty->subtypes())
|
||||
IncorporateType(SubTy);
|
||||
}
|
||||
|
||||
void FindUsedTypes::IncorporateValue(const Value *V) {
|
||||
IncorporateType(V->getType());
|
||||
|
||||
// If this is a constant, it could be using other types...
|
||||
if (const Constant *C = dyn_cast<Constant>(V)) {
|
||||
if (!isa<GlobalValue>(C))
|
||||
for (User::const_op_iterator OI = C->op_begin(), OE = C->op_end();
|
||||
OI != OE; ++OI)
|
||||
IncorporateValue(*OI);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// run - This incorporates all types used by the specified module
|
||||
//
|
||||
bool FindUsedTypes::runOnModule(Module &m) {
|
||||
UsedTypes.clear(); // reset if run multiple times...
|
||||
|
||||
// Loop over global variables, incorporating their types
|
||||
for (Module::const_global_iterator I = m.global_begin(), E = m.global_end();
|
||||
I != E; ++I) {
|
||||
IncorporateType(I->getType());
|
||||
if (I->hasInitializer())
|
||||
IncorporateValue(I->getInitializer());
|
||||
}
|
||||
|
||||
for (Module::iterator MI = m.begin(), ME = m.end(); MI != ME; ++MI) {
|
||||
IncorporateType(MI->getType());
|
||||
const Function &F = *MI;
|
||||
|
||||
// Loop over all of the instructions in the function, adding their return
|
||||
// type as well as the types of their operands.
|
||||
//
|
||||
for (const_inst_iterator II = inst_begin(F), IE = inst_end(F);
|
||||
II != IE; ++II) {
|
||||
const Instruction &I = *II;
|
||||
|
||||
IncorporateType(I.getType()); // Incorporate the type of the instruction
|
||||
for (User::const_op_iterator OI = I.op_begin(), OE = I.op_end();
|
||||
OI != OE; ++OI)
|
||||
IncorporateValue(*OI); // Insert inst operand types as well
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Print the types found in the module. If the optional Module parameter is
|
||||
// passed in, then the types are printed symbolically if possible, using the
|
||||
// symbol table from the module.
|
||||
//
|
||||
void FindUsedTypes::print(raw_ostream &OS, const Module *M) const {
|
||||
OS << "Types in use by this module:\n";
|
||||
for (SetVector<Type *>::const_iterator I = UsedTypes.begin(),
|
||||
E = UsedTypes.end(); I != E; ++I) {
|
||||
OS << " " << **I << '\n';
|
||||
}
|
||||
}
|
@ -22,7 +22,6 @@ void llvm::initializeIPA(PassRegistry &Registry) {
|
||||
initializeCallGraphWrapperPassPass(Registry);
|
||||
initializeCallGraphPrinterPass(Registry);
|
||||
initializeCallGraphViewerPass(Registry);
|
||||
initializeFindUsedTypesPass(Registry);
|
||||
initializeGlobalsModRefPass(Registry);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user