Hi,
On Thu, 17 Apr 2014, Richard Sandiford wrote:
> > "The constraints on a ‘movm’ must permit moving any hard register to
> > any other hard register provided..."
> >
> > by providing a define_expand that assigns from a general_operand to a
> > nonimmediate_operand and ...
> >
> > *ldsi instru
pshor...@dataworx.com.au writes:
> On 17.04.2014 13:00, Jeff Law wrote:
>> On 04/16/14 16:19, Richard Henderson wrote:
>>>
>>> The register allocators only select an alternative for a move. They
>>> do not
>>> choose between N different patterns, separately describing loads,
>>> stores, and
>>>
On 17.04.2014 13:00, Jeff Law wrote:
On 04/16/14 16:19, Richard Henderson wrote:
The register allocators only select an alternative for a move. They
do not
choose between N different patterns, separately describing loads,
stores, and
register-to-register movement.
I'm fairly sure the docum
On 04/16/14 16:19, Richard Henderson wrote:
The register allocators only select an alternative for a move. They do not
choose between N different patterns, separately describing loads, stores, and
register-to-register movement.
I'm fairly sure the documentation is quite clear on this, and GCC
On 04/16/2014 03:05 PM, Paul Shortis wrote:
> Solved... kind of.
>
> *ldsi is one of the patterns movsi is expanded to and as the name suggests it
> only handles register loads. I know that at some stages memory references will
> pass the register_operand predicate so I changed the predicate for o
Solved... kind of.
*ldsi is one of the patterns movsi is expanded to and as the name
suggests it only handles register loads. I know that at some
stages memory references will pass the register_operand predicate
so I changed the predicate for operand 0 and added an alternative
to *ldsi that c
I've got a small test case there the ira pass produces this ...
(insn 35 38 36 5 (set (reg/v:SI 29 [orig:17 _b ] [17])
(reg/v:SI 17 [ _b ])) 48 {*ldsi}
(expr_list:REG_DEAD (reg/v:SI 17 [ _b ])
(nil)))
and the LRA processes it as follows ...
Spilling non-eliminable h