[llvm-commits] [llvm-gcc-4.2] r72895 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h llvm-backend.cpp
Devang Patel
dpatel at apple.com
Thu Jun 4 15:07:30 PDT 2009
Author: dpatel
Date: Thu Jun 4 17:07:30 2009
New Revision: 72895
URL: http://llvm.org/viewvc/llvm-project?rev=72895&view=rev
Log:
Set Attribute::NoRedZone attribute properly.
Modified:
llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=72895&r1=72894&r2=72895&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Thu Jun 4 17:07:30 2009
@@ -89,9 +89,9 @@
} \
}
-#define LLVM_SET_ARCH_OPTIONS(argvec) \
+#define LLVM_SET_RED_ZONE_FLAG(disable_red_zone) \
if (TARGET_NO_RED_ZONE) \
- argvec.push_back("--disable-red-zone");
+ disable_red_zone = 1;
#ifdef LLVM_ABI_H
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=72895&r1=72894&r2=72895&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Thu Jun 4 17:07:30 2009
@@ -78,6 +78,9 @@
// Non-zero if libcalls should not be simplified.
int flag_no_simplify_libcalls;
+// Non-zer if red-zone is disabled.
+static int flag_disable_red_zone = 0;
+
// Global state for the LLVM backend.
Module *TheModule = 0;
DebugInfo *TheDebugInfo = 0;
@@ -327,8 +330,8 @@
// Allow targets to specify PIC options and other stuff to the corresponding
// LLVM backends.
-#ifdef LLVM_SET_ARCH_OPTIONS
- LLVM_SET_ARCH_OPTIONS(Args);
+#ifdef LLVM_SET_RED_ZONE_FLAG
+ LLVM_SET_RED_ZONE_FLAG(flag_disable_red_zone)
#endif
#ifdef LLVM_SET_TARGET_OPTIONS
LLVM_SET_TARGET_OPTIONS(Args);
@@ -456,6 +459,10 @@
void performLateBackendInitialization(void) {
// The Ada front-end sets flag_exceptions only after processing the file.
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);
}
void llvm_lang_dependent_init(const char *Name) {
More information about the llvm-commits
mailing list