http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41159

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #19 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-20 
10:58:47 UTC ---
Mine.  The issue is that we are on a PROMOTE_MODE target and with !optimize
expand SSA names to stack slots:

  var = SSA_NAME_VAR (partition_to_var (SA.map, dest));
  src_mode = TYPE_MODE (TREE_TYPE (src));
  dest_mode = promote_decl_mode (var, &unsignedp);
  gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var)));
  gcc_assert (dest_mode == GET_MODE (SA.partition_to_pseudo[dest]));

(gdb) call debug_tree (var)
 <var_decl 0x7ffff5a2b320 i
    type <integer_type 0x7ffff5a2e5e8 int public SI
...
(gdb) p SA.partition_to_pseudo[dest]
$2 = (rtx) 0x7ffff5ad4c78
(gdb) call debug_rtx ($2)
(mem/c/i:SI (plus:DI (reg/f:DI 65 virtual-stack-vars)
        (const_int 4 [0x4])) [0 i+0 S4 A32])
(gdb) p dest_mode
$1 = DImode

but we cannot deal with stack temporaries.  I have a patch.

Reply via email to