Patches for building llvm on Solaris x86. Contributed by Nathan Keynes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51775 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2008-05-30 17:16:20 +00:00
parent 33540adca5
commit babf11f249
13 changed files with 45 additions and 40 deletions

View File

@ -451,6 +451,11 @@ ifdef UNIVERSAL
DISABLE_AUTO_DEPENDENCIES=1
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)
CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
# All -I flags should go here, so that they don't confuse llvm-config.

View File

@ -187,7 +187,7 @@ public:
};
/// getModRefBehavior - Return the behavior when calling the given call site.
ModRefBehavior getModRefBehavior(CallSite CS,
ModRefBehavior getModRefBehavior(CallSite cs,
std::vector<PointerAccessInfo> *Info = 0);
/// getModRefBehavior - Return the behavior when calling the given function.
@ -206,8 +206,8 @@ public:
///
/// This property corresponds to the GCC 'const' attribute.
///
bool doesNotAccessMemory(CallSite CS) {
return getModRefBehavior(CS) == DoesNotAccessMemory;
bool doesNotAccessMemory(CallSite cs) {
return getModRefBehavior(cs) == DoesNotAccessMemory;
}
/// doesNotAccessMemory - If the specified function is known to never read or
@ -226,8 +226,8 @@ public:
///
/// This property corresponds to the GCC 'pure' attribute.
///
bool onlyReadsMemory(CallSite CS) {
ModRefBehavior MRB = getModRefBehavior(CS);
bool onlyReadsMemory(CallSite cs) {
ModRefBehavior MRB = getModRefBehavior(cs);
return MRB == DoesNotAccessMemory || MRB == OnlyReadsMemory;
}
@ -249,7 +249,7 @@ public:
/// a particular call site modifies or reads the memory specified by the
/// 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
/// 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
/// 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
/// 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
/// 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.
virtual ModRefBehavior getModRefBehavior(Function *F, CallSite CS,
virtual ModRefBehavior getModRefBehavior(Function *F, CallSite cs,
std::vector<PointerAccessInfo> *Info = 0);
public:

View File

@ -230,10 +230,10 @@ private:
void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size,
bool KnownMustAlias = false);
void addCallSite(CallSite CS, AliasAnalysis &AA);
void removeCallSite(CallSite CS) {
void addCallSite(CallSite cs, AliasAnalysis &AA);
void removeCallSite(CallSite cs) {
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.pop_back();
}
@ -244,7 +244,7 @@ private:
/// alias one of the members in the set.
///
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) {
@ -283,7 +283,7 @@ public:
bool add(StoreInst *SI);
bool add(FreeInst *FI);
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(InvokeInst *II) { return add(CallSite(II)); }
bool add(Instruction *I); // Dispatch to one of the other add methods...
@ -298,7 +298,7 @@ public:
bool remove(StoreInst *SI);
bool remove(FreeInst *FI);
bool remove(VAArgInst *VAAI);
bool remove(CallSite CS);
bool remove(CallSite cs);
bool remove(CallInst *CI) { return remove(CallSite(CI)); }
bool remove(InvokeInst *II) { return remove(CallSite(II)); }
bool remove(Instruction *I);
@ -383,7 +383,7 @@ private:
}
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) {

View File

@ -216,8 +216,8 @@ public:
/// addCalledFunction add a function to the list of functions called by this
/// one.
void addCalledFunction(CallSite CS, CallGraphNode *M) {
CalledFunctions.push_back(std::make_pair(CS, M));
void addCalledFunction(CallSite cs, CallGraphNode *M) {
CalledFunctions.push_back(std::make_pair(cs, M));
}
/// 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
/// specified call site. Note that this method takes linear time, so it
/// should be used sparingly.
void removeCallEdgeFor(CallSite CS);
void removeCallEdgeFor(CallSite cs);
/// removeAnyCallEdgeTo - This method removes any call edges from this node to
/// the specified callee function. This takes more time to execute than

View File

@ -47,7 +47,7 @@ namespace llvm {
enum LocResult {
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

View File

@ -31,8 +31,8 @@ public:
static char ID;
PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&cerr),
DeleteStream(false) {}
PrintModulePass(OStream *o, bool DS = false)
: ModulePass(intptr_t(&ID)), Out(o), DeleteStream(DS) {}
PrintModulePass(OStream *o, bool ds = false)
: ModulePass(intptr_t(&ID)), Out(o), DeleteStream(ds) {}
~PrintModulePass() {
if (DeleteStream) delete Out;
@ -57,8 +57,8 @@ public:
PrintFunctionPass() : FunctionPass(intptr_t(&ID)), Banner(""), Out(&cerr),
DeleteStream(false) {}
PrintFunctionPass(const std::string &B, OStream *o = &cout,
bool DS = false)
: FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(DS) {}
bool ds = false)
: FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(ds) {}
inline ~PrintFunctionPass() {
if (DeleteStream) delete Out;

View File

@ -133,7 +133,7 @@ public:
/// symbol, like "free".
///
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) {
assert((RelocationType & ~63) == 0 && "Relocation type too large!");
MachineRelocation Result;
@ -143,7 +143,7 @@ public:
Result.AddrType = isExtSym;
Result.NeedStub = true;
Result.GOTRelative = GOTrelative;
Result.Target.ExtSym = ES;
Result.Target.ExtSym = es;
return Result;
}

View File

@ -36,11 +36,11 @@ public:
CallSite(CallInst *CI) : I(reinterpret_cast<Instruction*>(CI)) {}
CallSite(InvokeInst *II) : I(reinterpret_cast<Instruction*>(II)) {}
CallSite(Instruction *C);
CallSite(const CallSite &CS) : I(CS.I) {}
CallSite &operator=(const CallSite &CS) { I = CS.I; return *this; }
CallSite(const CallSite &cs) : I(cs.I) {}
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
/// 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(); }
unsigned arg_size() const { return unsigned(arg_end() - arg_begin()); }
bool operator<(const CallSite &CS) const {
return getInstruction() < CS.getInstruction();
bool operator<(const CallSite &cs) const {
return getInstruction() < cs.getInstruction();
}
};

View File

@ -70,7 +70,7 @@ namespace llvm {
/// The type 'TargetMachineImpl' should provide a constructor with two
/// parameters:
/// - 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.
template<class TargetMachineImpl>
@ -86,8 +86,8 @@ namespace llvm {
TargetMachineRegistry::entry Entry;
TargetMachineRegistry::node Node;
static TargetMachine *Allocator(const Module &M, const std::string &FS) {
return new TargetMachineImpl(M, FS);
static TargetMachine *Allocator(const Module &M, const std::string &fs) {
return new TargetMachineImpl(M, fs);
}
};

View File

@ -53,12 +53,12 @@ struct Inliner : public CallGraphSCCPass {
/// returned is greater than the current inline threshold, the call site is
/// 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
// higher threshold to determine if the function call should be inlined.
///
virtual float getInlineFudgeFactor(CallSite CS) = 0;
virtual float getInlineFudgeFactor(CallSite cs) = 0;
private:
// InlineThreshold - Cache the value here for easy access.

View File

@ -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(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

View File

@ -77,12 +77,12 @@ namespace llvm {
// getInlineCost - The heuristic used to determine if we should inline the
// function call or not.
//
int getInlineCost(CallSite CS,
int getInlineCost(CallSite cs,
SmallPtrSet<const Function *, 16> &NeverInline);
// getInlineFudgeFactor - Return a > 1.0 factor if the inliner should use a
// higher threshold to determine if the function call should be inlined.
float getInlineFudgeFactor(CallSite CS);
float getInlineFudgeFactor(CallSite cs);
};
}

View File

@ -96,7 +96,7 @@ sub gen_one_entry {
print " <dt><b>$lib</b</dt><dd><ul>\n";
}
open UNDEFS,
"$nmPath -g -u $Directory/$lib | sed -e 's/^ *U //' | sort | uniq |";
"$nmPath -g -u $Directory/$lib | sed -e 's/^[ 0]* U //' | sort | uniq |";
my %DepLibs;
while (<UNDEFS>) {
chomp;