On Thu, 2020-06-25 at 15:46 -0400, Alan Lehotsky wrote:
> I’m working on a GCC 8.3 port to a load/store architecture with a 32-bit 
> data-path between registers and memory;  
> 
> looking at the gcc.dg/loop-9.c test, I fail to pass because I have split the 
> move of a double constant to memory into multiple moves (4 in fact, because I 
> only have a 16-bit immediate mode.)
> 
> The (define_insn_and_split “movdf” …) is conditioned on “reload_completed”.
> 
> Is there some other trick I need get the constant hoisted.  I have already 
> set the rtx cost of the CONST_DOUBLE ridiculously high (like 10 insns)
Hi Alan, it's been a long time...

We'd probably need to set the RTL.  A variety of things can get in the way of
LICM.  For example, I'd expect subregs to be problematical because they can look
like RMW operations.

jeff

Reply via email to