[LLVMdev] Pseudo load and store instructions for AArch64

Sergey Dmitrouk sdmitrouk at accesssoftek.com
Wed Aug 27 02:53:36 PDT 2014


Saleem,

> we generate a bundle (similar to the VLIW concept)

Is it possible to specify that a bundle uses a couple of registers
internally?  Which are not input, not output registers, but are rather
temporaries.  If the answer is no, then it won't work anyway.

> Although, that approach could work, it feels like updating the
> LoadStoreOptimizer to deal with the particular case may be a cleaner
> approach.

Thanks!  I didn't notice that load/store optimizer is executed *after*
machine instructions scheduler, which should allow to move some of
instructions.

Regards,
Sergey

On Tue, Aug 26, 2014 at 07:29:32PM -0700, Saleem Abdulrasool wrote:
>    On Fri, Aug 22, 2014 at 6:01 AM, Renato Golin <renato.golin at linaro.org>
>    wrote:
> 
>      On 22 August 2014 13:44, Sergey Dmitrouk <sdmitrouk at accesssoftek.com>
>      wrote:
>      > This is the only way I found to stop Machine Instruction Scheduler
>      from
>      > reordering load and store instructions.
> 
>      I see. Saleem (cc'd) worked on a similar thing for ARM's movh/movt for
>      Windows, which also didn't like the reordering. Maybe he can help you.
> 
>    Sorry, Ive been a bit busy at work :-(.
>    For Windows on ARM, the movw/movt relocations need to be contiguous. A In
>    order to accommodate that, we generate a bundle (similar to the VLIW
>    concept) to treat the pair as a single scheduling entity.
>    Although, that approach could work, it feels like updating the
>    LoadStoreOptimizer to deal with the particular case may be a cleaner
>    approach.
>    A 
> 
>      cheers,
>      --renato
> 
>    --
>    Saleem Abdulrasool
>    compnerd (at) compnerd (dot) org



More information about the llvm-dev mailing list