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.