This is the mail archive of the gcc-patches@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]

RE: [RFA/PATCH]: sh64: Unnecessary use of datalabel operator


> From: Joern Rennecke [mailto:amylaar@onetel.net.uk] 
> Sent: Thursday, August 08, 2002 3:19 PM

> While it makes sense to wrap CONST around an UNSPEC, it does not
> make sense to do so for SYMBOL_REF or LABEL_REF, and doing so
> means creating un-canonical rtl.
> So, instead of making the working code grok this uncanonical rtl,
> you should make sure that it is not generated in the first place.
> 
> Depending on how straightforward this check and/or fix is, and
> how confident you feel that it will stay fixed, you might want to
> put sanity checks into the print_operand* functions.

I made these changes and tested them before I read Alexandre's
email.  I appreciate that Alexandre is currently unhappy with
this patch, but I'd like to report on what I've done anyway, in
the hope that it's useful.

Attached is an updated version of the patch incorporating
the changes Jörn wanted.

I've removed the matching of CONST-wrapped LABEL_REF and SYMBOL_REF.
In a scan through the source I couldn't find any places
that would generate them.

I've added checks to print_operand_address and print_operand
that CONST-wrapped LABEL_REF/SYMBOL_REF don't occur.  During
testing these checks found nothing, so I'm not convinced they
need to be left in.  But I've left them in the patch so they
can be reviewed.

Regression tested on sh-elf/sh-hms-sim and sh64-elf/sh64-sim.
I also did a test run on sh64-elf/sh64-sim with 

set TORTURE_OPTIONS [list \
	     { -O0 -fPIC } \
	     { -O1 -fPIC } \
	     { -O3 -fomit-frame-pointer -fPIC } \
	     { -O0 -m5-compact } \
	     { -O1 -m5-compact } \
	     { -O3 -fomit-frame-pointer -m5-compact } ]

as I don't think these are much covered by the default options.

Steve.

Attachment: datalabel.patch
Description: datalabel.patch


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