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

             Bug #: 53422
           Summary: reduce the size of CODE_LABEL rtl
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: d...@ics.uci.edu


Created attachment 27447
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27447
reorder CODE_LABEL fields to reduce size

CODE_LABEL has one field that is only used by the "sh" backend.
It's kind of rude of a backend to pollute the cache and memory in all
compilations.

If the order of CODE_LABEL fields is changed so that the "sh" specific entry to
be last, then it's easy to define CODE_LABEL conditionally so that it does not
use that last entry on the rest of the machines.

One field is only used by jump.c, if that's moved to a local data structure in
jump.c, then more savings are possible, but that's much more complicated.

BARRIER also has some unused fields that just pollute the cache.

This simple patch is at least 5 years old, last updated a couple of years ago,
attaching it here in hope that someone can pick it up and do whatever is needed
to check it in.


ChangeLog

    * rtl.def (CODE_LABEL): Reorder fields so that the sh specific entry is
    last.
    (BARRIER): Remove padding.

    * rtl.h (CODE_LABEL_NUMBER, LABEL_NAME, LABEL_NUSES, LABEL_REFS):
    * gengtype.c (adjust_field_rtx_def): Adjust for new CODE_LABEL field
    order.

Reply via email to