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: [avr-libc-dev] Fwd: Testresults for [PATCH]: Rewrite AVR backend's rtx_costs (take 3)


Hi,

You will find enclosed the renewed version of my december suggestions 
concerning improved handling of int constants and mixed QI/HI/SI mode
expressions. 

In the december version there had been quite a number of bugs. Namely, I have 
had some trouble to make shure that reload still succeeds always also for 
sign/zero-extended expressions. I think that it now works.

I have run the test suite against present head 4.0.0. using simulavr for the 
atmega128. I have observed that this patch removes the following bugs:

>Tests that now work, but didn't before:
>
>gcc.dg/c99-intconst-1.c (test for excess errors)
>
>New tests that PASS:
>
>gcc.c-torture/execute/arith-rand.c execution,  -O0 
>gcc.c-torture/execute/arith-rand.c execution,  -O1 
>gcc.c-torture/execute/arith-rand.c execution,  -O2 
>gcc.c-torture/execute/arith-rand.c execution,  -O3 -g 

I know that the method I have used is rather ugly since it is completely
in line with the present structure of the avr back-end in that it does not
split any instruction pattern before generation of the assembler output.
As I told you, I am presently studying how to best implement the splitting.

I fear however, that it might take some time before a back-end version with
splitting generates better code than the present state.
Since I consider my patch to be an improvement for mixed SI/HI/QI mode 
expressions both for excecution time and run-time in comparison to the present
state, it might serve as a temporary bug-fix and as workaround for the wasted
registers when mixing modes until the problem is solved by removing it's true 
origin.

Yours,

Björn

Attachment: patch.gz
Description: GNU Zip compressed data


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