On 10/01/2013 01:55 AM, Wei Mi wrote:
Probably the best place to add a code for this is in
lra-constraints.c::simplify_operand_subreg by permitting subreg reload
for paradoxical subregs whose hard regs are not fully in allocno class
of the inner pseudo.
It needs a good testing (i'd check
You removed conditition with LRA_SUBREG for non-paradoxical subreg
generated for matched operands. I think that is important condition and
the comment says why. There are some 32-bit insns constraints requiring
different modes (int and fp ones) for matching operands in FP regs. The
Please check whether it is ok. Boostrap and regression ok. I am also
verifying its performance effect on google applications (But most of
them are 64 bits, so I cannot verify its performance effect on 32 bits
apps).
Have verified It has no performance impact on google applications.
Thanks,
Probably the best place to add a code for this is in
lra-constraints.c::simplify_operand_subreg by permitting subreg reload
for paradoxical subregs whose hard regs are not fully in allocno class
of the inner pseudo.
It needs a good testing (i'd check that the generated code is not
changed
On 09/24/2013 07:57 PM, Wei Mi wrote:
Hi,
This patch is to address the problem described here:
http://gcc.gnu.org/ml/gcc/2013-09/msg00187.html
The patch changes ALLOCNO_MODE of a pseudo reg to be outermode if the
pseudo reg is used in a paradoxical subreg, so IRA will not mistakenly
assign
performance. For example, we have code
... (reg:DI) ...
...
... (subreg:TI (reg:DI))
...
...(reg:DI)
We need two hard regs only for the second place by transforming
p = (reg:DI)
...(subreg:TI p)
With this patch we requires two hard regs for the all live range of the
original pseudo
On 09/25/2013 12:42 PM, Wei Mi wrote:
performance. For example, we have code
... (reg:DI) ...
...
... (subreg:TI (reg:DI))
...
...(reg:DI)
We need two hard regs only for the second place by transforming
p = (reg:DI)
...(subreg:TI p)
With this patch we requires two hard regs for the
To define for what occurrence of the pseudo we should do the
transformation, we need to create allocnos and calculate reg classes to
know what paradoxical subreg needs more hard regs (the transformations
can not be done for all paradoxical subregs as my experience shows many
RTL changes
On 09/25/2013 02:00 PM, Wei Mi wrote:
To define for what occurrence of the pseudo we should do the
transformation, we need to create allocnos and calculate reg classes to
know what paradoxical subreg needs more hard regs (the transformations
can not be done for all paradoxical subregs as my
Hi,
This patch is to address the problem described here:
http://gcc.gnu.org/ml/gcc/2013-09/msg00187.html
The patch changes ALLOCNO_MODE of a pseudo reg to be outermode if the
pseudo reg is used in a paradoxical subreg, so IRA will not mistakenly
assign an operand with a bigger mode to a smaller
10 matches
Mail list logo