[llvm-dev] [llvm dev] do we have allocator hook to use maximum different registers?
Adam Husar via llvm-dev
llvm-dev at lists.llvm.org
Mon May 16 02:56:03 PDT 2016
we approach this issue by using pre-RA scheduling and it works fine,
although for very large basic blocks, the effect is not so good, because it leads to more spilling
comparted to the case when a pre-RA schedule is not used.
I also remember that there is some interface for schedulers
to do the register renaming, but as far as I know, we haven't used it yet.
On Tue, 10 May 2016 22:41:01 +0200, Quentin Colombet via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Hi Konstantin,
>> On May 10, 2016, at 1:29 PM, Konstantin Vladimirov via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>> Default register allocator tries to reuse the same registers over and
>> over again even if register file have a plenty of registers to use.
>> This creates parasite false dependencies and makes scheduling less
>> How to instruct allocator (may be override some virtual function in
>> mine backend?) that it is profitable to use maximum number of
>> available registers with minimal dependencies?
> That is not possible and in the current scheme that would be hard to add. Indeed, the greedy reg alloc assigns live-ranges in an order based on some priority cost model. Thus, we do not know how close, in the scheduling order, two live-ranges are when we assign them in a row.
>> In GCC this option is
>> known as -frename-registers.
>> With best regards, Konstantin
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
Compiler Group Leader
T +420 541 141 443
More information about the llvm-dev