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 rtl-optimization/20413] New: VOIDmode LABEL_REFs are generated


Various parts of the compiler generate LABEL_REFS with VOIDmode instead of Pmode.
This can cause some optimizations to be missed because two pieces of code
might be identical, except for the mode of their LABEL_REFS - then they still
compare as non-equal, e.g. for if-conversion or cross-jumping.

For targets that have varying Pmode settings and therefore use jump patterns
that don't specify the mode so that they can match e.g. either SImode of DImode,
the situation is more dire: when reload has to load the label into a register,
it needs the mode of the label_ref to determine the load of the reload.
VOIDmode in this place leads to an ICE, which is likely to prevent building
the gcc support libraries.

-- 
           Summary: VOIDmode LABEL_REFs are generated
           Product: gcc
           Version: 3.2
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, missed-optimization, build
          Severity: normal
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
OtherBugsDependingO 17652
             nThis:


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


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