Basically, we have

before PRE:
<bb 3>:
  # c_92 = PHI <c_88(19), c_6(23)>;
<L1>:;
  #   VUSE <SMT.18086_30>;
  D.571515_36 = fieldEngineBase_5->stride_m;
  D.571516_37 = m_104 * D.571515_36;
  D.571517_38 = c_92 + D.571516_37;
  #   VUSE <SMT.18086_30>;
  D.571521_46 = fieldEngineBase_5->data_m.blockControllerPtr_m.ptr_m;
  #   VUSE <SMT.18091_148>;
  D.571523_49 = D.571521_46->pBegin_m;   
  #   VUSE <SMT.18086_30>;
  D.571527_54 = fieldEngineBase_5->data_m.offset_m;

after PRE:
NOTE: no flow-sensitive alias info for pretmp.18109_51 in pretmp.18111_48 =
pretmp.18109_51->pBegin_m; 
<bb 23>:
<L48>:;
  #   VUSE <SMT.18086_30>;
  pretmp.18106_60 = fieldEngineBase_5->stride_m;
  pretmp.18108_52 = pretmp.18106_60 * m_104;
  #   VUSE <SMT.18086_30>;
  pretmp.18109_51 = fieldEngineBase_5->data_m.blockControllerPtr_m.ptr_m;
  pretmp.18111_48 = pretmp.18109_51->pBegin_m;
  #   VUSE <SMT.18086_30>;
  pretmp.18113_35 = fieldEngineBase_5->data_m.offset_m;

note the missing   #   VUSE <SMT.18091_148>;  on the dereference of
pretmp.18109_51.  verify_ssa only detects this later after loopinit
which adds back the VUSE, but with a bare unrenamed SMT.18091.

Oh, this may be the n-th dup of the same problem - just I didn't see PRE
mentioned sofar.  And no, I don't have a (small) testcase yet - this
is in compiling tramp3d-v5 with custom patches.


-- 
           Summary: PRE looses SMT alias info
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org


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

Reply via email to