This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/44891] non-trivial conversion ICE from early SRA



------- Comment #6 from rguenth at gcc dot gnu dot org  2010-07-09 21:00 -------
Hm, somehow we loose the float typed access:

<L8>:
  MEM[(struct SpecificAttrs *)&D.1966].mType = 0;
  t_6 = MEM[(const struct SpecificAttrs *)&D.1966].mType;
  t.0_7 = (int) t_6;
  switch (t.0_7) <default: <L1>, case 1: <L3>>

<L3>:
  D.2156_8 = MEM[(const int &)&D.1966];
  D.2158_9(D)->dummy_ = D.2156_8;
  D.2155_10 = MEM[(const float &)&D.1966];
  MEM[(struct BarAttrs *)__v_2(D)].dummy_ = D.2155_10;

but the access tree just has

Access trees for D.1966 (UID: 1966):
access { base = (1966)'D.1966', offset = 0, size = 32, expr = MEM[(const int
&)&D.1966], type = const int, grp_write = 0, total_scalarization = 0, grp_read
= 1, grp_hint = 1, grp_assignment_read = 1,grp_covered = 0,
grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_to_be_replaced = 0, grp_maybe_modified = 0,
grp_not_necessarilly_dereferenced = 0
access { base = (1966)'D.1966', offset = 32, size = 32, expr = MEM[(struct
SpecificAttrs *)&D.1966].mType, type = Type, grp_write = 1, total_scalarization
= 0, grp_read = 1, grp_hint = 0, grp_assignment_read = 1,grp_covered = 1,
grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_partial_lhs = 0,
grp_to_be_replaced = 1, grp_maybe_modified = 0,
grp_not_necessarilly_dereferenced = 0

Hm.  Martin, maybe you are faster spotting the problem - the code is quite
convoluted.


-- 


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]