[LLVMdev] Evaluating the register allocators

Andrew Trick atrick at apple.com
Mon Mar 10 10:37:24 PDT 2014


On Mar 9, 2014, at 2:15 PM, Najem Eldeen Abu Rmaileh <ermeleh at hotmail.com> wrote:

> Hello,
> 
> I'm trying to evaluate the different register allocation algorithms on LLVM using the same level of optimizations. Using version 3.3 the current register allocators available to use are "basic, fast, greedy and pbqp". However, I'm facing the following issues:
> 
> 1) I can't run basic and PBQP allocators using the command line flags of the dragonegg (-fplugin-arg-dragonegg-llvm-option="-regalloc:basic"). I get this error message "for the -regalloc option: Cannot find option named 'pbqp'!" or basic. Note that I didn't get this error when I used the LLC tool.
> 
> 2) I can't run the fast register allocator while using the "O1/O2/O3" optimizations flags. Is there any purpose behind disabling this pass while the optimizations are enabled?

Regalloc is a pipeline of passes that need to cooperate. If you want to run all the usual llc optimizations with fast regalloc you probably need “-O2 -optimize-regalloc=false”

-Andy



More information about the llvm-dev mailing list