[llvm-commits] [llvm-gcc-4.2] r61644 - in /llvm-gcc-4.2/trunk/gcc: c-parser.c cp/parser.c

Bill Wendling isanbard at gmail.com
Sun Jan 4 14:53:24 PST 2009


Author: void
Date: Sun Jan  4 16:53:24 2009
New Revision: 61644

URL: http://llvm.org/viewvc/llvm-project?rev=61644&view=rev
Log:
This block_holder structure should be marked as READONLY so that LLVM will make
it a constant. This is correct because once this data structure is created and
assigned, it's no longer modified. This allows LLVM to inline "blocks" calls
from function pointers in that data structure.

Modified:
    llvm-gcc-4.2/trunk/gcc/c-parser.c
    llvm-gcc-4.2/trunk/gcc/cp/parser.c

Modified: llvm-gcc-4.2/trunk/gcc/c-parser.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-parser.c?rev=61644&r1=61643&r2=61644&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-parser.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-parser.c Sun Jan  4 16:53:24 2009
@@ -9841,8 +9841,12 @@
     TREE_STATIC (block_holder_tmp_decl) = 1;
     finish_decl (block_holder_tmp_decl, constructor, NULL_TREE);
   }
-  /* LLVM LOCAL radar 5865221 */
+  /* LLVM LOCAL begin radar 5865221 */
+#ifdef ENABLE_LLVM
   TREE_CONSTANT (block_holder_tmp_decl) = 1;
+  TREE_READONLY (block_holder_tmp_decl) = 1;
+#endif
+  /* LLVM LOCAL end radar 5865221 */
   return block_holder_tmp_decl;
 }
 /* APPLE LOCAL end radar 5847213 - radar 6329245 */

Modified: llvm-gcc-4.2/trunk/gcc/cp/parser.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/parser.c?rev=61644&r1=61643&r2=61644&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/parser.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/parser.c Sun Jan  4 16:53:24 2009
@@ -21037,8 +21037,12 @@
     TREE_PUBLIC (block_holder_tmp_decl) = 0;
     TREE_STATIC (block_holder_tmp_decl) = 1;
   }
-  /* LLVM LOCAL radar 5865221 */
+  /* LLVM LOCAL begin radar 5865221 */
+#ifdef ENABLE_LLVM
   TREE_CONSTANT (block_holder_tmp_decl) = 1;
+  TREE_READONLY (block_holder_tmp_decl) = 1;
+#endif
+  /* LLVM LOCAL end radar 5865221 */
   cp_finish_decl (block_holder_tmp_decl, constructor, 0, 0, LOOKUP_ONLYCONVERTING);
   return block_holder_tmp_decl;
 }





More information about the llvm-commits mailing list