[llvm-commits] [llvm-gcc-4.2] r103366 - in /llvm-gcc-4.2/trunk/gcc: config/darwin-c.c config/t-darwin testsuite/gcc.apple/opt-pragma-1.c testsuite/gcc.apple/opt-pragma-2.c testsuite/gcc.apple/opt-pragma-3.c testsuite/gcc.apple/opt-pragma-4.c testsuite/gcc.apple/opt-pragma-5.c testsuite/gcc.apple/opt-pragma-6.c testsuite/gcc.apple/opt-pragma-7.c

Eric Christopher echristo at apple.com
Sat May 8 16:43:21 PDT 2010


Author: echristo
Date: Sat May  8 18:43:20 2010
New Revision: 103366

URL: http://llvm.org/viewvc/llvm-project?rev=103366&view=rev
Log:
Disable optimization pragmas.

Fixes rdar://7820636

Modified:
    llvm-gcc-4.2/trunk/gcc/config/darwin-c.c
    llvm-gcc-4.2/trunk/gcc/config/t-darwin
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-1.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-2.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-3.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-4.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-5.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-6.c
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-7.c

Modified: llvm-gcc-4.2/trunk/gcc/config/darwin-c.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin-c.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin-c.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin-c.c Sat May  8 18:43:20 2010
@@ -412,135 +412,21 @@
 /* APPLE LOCAL end pragma reverse_bitfields */
 
 /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
-/* LLVM LOCAL put va_opt in GC memory 7210265 */
-static GTY(()) varray_type va_opt;
-
-static void
-push_opt_level (int level, int size)
-{
-  if (!va_opt)
-    VARRAY_INT_INIT (va_opt, 5, "va_opt");
-  VARRAY_PUSH_INT (va_opt, size << 16 | level);
-}
-
-static void
-pop_opt_level (void)
-{
-  int level;
-  if (!va_opt)
-    VARRAY_INT_INIT (va_opt, 5, "va_opt");
-  if (!VARRAY_ACTIVE_SIZE (va_opt))
-    BAD ("optimization pragma stack underflow");
-  level = VARRAY_TOP_INT (va_opt);
-  VARRAY_POP (va_opt);
-
-  optimize_size = level >> 16;
-  optimize = level & 0xffff;
-}
-
-/* APPLE LOCAL begin 4760857 optimization pragmas */
-/* Set the global flags as required by #pragma optimization_level or
-   #pragma optimize_size.  */
-
-static void darwin_set_flags_from_pragma (void)
-{
-  set_flags_from_O (false);
-
-  /* MERGE FIXME 5416402 flag_loop_optimize2 is gone now */
-#if 0
-  /* Enable new loop optimizer pass if any of its optimizations is called.  */
-  if (flag_move_loop_invariants
-      || flag_unswitch_loops
-      || flag_peel_loops
-      || flag_unroll_loops
-      || flag_branch_on_count_reg)
-    flag_loop_optimize2 = 1;
-#endif
-
-  /* This is expected to be defined in each target.   Should contain
-     any snippets from OPTIMIZATION_OPTIONS and OVERRIDE_OPTIONS that
-     set per-func flags on the basis of -O level. */
-  reset_optimization_options (optimize, optimize_size);
-
-  if (align_loops <= 0) align_loops = 1;
-  if (align_loops_max_skip > align_loops || !align_loops)
-    align_loops_max_skip = align_loops - 1;
-  if (align_jumps <= 0) align_jumps = 1;
-  if (align_jumps_max_skip > align_jumps || !align_jumps)
-    align_jumps_max_skip = align_jumps - 1;
-  if (align_labels <= 0) align_labels = 1;
-}
-/* APPLE LOCAL end 4760857 optimization pragmas */
-
+/* LLVM LOCAL begin disable optimization pragmas */
 void
 darwin_pragma_opt_level  (cpp_reader *pfile ATTRIBUTE_UNUSED)
 {
-  tree t;
-  enum cpp_ttype argtype = pragma_lex (&t);
-
-  if (argtype == CPP_NAME)
-    {
-      const char* arg = IDENTIFIER_POINTER (t);
-      if (strcmp (arg, "reset") != 0)
-	BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
-      pop_opt_level ();
-    }
-  else if (argtype == CPP_NUMBER)
-    {
-      if (TREE_CODE (t) != INTEGER_CST
-	  || INT_CST_LT (t, integer_zero_node)
-	  || TREE_INT_CST_HIGH (t) != 0)
-	BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
-
-      push_opt_level (optimize, optimize_size);
-      optimize = TREE_INT_CST_LOW (t);
-      if (optimize > 3)
-	optimize = 3;
-      optimize_size = 0;
-    }
-  else
-    BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
-
-  /* APPLE LOCAL begin 4760857 optimization pragmas */
-  darwin_set_flags_from_pragma ();
-  /* APPLE LOCAL end 4760857 optimization pragmas */
-
-  if (pragma_lex (&t) != CPP_EOF)
-    BAD ("junk at end of '#pragma optimization_level'");
+  warning (0, "ignoring '#pragma optimization_level'");  
+  return;
 }
 
 void
 darwin_pragma_opt_size  (cpp_reader *pfile ATTRIBUTE_UNUSED)
 {
-  const char* arg;
-  tree t;
-
-  if (pragma_lex (&t) != CPP_NAME)
-    BAD ("malformed '#pragma optimize_for_size { on | off | reset}', ignoring");
-  arg = IDENTIFIER_POINTER (t);
-
-  if (!strcmp (arg, "on"))
-    {
-      push_opt_level (optimize, optimize_size);
-      optimize_size = 1;
-      optimize = 2;
-    }
-  else if (!strcmp (arg, "off"))
-    /* Not clear what this should do exactly.  CW does not do a pop so
-       we don't either.  */
-    optimize_size = 0;
-  else if (!strcmp (arg, "reset"))
-    pop_opt_level ();
-  else
-    BAD ("malformed '#pragma optimize_for_size { on | off | reset }', ignoring");
-
-  /* APPLE LOCAL begin 4760857 optimization pragmas */
-  darwin_set_flags_from_pragma ();
-  /* APPLE LOCAL end 4760857 optimization pragmas */
-
-  if (pragma_lex (&t) != CPP_EOF)
-    BAD ("junk at end of '#pragma optimize_for_size'");
+  warning (0, "ignoring '#pragma optimize_for_size'");
+  return;
 }
+/* LLVM LOCAL end disable optimization pragmas */
 /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
 
 static struct {
@@ -1261,5 +1147,3 @@
   return decl;
 }
 /* APPLE LOCAL end radar 2996215 - 6068877 */
-/* LLVM LOCAL put va_opt in GC memory 7210265 */
-#include "gt-darwin-c.h"

Modified: llvm-gcc-4.2/trunk/gcc/config/t-darwin
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/t-darwin?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/t-darwin (original)
+++ llvm-gcc-4.2/trunk/gcc/config/t-darwin Sat May  8 18:43:20 2010
@@ -14,16 +14,12 @@
   config/darwin-sections.def
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin.c
 
-# LLVM LOCAL begin put va_opt in GC memory 7210265
 darwin-c.o: $(srcdir)/config/darwin-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
   $(TM_H) $(CPPLIB_H) $(TREE_H) c-pragma.h $(C_TREE_H) toplev.h $(TM_P_H) \
-  c-incpath.h flags.h $(C_COMMON_H) gt-darwin-c.h
+  c-incpath.h flags.h $(C_COMMON_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin-c.c $(PREPROCESSOR_DEFINES)
-# LLVM LOCAL end put va_opt in GC memory 7210265
 
 gt-darwin.h : s-gtype ; @true
-# LLVM LOCAL put va_opt in GC memory 7210265
-gt-darwin-c.h : s-gtype ; @true
 
 # APPLE LOCAL begin mainline 2007-06-14 5235474
 darwin-driver.o: $(srcdir)/config/darwin-driver.c \

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-1.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-1.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-1.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-1.c Sat May  8 18:43:20 2010
@@ -1,15 +1,5 @@
 /* Test error handling of optimization pragmas. */
 /* Radar 3124235 */
-/* { dg-do compile } */
-int outwit;  /* make the file non-empty */
-#pragma optimization_level -1 /* { dg-warning "malformed '#pragma optimization_level" } */
-#pragma optimization_level foo /* { dg-warning "malformed '#pragma optimization_level" } */
-#pragma optimization_level 3.0 /* { dg-warning "malformed '#pragma optimization_level" } */
-#pragma optimization_level 3 extra /* { dg-warning "junk at end of '#pragma optimization_level" } */
-#pragma optimization_level 0x4
-#pragma optimize_for_size on
-#pragma optimize_for_size foo  /* { dg-warning "malformed '#pragma optimize_for_size" } */
-#pragma optimization_level reset
-#pragma optimization_level reset
-#pragma optimization_level reset
-#pragma optimization_level reset /* { dg-warning "optimization pragma stack underflow" } */
+/* LLVM LOCAL disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
+#include <stdio.h>

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-2.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-2.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-2.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-2.c Sat May  8 18:43:20 2010
@@ -1,26 +1,4 @@
 #include <stdio.h>
 /* Radar 3124235 */
-/* { dg-do compile { target "powerpc*-*-darwin*" } } */
-/* { dg-options "-O3" } */
-void f4(int);
-#pragma optimization_level 0
-void f1(int x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimize_for_size on
-#pragma GCC optimization_level 0
-void f4(int  x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level 0
-void f5(int x) {
-#pragma GCC optimization_level 2
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level reset
-void f6(int x) {
-  printf("%d\n", x);
-}
-/* Make sure sibling call optimization is not applied. */
-/* { dg-final { scan-assembler-times "b L?_printf" 0 } } */
-/* { dg-final { scan-assembler-times "bl L?_printf" 4 } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-3.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-3.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-3.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-3.c Sat May  8 18:43:20 2010
@@ -1,26 +1,5 @@
 #include <stdio.h>
 /* Radar 3124235 */
-/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
 /* { dg-options "-O0" } */
-void f4(int);
-#pragma optimization_level 3
-void f1(int x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimize_for_size on
-#pragma GCC optimization_level 3
-void f4(int  x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level 3
-void f5(int x) {
-#pragma GCC optimization_level 0
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level reset
-void f6(int x) {
-  printf("%d\n", x);
-}
-/* Make sure sibling call optimization is applied. */
-/* { dg-final { scan-assembler-times "b L?_printf" 4 } } */
-/* { dg-final { scan-assembler-times "bl L?_printf" 0 } } */

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-4.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-4.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-4.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-4.c Sat May  8 18:43:20 2010
@@ -1,25 +1,5 @@
 #include <stdio.h>
 /* Radar 3124235 */
-/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
 /* { dg-options "-O0" } */
-void f4(int);
-#pragma optimization_level 3
-void f1(int x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimize_for_size on
-#pragma GCC optimization_level 3
-void f4(int  x) {
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level 0
-void f5(int x) {
-#pragma GCC optimization_level 2
-  printf("%d\n", x);
-}
-#pragma GCC optimization_level reset
-void f6(int x) {
-  printf("%d\n", x);
-}
-/* { dg-final { scan-assembler-times "b L?_printf" 2 } } */
-/* { dg-final { scan-assembler-times "bl L?_printf" 2 } } */

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-5.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-5.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-5.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-5.c Sat May  8 18:43:20 2010
@@ -1,25 +1,4 @@
 /* Radar 3124235 */
-/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
 /* { dg-options "-O3" } */
-#pragma optimization_level 0
-extern void f1a(int), f4a(int), f5a(int), f6a(int);
-void f4(int); void f6(int);
-void f1(int x) {
-  f1a(x);
-}
-#pragma GCC optimization_level 2
-void f5(int x) {
-  f5a(x);
-}
-#pragma GCC optimization_level 3
-void f6(int x) {
-  f6a(x);
-}
-#pragma GCC optimization_level 1
-void f4(int  x) {
-  f4a(x);
-}
-/* { dg-final { scan-assembler "bl L?_f1a" } } */
-/* { dg-final { scan-assembler "bl L?_f4a" } } */
-/* { dg-final { scan-assembler "b L?_f5a" } } */
-/* { dg-final { scan-assembler "b L?_f6a" } } */

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-6.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-6.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-6.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-6.c Sat May  8 18:43:20 2010
@@ -1,17 +1,6 @@
 /* APPLE LOCAL 4760857 */
 /* Check that loop optimizations are handled correctly by
    #pragma optimization_level.  */
-/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
 /* { dg-options "-Os" } */
-extern int a[];
-extern float b[];
-#pragma GCC optimization_level 2
-int foo ()
-{
-  int i;
-  for (i=0; i<100; i++)
-    a[i] = b[i];
-}
-#pragma GCC optimization_level reset
-/* { dg-final { scan-assembler "p2align" } } */
-/* { dg-final { scan-assembler "bdnz" } } */

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-7.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-7.c?rev=103366&r1=103365&r2=103366&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-7.c (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/opt-pragma-7.c Sat May  8 18:43:20 2010
@@ -1,16 +1,6 @@
 /* APPLE LOCAL 4760857 */
 /* Check that loop optimizations are handled correctly by
    #pragma optimization_level.  */
-/* { dg-do compile { target "i?86*-*-darwin*" } } */
+/* LLVM LOCAL - disable pragma opt -- whole file */
+/* { dg-do compile { xfail { *-*-* } } } */
 /* { dg-options "-Os" } */
-extern int a[];
-extern float b[];
-#pragma GCC optimization_level 2
-int foo ()
-{
-  int i;
-  for (i=0; i<100; i++)
-    a[i] = b[i];
-}
-#pragma GCC optimization_level reset
-/* { dg-final { scan-assembler "align" } } */





More information about the llvm-commits mailing list