[llvm-commits] [llvm-gcc-4.2] r72960 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h llvm-backend.cpp

Devang Patel dpatel at apple.com
Fri Jun 5 14:57:59 PDT 2009


Author: dpatel
Date: Fri Jun  5 16:57:59 2009
New Revision: 72960

URL: http://llvm.org/viewvc/llvm-project?rev=72960&view=rev
Log:
Set Attribute::NoImplicitFloat appropriately.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.h?rev=72960&r1=72959&r2=72960&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.h Fri Jun  5 16:57:59 2009
@@ -3892,9 +3892,11 @@
     if (TARGET_3DNOW_A) F.AddFeature("3dnowa");               \
   }
 
-#define LLVM_SET_MACHINE_OPTIONS(argvec)                      \
+#define LLVM_SET_IMPLICIT_FLOAT(flag_no_implicit_float)       \
   if (!TARGET_80387)                                          \
-    argvec.push_back("-no-implicit-float")
+    flag_no_implicit_float = 1;                               \
+  else                                                        \
+    flag_no_implicit_float = 0;                               
     
 /* LLVM ABI definition macros. */
 

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=72960&r1=72959&r2=72960&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Fri Jun  5 16:57:59 2009
@@ -81,6 +81,9 @@
 // Non-zero if red-zone is disabled.
 static int flag_disable_red_zone = 0;
 
+// Non-zero if implicit floating point instructions are disabled.
+static int flag_no_implicit_float = 0;
+
 // Global state for the LLVM backend.
 Module *TheModule = 0;
 DebugInfo *TheDebugInfo = 0;
@@ -339,6 +342,9 @@
 #ifdef LLVM_SET_MACHINE_OPTIONS
   LLVM_SET_MACHINE_OPTIONS(Args);
 #endif
+#ifdef LLVM_SET_IMPLICIT_FLOAT
+  LLVM_SET_IMPLICIT_FLOAT(flag_no_implicit_float)
+#endif
   
   if (time_report)
     Args.push_back("--time-passes");
@@ -461,8 +467,12 @@
   ExceptionHandling = flag_exceptions;
   for (Module::iterator I = TheModule->begin(), E = TheModule->end();
        I != E; ++I)
-    if (!I->isDeclaration() && flag_disable_red_zone)
-      I->addFnAttr(Attribute::NoRedZone);
+    if (!I->isDeclaration()) {
+      if (flag_disable_red_zone)
+        I->addFnAttr(Attribute::NoRedZone);
+      if (flag_no_implicit_float)
+        I->addFnAttr(Attribute::NoImplicitFloat);
+    }
 }
 
 void llvm_lang_dependent_init(const char *Name) {





More information about the llvm-commits mailing list