summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.rules2
-rw-r--r--include/llvm/Assembly/Writer.h4
-rw-r--r--lib/Analysis/DataStructure/Steensgaard.cpp9
-rw-r--r--lib/Analysis/IPA/Andersens.cpp8
-rw-r--r--lib/Target/PowerPC/PPCISelLowering.cpp4
-rw-r--r--lib/Target/PowerPC/PPCISelLowering.h1
-rw-r--r--lib/VMCore/AsmWriter.cpp3
-rw-r--r--tools/opt/GraphPrinters.cpp1
8 files changed, 27 insertions, 5 deletions
diff --git a/Makefile.rules b/Makefile.rules
index 8c595c289f..457c7f8a27 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -254,7 +254,7 @@ else
C.Flags += -D_DEBUG
endif
-CXX.Flags += $(CXXFLAGS)
+CXX.Flags += $(CXXFLAGS) -Woverloaded-virtual
C.Flags += $(CFLAGS)
CPP.BaseFlags += $(CPPFLAGS)
LD.Flags += $(LDFLAGS)
diff --git a/include/llvm/Assembly/Writer.h b/include/llvm/Assembly/Writer.h
index c8c09e809e..8b96d0db15 100644
--- a/include/llvm/Assembly/Writer.h
+++ b/include/llvm/Assembly/Writer.h
@@ -43,6 +43,10 @@ std::ostream &WriteAsOperand(std::ostream &, const Value *, bool PrintTy = true,
std::ostream &WriteAsOperand(std::ostream&, const Type*, bool PrintTy = true,
bool PrintName = true, const Module* Context = 0);
+#ifndef NDEBUG
+void dumpType(const Type* Ty);
+void dumpValue(const Value* Val);
+#endif
} // End llvm namespace
#endif
diff --git a/lib/Analysis/DataStructure/Steensgaard.cpp b/lib/Analysis/DataStructure/Steensgaard.cpp
index c7e32202cf..eb5b74ca02 100644
--- a/lib/Analysis/DataStructure/Steensgaard.cpp
+++ b/lib/Analysis/DataStructure/Steensgaard.cpp
@@ -65,7 +65,8 @@ namespace {
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);
- ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
+ virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
+ virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
private:
void ResolveFunctionCall(Function *F, const DSCallSite &Call,
@@ -266,3 +267,9 @@ Steens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return (ModRefResult)(Result & AliasAnalysis::getModRefInfo(CS, P, Size));
}
+
+AliasAnalysis::ModRefResult
+Steens::getModRefInfo(CallSite CS1, CallSite CS2)
+{
+ return AliasAnalysis::getModRefInfo(CS1,CS2);
+}
diff --git a/lib/Analysis/IPA/Andersens.cpp b/lib/Analysis/IPA/Andersens.cpp
index c9f5871b72..bb3f25427c 100644
--- a/lib/Analysis/IPA/Andersens.cpp
+++ b/lib/Analysis/IPA/Andersens.cpp
@@ -236,7 +236,8 @@ namespace {
//
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);
- ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
+ virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size);
+ virtual ModRefResult getModRefInfo(CallSite CS1, CallSite CS2);
void getMustAliases(Value *P, std::vector<Value*> &RetVals);
bool pointsToConstantMemory(const Value *P);
@@ -387,6 +388,11 @@ Andersens::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return AliasAnalysis::getModRefInfo(CS, P, Size);
}
+AliasAnalysis::ModRefResult
+Andersens::getModRefInfo(CallSite CS1, CallSite CS2) {
+ return AliasAnalysis::getModRefInfo(CS1,CS2);
+}
+
/// getMustAlias - We can provide must alias information if we know that a
/// pointer can only point to a specific function or the null pointer.
/// Unfortunately we cannot determine must-alias information for global
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
index 067063df25..31e209adf4 100644
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -2691,3 +2691,7 @@ bool PPCTargetLowering::isLegalAddressImmediate(int64_t V) const {
// PPC allows a sign-extended 16-bit immediate field.
return (V > -(1 << 16) && V < (1 << 16)-1);
}
+
+bool PPCTargetLowering::isLegalAddressImmediate(llvm::GlobalValue* GV) const {
+ return TargetLowering::isLegalAddressImmediate(GV);
+}
diff --git a/lib/Target/PowerPC/PPCISelLowering.h b/lib/Target/PowerPC/PPCISelLowering.h
index d9defe2324..467b3f0955 100644
--- a/lib/Target/PowerPC/PPCISelLowering.h
+++ b/lib/Target/PowerPC/PPCISelLowering.h
@@ -199,6 +199,7 @@ namespace llvm {
/// isLegalAddressImmediate - Return true if the integer value can be used
/// as the offset of the target addressing mode.
virtual bool isLegalAddressImmediate(int64_t V) const;
+ virtual bool isLegalAddressImmediate(llvm::GlobalValue*) const;
};
}
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index 890b598687..f3bcfb53ba 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -1081,8 +1081,7 @@ void AssemblyWriter::printInfoComment(const Value &V) {
}
}
-/// printInstruction - This member is called for each Instruction in a function..
-///
+// This member is called for each Instruction in a function..
void AssemblyWriter::printInstruction(const Instruction &I) {
if (AnnotationWriter) AnnotationWriter->emitInstructionAnnot(&I, Out);
diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp
index 8ae0a0340c..8c0ef776c2 100644
--- a/tools/opt/GraphPrinters.cpp
+++ b/tools/opt/GraphPrinters.cpp
@@ -65,6 +65,7 @@ namespace {
}
void print(std::ostream &OS) const {}
+ void print(std::ostream &OS, const llvm::Module*) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<CallGraph>();