summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/IR/LLVMContext.h6
-rw-r--r--lib/Analysis/ProfileDataLoaderPass.cpp4
-rw-r--r--lib/Analysis/ProfileInfoLoaderPass.cpp17
-rw-r--r--lib/CodeGen/IntrinsicLowering.cpp36
-rw-r--r--lib/IR/LLVMContext.cpp29
-rw-r--r--lib/Transforms/Instrumentation/EdgeProfiling.cpp5
-rw-r--r--lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp5
-rw-r--r--lib/Transforms/Instrumentation/PathProfiling.cpp4
8 files changed, 31 insertions, 75 deletions
diff --git a/include/llvm/IR/LLVMContext.h b/include/llvm/IR/LLVMContext.h
index d4835e0..b28a3f2 100644
--- a/include/llvm/IR/LLVMContext.h
+++ b/include/llvm/IR/LLVMContext.h
@@ -101,12 +101,6 @@ public:
void emitError(const Instruction *I, const Twine &ErrorStr);
void emitError(const Twine &ErrorStr);
- /// emitWarning - This is similar to emitError but it emits a warning instead
- /// of an error.
- void emitWarning(unsigned LocCookie, const Twine &ErrorStr);
- void emitWarning(const Instruction *I, const Twine &ErrorStr);
- void emitWarning(const Twine &ErrorStr);
-
private:
LLVMContext(LLVMContext&) LLVM_DELETED_FUNCTION;
void operator=(LLVMContext&) LLVM_DELETED_FUNCTION;
diff --git a/lib/Analysis/ProfileDataLoaderPass.cpp b/lib/Analysis/ProfileDataLoaderPass.cpp
index 51b7f1d..2ee0093 100644
--- a/lib/Analysis/ProfileDataLoaderPass.cpp
+++ b/lib/Analysis/ProfileDataLoaderPass.cpp
@@ -177,8 +177,8 @@ bool ProfileMetadataLoaderPass::runOnModule(Module &M) {
unsigned ReadCount = matchEdges(M, PB, Counters);
if (ReadCount != Counters.size()) {
- M.getContext().emitWarning("profile information is inconsistent "
- "with the current program");
+ errs() << "WARNING: profile information is inconsistent with "
+ << "the current program!\n";
}
NumEdgesRead = ReadCount;
diff --git a/lib/Analysis/ProfileInfoLoaderPass.cpp b/lib/Analysis/ProfileInfoLoaderPass.cpp
index 094c107..346f8d6 100644
--- a/lib/Analysis/ProfileInfoLoaderPass.cpp
+++ b/lib/Analysis/ProfileInfoLoaderPass.cpp
@@ -19,7 +19,6 @@
#include "llvm/Analysis/ProfileInfoLoader.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/InstrTypes.h"
-#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
#include "llvm/Support/CFG.h"
@@ -171,8 +170,8 @@ bool LoaderPass::runOnModule(Module &M) {
}
}
if (ReadCount != Counters.size()) {
- M.getContext().emitWarning("profile information is inconsistent "
- "with the current program");
+ errs() << "WARNING: profile information is inconsistent with "
+ << "the current program!\n";
}
NumEdgesRead = ReadCount;
}
@@ -219,8 +218,8 @@ bool LoaderPass::runOnModule(Module &M) {
}
}
if (ReadCount != Counters.size()) {
- M.getContext().emitWarning("profile information is inconsistent "
- "with the current program");
+ errs() << "WARNING: profile information is inconsistent with "
+ << "the current program!\n";
}
NumEdgesRead = ReadCount;
}
@@ -240,8 +239,8 @@ bool LoaderPass::runOnModule(Module &M) {
BlockInformation[F][BB] = (double)Counters[ReadCount++];
}
if (ReadCount != Counters.size()) {
- M.getContext().emitWarning("profile information is inconsistent "
- "with the current program");
+ errs() << "WARNING: profile information is inconsistent with "
+ << "the current program!\n";
}
}
@@ -259,8 +258,8 @@ bool LoaderPass::runOnModule(Module &M) {
FunctionInformation[F] = (double)Counters[ReadCount++];
}
if (ReadCount != Counters.size()) {
- M.getContext().emitWarning("profile information is inconsistent "
- "with the current program");
+ errs() << "WARNING: profile information is inconsistent with "
+ << "the current program!\n";
}
}
diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp
index 16e7968..07f0ccf 100644
--- a/lib/CodeGen/IntrinsicLowering.cpp
+++ b/lib/CodeGen/IntrinsicLowering.cpp
@@ -413,30 +413,22 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
}
case Intrinsic::stacksave:
+ case Intrinsic::stackrestore: {
if (!Warned)
- Context.emitWarning("this target does not support the "
- "llvm.stacksave intrinsic");
- Warned = true;
- CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
- break;
-
- case Intrinsic::stackrestore:
- if (!Warned)
- Context.emitWarning("this target does not support the "
- "llvm.stackrestore intrinsic");
+ errs() << "WARNING: this target does not support the llvm.stack"
+ << (Callee->getIntrinsicID() == Intrinsic::stacksave ?
+ "save" : "restore") << " intrinsic.\n";
Warned = true;
+ if (Callee->getIntrinsicID() == Intrinsic::stacksave)
+ CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
break;
+ }
case Intrinsic::returnaddress:
- Context.emitWarning("this target does not support the "
- "llvm.returnaddress intrinsic");
- CI->replaceAllUsesWith(ConstantPointerNull::get(
- cast<PointerType>(CI->getType())));
- break;
-
case Intrinsic::frameaddress:
- Context.emitWarning("this target does not support the "
- "llvm.frameaddress intrinsic");
+ errs() << "WARNING: this target does not support the llvm."
+ << (Callee->getIntrinsicID() == Intrinsic::returnaddress ?
+ "return" : "frame") << "address intrinsic.\n";
CI->replaceAllUsesWith(ConstantPointerNull::get(
cast<PointerType>(CI->getType())));
break;
@@ -446,12 +438,12 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
case Intrinsic::pcmarker:
break; // Simply strip out pcmarker on unsupported architectures
- case Intrinsic::readcyclecounter:
- Context.emitWarning("this target does not support the "
- "llvm.readcyclecounter intrinsic; "
- "it is being lowered to a constant 0");
+ case Intrinsic::readcyclecounter: {
+ errs() << "WARNING: this target does not support the llvm.readcyclecoun"
+ << "ter intrinsic. It is being lowered to a constant 0\n";
CI->replaceAllUsesWith(ConstantInt::get(Type::getInt64Ty(Context), 0));
break;
+ }
case Intrinsic::dbg_declare:
break; // Simply strip out debugging intrinsics
diff --git a/lib/IR/LLVMContext.cpp b/lib/IR/LLVMContext.cpp
index 282779c..774c591 100644
--- a/lib/IR/LLVMContext.cpp
+++ b/lib/IR/LLVMContext.cpp
@@ -95,30 +95,16 @@ void LLVMContext::emitError(const Twine &ErrorStr) {
emitError(0U, ErrorStr);
}
-void LLVMContext::emitWarning(const Twine &ErrorStr) {
- emitWarning(0U, ErrorStr);
-}
-
-static unsigned getSrcLocation(const Instruction *I) {
+void LLVMContext::emitError(const Instruction *I, const Twine &ErrorStr) {
unsigned LocCookie = 0;
if (const MDNode *SrcLoc = I->getMetadata("srcloc")) {
if (SrcLoc->getNumOperands() != 0)
if (const ConstantInt *CI = dyn_cast<ConstantInt>(SrcLoc->getOperand(0)))
LocCookie = CI->getZExtValue();
}
- return LocCookie;
-}
-
-void LLVMContext::emitError(const Instruction *I, const Twine &ErrorStr) {
- unsigned LocCookie = getSrcLocation(I);
return emitError(LocCookie, ErrorStr);
}
-void LLVMContext::emitWarning(const Instruction *I, const Twine &ErrorStr) {
- unsigned LocCookie = getSrcLocation(I);
- return emitWarning(LocCookie, ErrorStr);
-}
-
void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
// If there is no error handler installed, just print the error and exit.
if (pImpl->DiagHandler == 0) {
@@ -132,19 +118,6 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
pImpl->DiagHandler(Diag, pImpl->DiagContext, LocCookie);
}
-void LLVMContext::emitWarning(unsigned LocCookie, const Twine &ErrorStr) {
- // If there is no handler installed, just print the warning.
- if (pImpl->DiagHandler == 0) {
- errs() << "warning: " << ErrorStr << "\n";
- return;
- }
-
- // If we do have a handler, we can report the warning.
- SMDiagnostic Diag("", SourceMgr::DK_Warning, ErrorStr.str());
-
- pImpl->DiagHandler(Diag, pImpl->DiagContext, LocCookie);
-}
-
//===----------------------------------------------------------------------===//
// Metadata Kind Uniquing
//===----------------------------------------------------------------------===//
diff --git a/lib/Transforms/Instrumentation/EdgeProfiling.cpp b/lib/Transforms/Instrumentation/EdgeProfiling.cpp
index 0b18b4c..a2459fb 100644
--- a/lib/Transforms/Instrumentation/EdgeProfiling.cpp
+++ b/lib/Transforms/Instrumentation/EdgeProfiling.cpp
@@ -21,7 +21,6 @@
#include "llvm/Transforms/Instrumentation.h"
#include "ProfilingUtils.h"
#include "llvm/ADT/Statistic.h"
-#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
@@ -55,8 +54,8 @@ ModulePass *llvm::createEdgeProfilerPass() { return new EdgeProfiler(); }
bool EdgeProfiler::runOnModule(Module &M) {
Function *Main = M.getFunction("main");
if (Main == 0) {
- M.getContext().emitWarning("cannot insert edge profiling into a module"
- " with no main function");
+ errs() << "WARNING: cannot insert edge profiling into a module"
+ << " with no main function!\n";
return false; // No main, no instrumentation!
}
diff --git a/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp b/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp
index c5a1fe9..b45aef6 100644
--- a/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp
+++ b/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp
@@ -22,7 +22,6 @@
#include "llvm/Analysis/ProfileInfo.h"
#include "llvm/Analysis/ProfileInfoLoader.h"
#include "llvm/IR/Constants.h"
-#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
#include "llvm/Support/Debug.h"
@@ -76,8 +75,8 @@ inline static void printEdgeCounter(ProfileInfo::Edge e,
bool OptimalEdgeProfiler::runOnModule(Module &M) {
Function *Main = M.getFunction("main");
if (Main == 0) {
- M.getContext().emitWarning("cannot insert edge profiling into a module"
- " with no main function");
+ errs() << "WARNING: cannot insert edge profiling into a module"
+ << " with no main function!\n";
return false; // No main, no instrumentation!
}
diff --git a/lib/Transforms/Instrumentation/PathProfiling.cpp b/lib/Transforms/Instrumentation/PathProfiling.cpp
index 358bbeb..7de7326 100644
--- a/lib/Transforms/Instrumentation/PathProfiling.cpp
+++ b/lib/Transforms/Instrumentation/PathProfiling.cpp
@@ -1345,8 +1345,8 @@ bool PathProfiler::runOnModule(Module &M) {
Main = M.getFunction("MAIN__");
if (!Main) {
- Context->emitWarning("cannot insert edge profiling into a module"
- " with no main function");
+ errs() << "WARNING: cannot insert path profiling into a module"
+ << " with no main function!\n";
return false;
}