mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-26 09:18:56 +00:00
Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
LLVM's footprint and speed up linking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33941 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
#include "llvm/Analysis/AliasAnalysis.h"
|
#include "llvm/Analysis/AliasAnalysis.h"
|
||||||
#include "llvm/Assembly/Writer.h"
|
#include "llvm/Assembly/Writer.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@@ -26,7 +27,8 @@ namespace {
|
|||||||
cl::opt<bool>
|
cl::opt<bool>
|
||||||
PrintAllFailures("count-aa-print-all-failed-queries", cl::ReallyHidden);
|
PrintAllFailures("count-aa-print-all-failed-queries", cl::ReallyHidden);
|
||||||
|
|
||||||
class AliasAnalysisCounter : public ModulePass, public AliasAnalysis {
|
class VISIBILITY_HIDDEN AliasAnalysisCounter
|
||||||
|
: public ModulePass, public AliasAnalysis {
|
||||||
unsigned No, May, Must;
|
unsigned No, May, Must;
|
||||||
unsigned NoMR, JustRef, JustMod, MR;
|
unsigned NoMR, JustRef, JustMod, MR;
|
||||||
const char *Name;
|
const char *Name;
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include "llvm/Target/TargetData.h"
|
#include "llvm/Target/TargetData.h"
|
||||||
#include "llvm/Support/InstIterator.h"
|
#include "llvm/Support/InstIterator.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@@ -44,7 +45,7 @@ namespace {
|
|||||||
cl::opt<bool> PrintRef("print-ref", cl::ReallyHidden);
|
cl::opt<bool> PrintRef("print-ref", cl::ReallyHidden);
|
||||||
cl::opt<bool> PrintModRef("print-modref", cl::ReallyHidden);
|
cl::opt<bool> PrintModRef("print-modref", cl::ReallyHidden);
|
||||||
|
|
||||||
class AAEval : public FunctionPass {
|
class VISIBILITY_HIDDEN AAEval : public FunctionPass {
|
||||||
unsigned NoAlias, MayAlias, MustAlias;
|
unsigned NoAlias, MayAlias, MustAlias;
|
||||||
unsigned NoModRef, Mod, Ref, ModRef;
|
unsigned NoModRef, Mod, Ref, ModRef;
|
||||||
|
|
||||||
|
@@ -23,12 +23,14 @@
|
|||||||
#include "llvm/Constants.h"
|
#include "llvm/Constants.h"
|
||||||
#include "llvm/DerivedTypes.h"
|
#include "llvm/DerivedTypes.h"
|
||||||
#include "llvm/Analysis/AliasAnalysis.h"
|
#include "llvm/Analysis/AliasAnalysis.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class AliasDebugger : public ModulePass, public AliasAnalysis {
|
class VISIBILITY_HIDDEN AliasDebugger
|
||||||
|
: public ModulePass, public AliasAnalysis {
|
||||||
|
|
||||||
//What we do is simple. Keep track of every value the AA could
|
//What we do is simple. Keep track of every value the AA could
|
||||||
//know about, and verify that queries are one of those.
|
//know about, and verify that queries are one of those.
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#include "llvm/Type.h"
|
#include "llvm/Type.h"
|
||||||
#include "llvm/Target/TargetData.h"
|
#include "llvm/Target/TargetData.h"
|
||||||
#include "llvm/Assembly/Writer.h"
|
#include "llvm/Assembly/Writer.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/InstIterator.h"
|
#include "llvm/Support/InstIterator.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@@ -551,7 +552,7 @@ void AliasSetTracker::dump() const { print(cerr); }
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class AliasSetPrinter : public FunctionPass {
|
class VISIBILITY_HIDDEN AliasSetPrinter : public FunctionPass {
|
||||||
AliasSetTracker *Tracker;
|
AliasSetTracker *Tracker;
|
||||||
public:
|
public:
|
||||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||||
|
@@ -745,7 +745,7 @@ BasicAliasAnalysis::CheckGEPInstructions(
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct StringCompare {
|
struct VISIBILITY_HIDDEN StringCompare {
|
||||||
bool operator()(const char *LHS, const char *RHS) {
|
bool operator()(const char *LHS, const char *RHS) {
|
||||||
return strcmp(LHS, RHS) < 0;
|
return strcmp(LHS, RHS) < 0;
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#include "llvm/Analysis/CFGPrinter.h"
|
#include "llvm/Analysis/CFGPrinter.h"
|
||||||
#include "llvm/Assembly/Writer.h"
|
#include "llvm/Assembly/Writer.h"
|
||||||
#include "llvm/Support/CFG.h"
|
#include "llvm/Support/CFG.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/GraphWriter.h"
|
#include "llvm/Support/GraphWriter.h"
|
||||||
#include "llvm/Config/config.h"
|
#include "llvm/Config/config.h"
|
||||||
#include <iosfwd>
|
#include <iosfwd>
|
||||||
@@ -89,7 +90,7 @@ struct DOTGraphTraits<const Function*> : public DefaultDOTGraphTraits {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct CFGPrinter : public FunctionPass {
|
struct VISIBILITY_HIDDEN CFGPrinter : public FunctionPass {
|
||||||
virtual bool runOnFunction(Function &F) {
|
virtual bool runOnFunction(Function &F) {
|
||||||
std::string Filename = "cfg." + F.getName() + ".dot";
|
std::string Filename = "cfg." + F.getName() + ".dot";
|
||||||
cerr << "Writing '" << Filename << "'...";
|
cerr << "Writing '" << Filename << "'...";
|
||||||
@@ -113,7 +114,7 @@ namespace {
|
|||||||
RegisterPass<CFGPrinter> P1("print-cfg",
|
RegisterPass<CFGPrinter> P1("print-cfg",
|
||||||
"Print CFG of function to 'dot' file");
|
"Print CFG of function to 'dot' file");
|
||||||
|
|
||||||
struct CFGOnlyPrinter : public CFGPrinter {
|
struct VISIBILITY_HIDDEN CFGOnlyPrinter : public CFGPrinter {
|
||||||
virtual bool runOnFunction(Function &F) {
|
virtual bool runOnFunction(Function &F) {
|
||||||
bool OldCFGOnly = CFGOnly;
|
bool OldCFGOnly = CFGOnly;
|
||||||
CFGOnly = true;
|
CFGOnly = true;
|
||||||
|
@@ -55,6 +55,7 @@
|
|||||||
#include "llvm/Instructions.h"
|
#include "llvm/Instructions.h"
|
||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/Pass.h"
|
#include "llvm/Pass.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/InstIterator.h"
|
#include "llvm/Support/InstIterator.h"
|
||||||
#include "llvm/Support/InstVisitor.h"
|
#include "llvm/Support/InstVisitor.h"
|
||||||
#include "llvm/Analysis/AliasAnalysis.h"
|
#include "llvm/Analysis/AliasAnalysis.h"
|
||||||
@@ -71,8 +72,8 @@ STATISTIC(NumEscapingFunctions, "Number of internal functions that escape");
|
|||||||
STATISTIC(NumIndirectCallees , "Number of indirect callees found");
|
STATISTIC(NumIndirectCallees , "Number of indirect callees found");
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class Andersens : public ModulePass, public AliasAnalysis,
|
class VISIBILITY_HIDDEN Andersens : public ModulePass, public AliasAnalysis,
|
||||||
private InstVisitor<Andersens> {
|
private InstVisitor<Andersens> {
|
||||||
/// Node class - This class is used to represent a memory object in the
|
/// Node class - This class is used to represent a memory object in the
|
||||||
/// program, and is the primitive used to build the points-to graph.
|
/// program, and is the primitive used to build the points-to graph.
|
||||||
class Node {
|
class Node {
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/Instructions.h"
|
#include "llvm/Instructions.h"
|
||||||
#include "llvm/Support/CallSite.h"
|
#include "llvm/Support/CallSite.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@@ -35,7 +36,7 @@ namespace {
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// BasicCallGraph class definition
|
// BasicCallGraph class definition
|
||||||
//
|
//
|
||||||
class BasicCallGraph : public CallGraph, public ModulePass {
|
class VISIBILITY_HIDDEN BasicCallGraph : public CallGraph, public ModulePass {
|
||||||
// Root is root of the call graph, or the external node if a 'main' function
|
// Root is root of the call graph, or the external node if a 'main' function
|
||||||
// couldn't be found.
|
// couldn't be found.
|
||||||
//
|
//
|
||||||
|
@@ -23,8 +23,9 @@
|
|||||||
#include "llvm/DerivedTypes.h"
|
#include "llvm/DerivedTypes.h"
|
||||||
#include "llvm/Analysis/AliasAnalysis.h"
|
#include "llvm/Analysis/AliasAnalysis.h"
|
||||||
#include "llvm/Analysis/CallGraph.h"
|
#include "llvm/Analysis/CallGraph.h"
|
||||||
#include "llvm/Support/InstIterator.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
|
#include "llvm/Support/InstIterator.h"
|
||||||
#include "llvm/ADT/Statistic.h"
|
#include "llvm/ADT/Statistic.h"
|
||||||
#include "llvm/ADT/SCCIterator.h"
|
#include "llvm/ADT/SCCIterator.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
@@ -42,7 +43,7 @@ namespace {
|
|||||||
/// function in the program. Later, the entries for these functions are
|
/// function in the program. Later, the entries for these functions are
|
||||||
/// removed if the function is found to call an external function (in which
|
/// removed if the function is found to call an external function (in which
|
||||||
/// case we know nothing about it.
|
/// case we know nothing about it.
|
||||||
struct FunctionRecord {
|
struct VISIBILITY_HIDDEN FunctionRecord {
|
||||||
/// GlobalInfo - Maintain mod/ref info for all of the globals without
|
/// GlobalInfo - Maintain mod/ref info for all of the globals without
|
||||||
/// addresses taken that are read or written (transitively) by this
|
/// addresses taken that are read or written (transitively) by this
|
||||||
/// function.
|
/// function.
|
||||||
@@ -63,7 +64,8 @@ namespace {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// GlobalsModRef - The actual analysis pass.
|
/// GlobalsModRef - The actual analysis pass.
|
||||||
class GlobalsModRef : public ModulePass, public AliasAnalysis {
|
class VISIBILITY_HIDDEN GlobalsModRef
|
||||||
|
: public ModulePass, public AliasAnalysis {
|
||||||
/// NonAddressTakenGlobals - The globals that do not have their addresses
|
/// NonAddressTakenGlobals - The globals that do not have their addresses
|
||||||
/// taken.
|
/// taken.
|
||||||
std::set<GlobalValue*> NonAddressTakenGlobals;
|
std::set<GlobalValue*> NonAddressTakenGlobals;
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
#include "llvm/Analysis/Passes.h"
|
#include "llvm/Analysis/Passes.h"
|
||||||
#include "llvm/Pass.h"
|
#include "llvm/Pass.h"
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/InstVisitor.h"
|
#include "llvm/Support/InstVisitor.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
#include "llvm/ADT/Statistic.h"
|
#include "llvm/ADT/Statistic.h"
|
||||||
@@ -33,7 +34,8 @@ STATISTIC(TotalMemInst, "Number of memory instructions");
|
|||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class InstCount : public FunctionPass, public InstVisitor<InstCount> {
|
class VISIBILITY_HIDDEN InstCount
|
||||||
|
: public FunctionPass, public InstVisitor<InstCount> {
|
||||||
friend class InstVisitor<InstCount>;
|
friend class InstVisitor<InstCount>;
|
||||||
|
|
||||||
void visitFunction (Function &F) { ++TotalFuncs; }
|
void visitFunction (Function &F) { ++TotalFuncs; }
|
||||||
|
@@ -31,6 +31,7 @@
|
|||||||
#include "llvm/Analysis/AliasAnalysis.h"
|
#include "llvm/Analysis/AliasAnalysis.h"
|
||||||
#include "llvm/Analysis/Dominators.h"
|
#include "llvm/Analysis/Dominators.h"
|
||||||
#include "llvm/Support/CFG.h"
|
#include "llvm/Support/CFG.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Target/TargetData.h"
|
#include "llvm/Target/TargetData.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@@ -38,7 +39,7 @@ using namespace llvm;
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
// FIXME: This should not be a FunctionPass.
|
// FIXME: This should not be a FunctionPass.
|
||||||
struct LoadVN : public FunctionPass, public ValueNumbering {
|
struct VISIBILITY_HIDDEN LoadVN : public FunctionPass, public ValueNumbering {
|
||||||
|
|
||||||
/// Pass Implementation stuff. This doesn't do any analysis.
|
/// Pass Implementation stuff. This doesn't do any analysis.
|
||||||
///
|
///
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
#include "llvm/Analysis/ProfileInfo.h"
|
#include "llvm/Analysis/ProfileInfo.h"
|
||||||
#include "llvm/Pass.h"
|
#include "llvm/Pass.h"
|
||||||
#include "llvm/Support/CFG.h"
|
#include "llvm/Support/CFG.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@@ -82,7 +83,8 @@ unsigned ProfileInfo::getExecutionCount(BasicBlock *BB) const {
|
|||||||
//
|
//
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct NoProfileInfo : public ImmutablePass, public ProfileInfo {};
|
struct VISIBILITY_HIDDEN NoProfileInfo
|
||||||
|
: public ImmutablePass, public ProfileInfo {};
|
||||||
|
|
||||||
// Register this pass...
|
// Register this pass...
|
||||||
RegisterPass<NoProfileInfo>
|
RegisterPass<NoProfileInfo>
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
#include "llvm/Analysis/ProfileInfo.h"
|
#include "llvm/Analysis/ProfileInfo.h"
|
||||||
#include "llvm/Analysis/ProfileInfoLoader.h"
|
#include "llvm/Analysis/ProfileInfoLoader.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ namespace {
|
|||||||
cl::value_desc("filename"),
|
cl::value_desc("filename"),
|
||||||
cl::desc("Profile file loaded by -profile-loader"));
|
cl::desc("Profile file loaded by -profile-loader"));
|
||||||
|
|
||||||
class LoaderPass : public ModulePass, public ProfileInfo {
|
class VISIBILITY_HIDDEN LoaderPass : public ModulePass, public ProfileInfo {
|
||||||
std::string Filename;
|
std::string Filename;
|
||||||
public:
|
public:
|
||||||
LoaderPass(const std::string &filename = "")
|
LoaderPass(const std::string &filename = "")
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
#include "llvm/Instructions.h"
|
#include "llvm/Instructions.h"
|
||||||
#include "llvm/Pass.h"
|
#include "llvm/Pass.h"
|
||||||
#include "llvm/Type.h"
|
#include "llvm/Type.h"
|
||||||
|
#include "llvm/Support/Compiler.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
// Register the ValueNumbering interface, providing a nice name to refer to.
|
// Register the ValueNumbering interface, providing a nice name to refer to.
|
||||||
@@ -48,7 +49,8 @@ namespace {
|
|||||||
/// lexically identical expressions. This does not require any ahead of time
|
/// lexically identical expressions. This does not require any ahead of time
|
||||||
/// analysis, so it is a very fast default implementation.
|
/// analysis, so it is a very fast default implementation.
|
||||||
///
|
///
|
||||||
struct BasicVN : public ImmutablePass, public ValueNumbering {
|
struct VISIBILITY_HIDDEN BasicVN
|
||||||
|
: public ImmutablePass, public ValueNumbering {
|
||||||
/// getEqualNumberNodes - Return nodes with the same value number as the
|
/// getEqualNumberNodes - Return nodes with the same value number as the
|
||||||
/// specified Value. This fills in the argument vector with any equal
|
/// specified Value. This fills in the argument vector with any equal
|
||||||
/// values.
|
/// values.
|
||||||
@@ -69,7 +71,7 @@ namespace {
|
|||||||
/// BVNImpl - Implement BasicVN in terms of a visitor class that
|
/// BVNImpl - Implement BasicVN in terms of a visitor class that
|
||||||
/// handles the different types of instructions as appropriate.
|
/// handles the different types of instructions as appropriate.
|
||||||
///
|
///
|
||||||
struct BVNImpl : public InstVisitor<BVNImpl> {
|
struct VISIBILITY_HIDDEN BVNImpl : public InstVisitor<BVNImpl> {
|
||||||
std::vector<Value*> &RetVals;
|
std::vector<Value*> &RetVals;
|
||||||
BVNImpl(std::vector<Value*> &RV) : RetVals(RV) {}
|
BVNImpl(std::vector<Value*> &RV) : RetVals(RV) {}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user