2005-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Sep 2005 07:53:11 +0000 (07:53 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Sep 2005 07:53:11 +0000 (07:53 +0000)
* tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
base register if possible.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104446 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-address.c

index 802e7a6..6a32805 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
+       base register if possible.
+
 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR tree-optimization/18463
index 416904b..9dbc399 100644 (file)
@@ -525,10 +525,18 @@ create_mem_ref (block_stmt_iterator *bsi, tree type,
     
       /* Add the symbol to base, eventually forcing it to register.  */
       if (parts.base)
-       parts.base = force_gimple_operand_bsi (bsi,
-                                              build2 (PLUS_EXPR, addr_type,
-                                                      parts.base, tmp),
-                                              true, NULL_TREE);
+       {
+         if (parts.index)
+           parts.base = force_gimple_operand_bsi (bsi,
+                                                  build2 (PLUS_EXPR, addr_type,
+                                                          parts.base, tmp),
+                                                  true, NULL_TREE);
+         else
+           {
+             parts.index = parts.base;
+             parts.base = tmp;
+           }
+       }
       else
        parts.base = tmp;
       parts.symbol = NULL_TREE;