mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Revert 51775.
llvm-svn: 51795
This commit is contained in:
parent
32c27bdfc4
commit
ce2c3b07ba
@ -451,11 +451,6 @@ ifdef UNIVERSAL
|
|||||||
DISABLE_AUTO_DEPENDENCIES=1
|
DISABLE_AUTO_DEPENDENCIES=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Solaris requires the following flags to compile
|
|
||||||
ifeq ($(OS),SunOS)
|
|
||||||
CXX.Flags += -D_POSIX_C_SOURCE=199506L -U_XOPEN_SOURCE
|
|
||||||
endif
|
|
||||||
|
|
||||||
LD.Flags += -L$(LibDir) -L$(LLVMLibDir)
|
LD.Flags += -L$(LibDir) -L$(LLVMLibDir)
|
||||||
CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
|
CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
|
||||||
# All -I flags should go here, so that they don't confuse llvm-config.
|
# All -I flags should go here, so that they don't confuse llvm-config.
|
||||||
|
@ -187,7 +187,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// getModRefBehavior - Return the behavior when calling the given call site.
|
/// getModRefBehavior - Return the behavior when calling the given call site.
|
||||||
ModRefBehavior getModRefBehavior(CallSite cs,
|
ModRefBehavior getModRefBehavior(CallSite CS,
|
||||||
std::vector<PointerAccessInfo> *Info = 0);
|
std::vector<PointerAccessInfo> *Info = 0);
|
||||||
|
|
||||||
/// getModRefBehavior - Return the behavior when calling the given function.
|
/// getModRefBehavior - Return the behavior when calling the given function.
|
||||||
@ -206,8 +206,8 @@ public:
|
|||||||
///
|
///
|
||||||
/// This property corresponds to the GCC 'const' attribute.
|
/// This property corresponds to the GCC 'const' attribute.
|
||||||
///
|
///
|
||||||
bool doesNotAccessMemory(CallSite cs) {
|
bool doesNotAccessMemory(CallSite CS) {
|
||||||
return getModRefBehavior(cs) == DoesNotAccessMemory;
|
return getModRefBehavior(CS) == DoesNotAccessMemory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// doesNotAccessMemory - If the specified function is known to never read or
|
/// doesNotAccessMemory - If the specified function is known to never read or
|
||||||
@ -226,8 +226,8 @@ public:
|
|||||||
///
|
///
|
||||||
/// This property corresponds to the GCC 'pure' attribute.
|
/// This property corresponds to the GCC 'pure' attribute.
|
||||||
///
|
///
|
||||||
bool onlyReadsMemory(CallSite cs) {
|
bool onlyReadsMemory(CallSite CS) {
|
||||||
ModRefBehavior MRB = getModRefBehavior(cs);
|
ModRefBehavior MRB = getModRefBehavior(CS);
|
||||||
return MRB == DoesNotAccessMemory || MRB == OnlyReadsMemory;
|
return MRB == DoesNotAccessMemory || MRB == OnlyReadsMemory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ public:
|
|||||||
/// a particular call site modifies or reads the memory specified by the
|
/// a particular call site modifies or reads the memory specified by the
|
||||||
/// pointer.
|
/// pointer.
|
||||||
///
|
///
|
||||||
virtual ModRefResult getModRefInfo(CallSite cs, Value *P, unsigned Size);
|
virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
|
||||||
|
|
||||||
/// getModRefInfo - Return information about whether two call sites may refer
|
/// getModRefInfo - Return information about whether two call sites may refer
|
||||||
/// to the same set of memory locations. This function returns NoModRef if
|
/// to the same set of memory locations. This function returns NoModRef if
|
||||||
@ -257,7 +257,7 @@ public:
|
|||||||
/// written by CS2, Mod if CS1 writes to memory read or written by CS2, or
|
/// written by CS2, Mod if CS1 writes to memory read or written by CS2, or
|
||||||
/// ModRef if CS1 might read or write memory accessed by CS2.
|
/// ModRef if CS1 might read or write memory accessed by CS2.
|
||||||
///
|
///
|
||||||
virtual ModRefResult getModRefInfo(CallSite cs1, CallSite cs2);
|
virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
|
||||||
|
|
||||||
/// hasNoModRefInfoForCalls - Return true if the analysis has no mod/ref
|
/// hasNoModRefInfoForCalls - Return true if the analysis has no mod/ref
|
||||||
/// information for pairs of function calls (other than "pure" and "const"
|
/// information for pairs of function calls (other than "pure" and "const"
|
||||||
@ -271,7 +271,7 @@ protected:
|
|||||||
/// getModRefBehavior - Return the behavior of the specified function if
|
/// getModRefBehavior - Return the behavior of the specified function if
|
||||||
/// called from the specified call site. The call site may be null in which
|
/// called from the specified call site. The call site may be null in which
|
||||||
/// case the most generic behavior of this function should be returned.
|
/// case the most generic behavior of this function should be returned.
|
||||||
virtual ModRefBehavior getModRefBehavior(Function *F, CallSite cs,
|
virtual ModRefBehavior getModRefBehavior(Function *F, CallSite CS,
|
||||||
std::vector<PointerAccessInfo> *Info = 0);
|
std::vector<PointerAccessInfo> *Info = 0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -230,10 +230,10 @@ private:
|
|||||||
|
|
||||||
void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size,
|
void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size,
|
||||||
bool KnownMustAlias = false);
|
bool KnownMustAlias = false);
|
||||||
void addCallSite(CallSite cs, AliasAnalysis &AA);
|
void addCallSite(CallSite CS, AliasAnalysis &AA);
|
||||||
void removeCallSite(CallSite cs) {
|
void removeCallSite(CallSite CS) {
|
||||||
for (size_t i = 0, e = CallSites.size(); i != e; ++i)
|
for (size_t i = 0, e = CallSites.size(); i != e; ++i)
|
||||||
if (CallSites[i].getInstruction() == cs.getInstruction()) {
|
if (CallSites[i].getInstruction() == CS.getInstruction()) {
|
||||||
CallSites[i] = CallSites.back();
|
CallSites[i] = CallSites.back();
|
||||||
CallSites.pop_back();
|
CallSites.pop_back();
|
||||||
}
|
}
|
||||||
@ -244,7 +244,7 @@ private:
|
|||||||
/// alias one of the members in the set.
|
/// alias one of the members in the set.
|
||||||
///
|
///
|
||||||
bool aliasesPointer(const Value *Ptr, unsigned Size, AliasAnalysis &AA) const;
|
bool aliasesPointer(const Value *Ptr, unsigned Size, AliasAnalysis &AA) const;
|
||||||
bool aliasesCallSite(CallSite cs, AliasAnalysis &AA) const;
|
bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::ostream& operator<<(std::ostream &OS, const AliasSet &AS) {
|
inline std::ostream& operator<<(std::ostream &OS, const AliasSet &AS) {
|
||||||
@ -283,7 +283,7 @@ public:
|
|||||||
bool add(StoreInst *SI);
|
bool add(StoreInst *SI);
|
||||||
bool add(FreeInst *FI);
|
bool add(FreeInst *FI);
|
||||||
bool add(VAArgInst *VAAI);
|
bool add(VAArgInst *VAAI);
|
||||||
bool add(CallSite cs); // Call/Invoke instructions
|
bool add(CallSite CS); // Call/Invoke instructions
|
||||||
bool add(CallInst *CI) { return add(CallSite(CI)); }
|
bool add(CallInst *CI) { return add(CallSite(CI)); }
|
||||||
bool add(InvokeInst *II) { return add(CallSite(II)); }
|
bool add(InvokeInst *II) { return add(CallSite(II)); }
|
||||||
bool add(Instruction *I); // Dispatch to one of the other add methods...
|
bool add(Instruction *I); // Dispatch to one of the other add methods...
|
||||||
@ -298,7 +298,7 @@ public:
|
|||||||
bool remove(StoreInst *SI);
|
bool remove(StoreInst *SI);
|
||||||
bool remove(FreeInst *FI);
|
bool remove(FreeInst *FI);
|
||||||
bool remove(VAArgInst *VAAI);
|
bool remove(VAArgInst *VAAI);
|
||||||
bool remove(CallSite cs);
|
bool remove(CallSite CS);
|
||||||
bool remove(CallInst *CI) { return remove(CallSite(CI)); }
|
bool remove(CallInst *CI) { return remove(CallSite(CI)); }
|
||||||
bool remove(InvokeInst *II) { return remove(CallSite(II)); }
|
bool remove(InvokeInst *II) { return remove(CallSite(II)); }
|
||||||
bool remove(Instruction *I);
|
bool remove(Instruction *I);
|
||||||
@ -383,7 +383,7 @@ private:
|
|||||||
}
|
}
|
||||||
AliasSet *findAliasSetForPointer(const Value *Ptr, unsigned Size);
|
AliasSet *findAliasSetForPointer(const Value *Ptr, unsigned Size);
|
||||||
|
|
||||||
AliasSet *findAliasSetForCallSite(CallSite cs);
|
AliasSet *findAliasSetForCallSite(CallSite CS);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::ostream& operator<<(std::ostream &OS, const AliasSetTracker &AST) {
|
inline std::ostream& operator<<(std::ostream &OS, const AliasSetTracker &AST) {
|
||||||
|
@ -216,8 +216,8 @@ public:
|
|||||||
|
|
||||||
/// addCalledFunction add a function to the list of functions called by this
|
/// addCalledFunction add a function to the list of functions called by this
|
||||||
/// one.
|
/// one.
|
||||||
void addCalledFunction(CallSite cs, CallGraphNode *M) {
|
void addCalledFunction(CallSite CS, CallGraphNode *M) {
|
||||||
CalledFunctions.push_back(std::make_pair(cs, M));
|
CalledFunctions.push_back(std::make_pair(CS, M));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// removeCallEdgeTo - This method removes a *single* edge to the specified
|
/// removeCallEdgeTo - This method removes a *single* edge to the specified
|
||||||
@ -228,7 +228,7 @@ public:
|
|||||||
/// removeCallEdgeFor - This method removes the edge in the node for the
|
/// removeCallEdgeFor - This method removes the edge in the node for the
|
||||||
/// specified call site. Note that this method takes linear time, so it
|
/// specified call site. Note that this method takes linear time, so it
|
||||||
/// should be used sparingly.
|
/// should be used sparingly.
|
||||||
void removeCallEdgeFor(CallSite cs);
|
void removeCallEdgeFor(CallSite CS);
|
||||||
|
|
||||||
/// removeAnyCallEdgeTo - This method removes any call edges from this node to
|
/// removeAnyCallEdgeTo - This method removes any call edges from this node to
|
||||||
/// the specified callee function. This takes more time to execute than
|
/// the specified callee function. This takes more time to execute than
|
||||||
|
@ -47,7 +47,7 @@ namespace llvm {
|
|||||||
enum LocResult {
|
enum LocResult {
|
||||||
Yes, No, Unknown
|
Yes, No, Unknown
|
||||||
};
|
};
|
||||||
LocResult (*isLocation)(CallSite cs, const Value *Ptr, unsigned Size);
|
LocResult (*isLocation)(CallSite CS, const Value *Ptr, unsigned Size);
|
||||||
};
|
};
|
||||||
|
|
||||||
/// LibCallFunctionInfo - Each record in the array of FunctionInfo structs
|
/// LibCallFunctionInfo - Each record in the array of FunctionInfo structs
|
||||||
|
@ -31,8 +31,8 @@ public:
|
|||||||
static char ID;
|
static char ID;
|
||||||
PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&cerr),
|
PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&cerr),
|
||||||
DeleteStream(false) {}
|
DeleteStream(false) {}
|
||||||
PrintModulePass(OStream *o, bool ds = false)
|
PrintModulePass(OStream *o, bool DS = false)
|
||||||
: ModulePass(intptr_t(&ID)), Out(o), DeleteStream(ds) {}
|
: ModulePass(intptr_t(&ID)), Out(o), DeleteStream(DS) {}
|
||||||
|
|
||||||
~PrintModulePass() {
|
~PrintModulePass() {
|
||||||
if (DeleteStream) delete Out;
|
if (DeleteStream) delete Out;
|
||||||
@ -57,8 +57,8 @@ public:
|
|||||||
PrintFunctionPass() : FunctionPass(intptr_t(&ID)), Banner(""), Out(&cerr),
|
PrintFunctionPass() : FunctionPass(intptr_t(&ID)), Banner(""), Out(&cerr),
|
||||||
DeleteStream(false) {}
|
DeleteStream(false) {}
|
||||||
PrintFunctionPass(const std::string &B, OStream *o = &cout,
|
PrintFunctionPass(const std::string &B, OStream *o = &cout,
|
||||||
bool ds = false)
|
bool DS = false)
|
||||||
: FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(ds) {}
|
: FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(DS) {}
|
||||||
|
|
||||||
inline ~PrintFunctionPass() {
|
inline ~PrintFunctionPass() {
|
||||||
if (DeleteStream) delete Out;
|
if (DeleteStream) delete Out;
|
||||||
|
@ -133,7 +133,7 @@ public:
|
|||||||
/// symbol, like "free".
|
/// symbol, like "free".
|
||||||
///
|
///
|
||||||
static MachineRelocation getExtSym(intptr_t offset, unsigned RelocationType,
|
static MachineRelocation getExtSym(intptr_t offset, unsigned RelocationType,
|
||||||
const char *es, intptr_t cst = 0,
|
const char *ES, intptr_t cst = 0,
|
||||||
bool GOTrelative = 0) {
|
bool GOTrelative = 0) {
|
||||||
assert((RelocationType & ~63) == 0 && "Relocation type too large!");
|
assert((RelocationType & ~63) == 0 && "Relocation type too large!");
|
||||||
MachineRelocation Result;
|
MachineRelocation Result;
|
||||||
@ -143,7 +143,7 @@ public:
|
|||||||
Result.AddrType = isExtSym;
|
Result.AddrType = isExtSym;
|
||||||
Result.NeedStub = true;
|
Result.NeedStub = true;
|
||||||
Result.GOTRelative = GOTrelative;
|
Result.GOTRelative = GOTrelative;
|
||||||
Result.Target.ExtSym = es;
|
Result.Target.ExtSym = ES;
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,11 +36,11 @@ public:
|
|||||||
CallSite(CallInst *CI) : I(reinterpret_cast<Instruction*>(CI)) {}
|
CallSite(CallInst *CI) : I(reinterpret_cast<Instruction*>(CI)) {}
|
||||||
CallSite(InvokeInst *II) : I(reinterpret_cast<Instruction*>(II)) {}
|
CallSite(InvokeInst *II) : I(reinterpret_cast<Instruction*>(II)) {}
|
||||||
CallSite(Instruction *C);
|
CallSite(Instruction *C);
|
||||||
CallSite(const CallSite &cs) : I(cs.I) {}
|
CallSite(const CallSite &CS) : I(CS.I) {}
|
||||||
CallSite &operator=(const CallSite &cs) { I = cs.I; return *this; }
|
CallSite &operator=(const CallSite &CS) { I = CS.I; return *this; }
|
||||||
|
|
||||||
bool operator==(const CallSite &cs) const { return I == cs.I; }
|
bool operator==(const CallSite &CS) const { return I == CS.I; }
|
||||||
bool operator!=(const CallSite &cs) const { return I != cs.I; }
|
bool operator!=(const CallSite &CS) const { return I != CS.I; }
|
||||||
|
|
||||||
/// CallSite::get - This static method is sort of like a constructor. It will
|
/// CallSite::get - This static method is sort of like a constructor. It will
|
||||||
/// create an appropriate call site for a Call or Invoke instruction, but it
|
/// create an appropriate call site for a Call or Invoke instruction, but it
|
||||||
@ -148,8 +148,8 @@ public:
|
|||||||
bool arg_empty() const { return arg_end() == arg_begin(); }
|
bool arg_empty() const { return arg_end() == arg_begin(); }
|
||||||
unsigned arg_size() const { return unsigned(arg_end() - arg_begin()); }
|
unsigned arg_size() const { return unsigned(arg_end() - arg_begin()); }
|
||||||
|
|
||||||
bool operator<(const CallSite &cs) const {
|
bool operator<(const CallSite &CS) const {
|
||||||
return getInstruction() < cs.getInstruction();
|
return getInstruction() < CS.getInstruction();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ namespace llvm {
|
|||||||
/// The type 'TargetMachineImpl' should provide a constructor with two
|
/// The type 'TargetMachineImpl' should provide a constructor with two
|
||||||
/// parameters:
|
/// parameters:
|
||||||
/// - const Module& M: the module that is being compiled:
|
/// - const Module& M: the module that is being compiled:
|
||||||
/// - const std::string& fs: target-specific string describing target
|
/// - const std::string& FS: target-specific string describing target
|
||||||
/// flavour.
|
/// flavour.
|
||||||
|
|
||||||
template<class TargetMachineImpl>
|
template<class TargetMachineImpl>
|
||||||
@ -86,8 +86,8 @@ namespace llvm {
|
|||||||
TargetMachineRegistry::entry Entry;
|
TargetMachineRegistry::entry Entry;
|
||||||
TargetMachineRegistry::node Node;
|
TargetMachineRegistry::node Node;
|
||||||
|
|
||||||
static TargetMachine *Allocator(const Module &M, const std::string &fs) {
|
static TargetMachine *Allocator(const Module &M, const std::string &FS) {
|
||||||
return new TargetMachineImpl(M, fs);
|
return new TargetMachineImpl(M, FS);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,12 +53,12 @@ struct Inliner : public CallGraphSCCPass {
|
|||||||
/// returned is greater than the current inline threshold, the call site is
|
/// returned is greater than the current inline threshold, the call site is
|
||||||
/// not inlined.
|
/// not inlined.
|
||||||
///
|
///
|
||||||
virtual int getInlineCost(CallSite cs) = 0;
|
virtual int getInlineCost(CallSite CS) = 0;
|
||||||
|
|
||||||
// getInlineFudgeFactor - Return a > 1.0 factor if the inliner should use a
|
// getInlineFudgeFactor - Return a > 1.0 factor if the inliner should use a
|
||||||
// higher threshold to determine if the function call should be inlined.
|
// higher threshold to determine if the function call should be inlined.
|
||||||
///
|
///
|
||||||
virtual float getInlineFudgeFactor(CallSite cs) = 0;
|
virtual float getInlineFudgeFactor(CallSite CS) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// InlineThreshold - Cache the value here for easy access.
|
// InlineThreshold - Cache the value here for easy access.
|
||||||
|
@ -184,7 +184,7 @@ std::vector<BasicBlock *> CloneTrace(const std::vector<BasicBlock*> &origTrace);
|
|||||||
///
|
///
|
||||||
bool InlineFunction(CallInst *C, CallGraph *CG = 0, const TargetData *TD = 0);
|
bool InlineFunction(CallInst *C, CallGraph *CG = 0, const TargetData *TD = 0);
|
||||||
bool InlineFunction(InvokeInst *II, CallGraph *CG = 0, const TargetData *TD =0);
|
bool InlineFunction(InvokeInst *II, CallGraph *CG = 0, const TargetData *TD =0);
|
||||||
bool InlineFunction(CallSite cs, CallGraph *CG = 0, const TargetData *TD = 0);
|
bool InlineFunction(CallSite CS, CallGraph *CG = 0, const TargetData *TD = 0);
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
|
@ -77,12 +77,12 @@ namespace llvm {
|
|||||||
// getInlineCost - The heuristic used to determine if we should inline the
|
// getInlineCost - The heuristic used to determine if we should inline the
|
||||||
// function call or not.
|
// function call or not.
|
||||||
//
|
//
|
||||||
int getInlineCost(CallSite cs,
|
int getInlineCost(CallSite CS,
|
||||||
SmallPtrSet<const Function *, 16> &NeverInline);
|
SmallPtrSet<const Function *, 16> &NeverInline);
|
||||||
|
|
||||||
// getInlineFudgeFactor - Return a > 1.0 factor if the inliner should use a
|
// getInlineFudgeFactor - Return a > 1.0 factor if the inliner should use a
|
||||||
// higher threshold to determine if the function call should be inlined.
|
// higher threshold to determine if the function call should be inlined.
|
||||||
float getInlineFudgeFactor(CallSite cs);
|
float getInlineFudgeFactor(CallSite CS);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ sub gen_one_entry {
|
|||||||
print " <dt><b>$lib</b</dt><dd><ul>\n";
|
print " <dt><b>$lib</b</dt><dd><ul>\n";
|
||||||
}
|
}
|
||||||
open UNDEFS,
|
open UNDEFS,
|
||||||
"$nmPath -g -u $Directory/$lib | sed -e 's/^[ 0]* U //' | sort | uniq |";
|
"$nmPath -g -u $Directory/$lib | sed -e 's/^ *U //' | sort | uniq |";
|
||||||
my %DepLibs;
|
my %DepLibs;
|
||||||
while (<UNDEFS>) {
|
while (<UNDEFS>) {
|
||||||
chomp;
|
chomp;
|
||||||
|
Loading…
Reference in New Issue
Block a user