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/19626] Aliasing says stores to local memory do alias


------- Additional Comments From rguenth at gcc dot gnu dot org  2005-02-10 13:18 -------
Actually, exchanging loc_test for

int loc_test(void)
{
	const Loc<2> k(0, 1);
	return k[0].first();
}

shows the same problem:

<bb 0>:
  D.2541 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
  #   k_160 = V_MAY_DEF <k_150>;
  *&(&D.2541->D.2101)->D.2064.domain_m = 0;
  #   k_63 = V_MAY_DEF <k_160>;
  *&(&(D.2541 + 4B)->D.2101)->D.2064.domain_m = 1;
  D.2628 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
  return (&D.2628->D.2101)->D.2064.domain_m;

One problem might be, that PRE does not recognize the redundant
(struct Loc<1>D.1872 *) &kD.1965.D.2190.D.2155.domain_mD.2002.bufferD.2015
in

<L0>:;
  currIndex_114 = 1;
  D.2554_122 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
  n.6_123 = 0; 
  D.2556_124 = 0;
  D.2557_125 = 0B;
  D.2548_126 = D.2554_122;
  this_130 = &D.2548_126->D.2101;
  dom_133 = &this_130->D.2064.domain_m;
  #   k_160 = V_MAY_DEF <k_150>;
  *dom_133 = 0;
  D.2540_141 = 1;
  
<L29>:;
  currIndex_79 = 2;
  n.6_88 = 1;
  D.2604_89 = 4;
  D.2605_90 = 4B;
  D.2596_91 = D.2554_122 + 4B;
  this_95 = &D.2596_91->D.2101;
  dom_98 = &this_95->D.2064.domain_m;
  #   k_63 = V_MAY_DEF <k_160>;
  *dom_98 = 1;
  D.2588_106 = 1;
  D.2641_47 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
  this_55 = &D.2641_47->D.2101;
  #   VUSE <TMT.12_38>;
  #   VUSE <k_63>;
  d_57 = this_55->D.2064.domain_m;
  return d_57;


-- 


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


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