[LLVMdev] Heads up: Local register allocator going away

Kalle.Raiskila at nokia.com Kalle.Raiskila at nokia.com
Tue Jun 8 01:24:16 PDT 2010


On Fri, 2010-06-04 at 20:05 +0200, Jakob Stoklund Olesen wrote:

> You should fix SPUTargetLowering::LowerCall to make sure there is an unbroken chain of flag ties between CopyFromReg and BRASL. At least ARM, MBlaze, and Blackfin are doing this, if you need example code.
> 

Thanks for the tip. This got fixed in 105601.

And with that, half of the problematic tests appearing with
--regalloc=fast flag started working. Unfortunately the second half
started to miscompile :(

Also, I now see some rather unoptimal code, e.g:
	...
	brasl	$lr, extFunc
	lr	$3, $3
	lr	$3, $3
	...
('lr rt, ra' moves ra->rt). I guess the miscompilations are due to the
same problem as this sort of stuff gets generated. I'm looking into it,
but do you have any more of those useful tips? ;) The code I used is the
same test case as earlier in this chain. Compiled with:
   llc --march=cellspu --regalloc=fast test.ll -o -

thanks,
kalle









More information about the llvm-dev mailing list