--- Comment #5 from rguenth at gcc dot gnu dot org 2010-01-01 18:43 ---
It's a false positive, the difference is
--- t2.gkd 2010-01-01 19:05:33.0 +0100
+++ t2.gk.gkd 2010-01-01 19:05:33.0 +0100
@@ -45,22 +45,22 @@
])# {*movdi_xor_rex64} (expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))
(insn:TI# 0 0 t2.ii:793 (set (mem/s/c:DI (plus:DI (reg/f:DI 7 sp)
-(const_int 64 [0x40])) [5 ISRA.15+0 S8 A128])
+(const_int 64 [0x40])) [5 ISRA.16+0 S8 A128])
(reg:DI 2 cx [orig:62 D.._M_t._M_impl._M_header ] [62]))#
{*movdi_1
_rex64} (nil))
and similar others. Thus we create a temporary variable name which
includes a UID which comes from gimplify.c:create_tmp_var_name.
The extra temporary comes from extra early SRA we do when building
with -g:
-! Disqualifying iter - No scalar replacements to be created.
-Marking D.3480 offset: 0, size: 8: to be replaced.
+Candidate (3488): D.3488
+Marking D.3477 offset: 0, size: 8: to be replaced.
-Access trees for D.3480 (UID: 3480):
-access { base = (3480)'D.3480', offset = 0, size = 8, expr = D.3480._M_node,
ty
pe = bool, grp_write = 1, grp_read = 1, grp_hint = 0, grp_covered = 1,
grp_unsca
larizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_differ
ent_types = 1, grp_to_be_replaced = 1, grp_maybe_modified = 0,
grp_not_necessari
lly_dereferenced = 0
+Access trees for D.3477 (UID: 3477):
+access { base = (3477)'D.3477', offset = 0, size = 8, expr = D.3477._M_node,
ty
pe = bool, grp_write = 1, grp_read = 1, grp_hint = 0, grp_covered = 1,
grp_unsca
larizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_differ
ent_types = 0, grp_to_be_replaced = 1, grp_maybe_modified = 0,
grp_not_necessari
lly_dereferenced = 0
+
+Marking iter offset: 0, size: 8: to be replaced.
+
+Access trees for iter (UID: 3262):
+access { base = (3262)'iter', offset = 0, size = 8, expr = iter._M_node, type
=
bool, grp_write = 1, grp_read = 1, grp_hint = 0, grp_covered = 1,
grp_unscalari
zable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_different_
types = 0, grp_to_be_replaced = 1, grp_maybe_modified = 0,
grp_not_necessarilly_
dereferenced = 0
I am testing a patch. But in reality it will paper over a problem in SRA
that causes code-generation differences dependent on oder of analyzing
accesses.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
CC||jamborm at gcc dot gnu dot
||org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42455