aboutsummaryrefslogtreecommitdiff
path: root/tools/bugpoint
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@FreeBSD.org>2010-01-23 11:09:33 +0000
committerRoman Divacky <rdivacky@FreeBSD.org>2010-01-23 11:09:33 +0000
commit989df958a10f0beb90b89ccadd8351cbe51d90b1 (patch)
tree74eecbae571601ec6a626a53374b1eddc7b164a5 /tools/bugpoint
parent829000e035f46f2a227a5466e4e427a2f3cc00a9 (diff)
downloadsrc-989df958a10f0beb90b89ccadd8351cbe51d90b1.tar.gz
src-989df958a10f0beb90b89ccadd8351cbe51d90b1.zip
Update LLVM to r94309.
Notes
Notes: svn path=/vendor/llvm/dist/; revision=202878
Diffstat (limited to 'tools/bugpoint')
-rw-r--r--tools/bugpoint/Miscompilation.cpp37
1 files changed, 7 insertions, 30 deletions
diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp
index a5914178f12e..c2b002f9dd5c 100644
--- a/tools/bugpoint/Miscompilation.cpp
+++ b/tools/bugpoint/Miscompilation.cpp
@@ -22,7 +22,6 @@
#include "llvm/Module.h"
#include "llvm/Pass.h"
#include "llvm/Analysis/Verifier.h"
-#include "llvm/Support/Mangler.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileUtilities.h"
@@ -235,30 +234,16 @@ bool ReduceMiscompilingFunctions::TestFuncs(const std::vector<Function*>&Funcs){
return TestFn(BD, ToOptimize, ToNotOptimize);
}
-/// DisambiguateGlobalSymbols - Mangle symbols to guarantee uniqueness by
-/// modifying predominantly internal symbols rather than external ones.
+/// DisambiguateGlobalSymbols - Give anonymous global values names.
///
static void DisambiguateGlobalSymbols(Module *M) {
- // Try not to cause collisions by minimizing chances of renaming an
- // already-external symbol, so take in external globals and functions as-is.
- // The code should work correctly without disambiguation (assuming the same
- // mangler is used by the two code generators), but having symbols with the
- // same name causes warnings to be emitted by the code generator.
- Mangler Mang(*M);
- // Agree with the CBE on symbol naming
- Mang.markCharUnacceptable('.');
for (Module::global_iterator I = M->global_begin(), E = M->global_end();
- I != E; ++I) {
- // Don't mangle asm names.
- if (!I->hasName() || I->getName()[0] != 1)
- I->setName(Mang.getMangledName(I));
- }
- for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) {
- // Don't mangle asm names or intrinsics.
- if ((!I->hasName() || I->getName()[0] != 1) &&
- I->getIntrinsicID() == 0)
- I->setName(Mang.getMangledName(I));
- }
+ I != E; ++I)
+ if (!I->hasName())
+ I->setName("anon_global");
+ for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
+ if (!I->hasName())
+ I->setName("anon_fn");
}
/// ExtractLoops - Given a reduced list of functions that still exposed the bug,
@@ -548,10 +533,6 @@ DebugAMiscompilation(BugDriver &BD,
ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
// Okay, we extracted some loops and the problem still appears. See if we
// can eliminate some of the created functions from being candidates.
-
- // Loop extraction can introduce functions with the same name (foo_code).
- // Make sure to disambiguate the symbols so that when the program is split
- // apart that we can link it back together again.
DisambiguateGlobalSymbols(BD.getProgram());
// Do the reduction...
@@ -569,10 +550,6 @@ DebugAMiscompilation(BugDriver &BD,
ExtractBlocks(BD, TestFn, MiscompiledFunctions)) {
// Okay, we extracted some blocks and the problem still appears. See if we
// can eliminate some of the created functions from being candidates.
-
- // Block extraction can introduce functions with the same name (foo_code).
- // Make sure to disambiguate the symbols so that when the program is split
- // apart that we can link it back together again.
DisambiguateGlobalSymbols(BD.getProgram());
// Do the reduction...