aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-12-05 06:49:44 +0000
committerChris Lattner <sabre@nondot.org>2004-12-05 06:49:44 +0000
commit3150e2de93563825943ade523272acdd93ef1bcf (patch)
tree65726d70e476728baeed3f98062fa3d5fe456fd1
parentbf90a5be711c572acad83061a3a965d4c48eecbd (diff)
Move lower intrinsics before FP constant emission, in case
intrinsic lowering ever introduces constants. Rename local symbols before printing function bodies, fixing 255.vortex with the CBE!!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18534 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/CBackend/CBackend.cpp9
-rw-r--r--lib/Target/CBackend/Writer.cpp9
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index d71a568d28..40800b9d43 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -85,10 +85,15 @@ namespace {
bool runOnFunction(Function &F) {
LI = &getAnalysis<LoopInfo>();
+ // Get rid of intrinsics we can't handle.
+ lowerIntrinsics(F);
+
// Output all floating point constants that cannot be printed accurately.
printFloatingPointConstants(F);
-
- lowerIntrinsics(F);
+
+ // Ensure that no local symbols conflict with global symbols.
+ F.renameLocalSymbols();
+
printFunction(F);
FPConstantMap.clear();
return false;
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index d71a568d28..40800b9d43 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -85,10 +85,15 @@ namespace {
bool runOnFunction(Function &F) {
LI = &getAnalysis<LoopInfo>();
+ // Get rid of intrinsics we can't handle.
+ lowerIntrinsics(F);
+
// Output all floating point constants that cannot be printed accurately.
printFloatingPointConstants(F);
-
- lowerIntrinsics(F);
+
+ // Ensure that no local symbols conflict with global symbols.
+ F.renameLocalSymbols();
+
printFunction(F);
FPConstantMap.clear();
return false;