[llvm-commits] [llvm-gcc-4.2] r93625 - in /llvm-gcc-4.2/trunk/gcc: config/arm/arm.c config/bfin/bfin.c config/i386/i386.c llvm-backend.cpp
Bill Wendling
isanbard at gmail.com
Fri Jan 15 18:10:13 PST 2010
Author: void
Date: Fri Jan 15 20:10:12 2010
New Revision: 93625
URL: http://llvm.org/viewvc/llvm-project?rev=93625&view=rev
Log:
Make the "-fno-schedule-insns" invoke the "--disable-scheduling" flag in
LLVM. The scheduler is turned off in GCC for many many things. Ignore it when it
turns these things off. We'll let LLVM determine what's the best strategy here.
Modified:
llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
llvm-gcc-4.2/trunk/gcc/config/bfin/bfin.c
llvm-gcc-4.2/trunk/gcc/config/i386/i386.c
llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=93625&r1=93624&r2=93625&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Fri Jan 15 20:10:12 2010
@@ -1716,11 +1716,15 @@
/* For arm2/3 there is no need to do any scheduling if there is only
a floating point emulator, or we are doing software floating-point. */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
if ((TARGET_SOFT_FLOAT
|| arm_fpu_tune == FPUTYPE_FPA_EMU2
|| arm_fpu_tune == FPUTYPE_FPA_EMU3)
&& (tune_flags & FL_MODE32) == 0)
flag_schedule_insns = flag_schedule_insns_after_reload = 0;
+#endif
+ /* LLVM LOCAL end */
if (target_thread_switch)
{
@@ -1783,11 +1787,15 @@
/* APPLE LOCAL v7 support. Merge from mainline */
/* ??? We might want scheduling for thumb2. */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
if (TARGET_THUMB && flag_schedule_insns)
{
/* Don't warn since it's on by default in -O2. */
flag_schedule_insns = 0;
}
+#endif
+ /* LLVM LOCAL end */
if (optimize_size)
{
@@ -23725,10 +23733,14 @@
/* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
make the problem with not enough registers even worse. */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
#ifdef INSN_SCHEDULING
if (level > 1)
flag_schedule_insns = 0;
#endif
+#endif
+ /* LLVM LOCAL end */
/* radar 4094534. */
/* The Darwin libraries never set errno, so we might as well
Modified: llvm-gcc-4.2/trunk/gcc/config/bfin/bfin.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/bfin/bfin.c?rev=93625&r1=93624&r2=93625&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/bfin/bfin.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/bfin/bfin.c Fri Jan 15 20:10:12 2010
@@ -2004,7 +2004,11 @@
if (flag_pic && !TARGET_FDPIC && !TARGET_ID_SHARED_LIBRARY)
flag_pic = 0;
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
flag_schedule_insns = 0;
+#endif
+ /* LLVM LOCAL end */
init_machine_status = bfin_init_machine_status;
}
Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.c?rev=93625&r1=93624&r2=93625&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.c Fri Jan 15 20:10:12 2010
@@ -2226,8 +2226,12 @@
/* When scheduling description is not available, disable scheduler pass
so it won't slow down the compilation and make x87 code slower. */
/* APPLE LOCAL 5591571 */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
if (1 || !TARGET_SCHEDULE)
flag_schedule_insns_after_reload = flag_schedule_insns = 0;
+#endif
+ /* LLVM LOCAL end */
/* APPLE LOCAL begin dynamic-no-pic */
#if TARGET_MACHO
@@ -2449,10 +2453,14 @@
/* APPLE LOCAL end disable strict aliasing; breaks too much existing code. */
/* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
make the problem with not enough registers even worse. */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
#ifdef INSN_SCHEDULING
if (level > 1)
flag_schedule_insns = 0;
#endif
+#endif
+ /* LLVM LOCAL end */
/* APPLE LOCAL begin pragma fenv */
/* Trapping math is not needed by many users, and is expensive.
@@ -2505,10 +2513,14 @@
{
/* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
make the problem with not enough registers even worse. */
+ /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
#ifdef INSN_SCHEDULING
if (level > 1)
flag_schedule_insns = 0;
#endif
+#endif
+ /* LLVM LOCAL end */
/* APPLE LOCAL begin pragma fenv */
/* Trapping math is not needed by many users, and is expensive.
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=93625&r1=93624&r2=93625&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Fri Jan 15 20:10:12 2010
@@ -406,6 +406,8 @@
Args.push_back("--debug-pass=Arguments");
if (flag_unwind_tables)
Args.push_back("--unwind-tables");
+ if (!flag_schedule_insns)
+ Args.push_back("--disable-scheduling");
// If there are options that should be passed through to the LLVM backend
// directly from the command line, do so now. This is mainly for debugging
More information about the llvm-commits
mailing list