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.