[llvm-dev] Open Projects - Code Generator Improvements #2

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 21 13:40:12 PST 2016


We do have an existing stack coloring pass which runs on allocas. My 
understanding is that it's not very effective and relies on the 
existence of lifetime markers (i.e. it doesn't actually do any liveness 
analysis).

I know that Keno Fischer has spent some time looking at the existing 
pass.  I believe he was chasing down a mis-compile, but he's probably 
the most recent person to look at it.

See: lib/CodeGen/StackColoring.cpp

A very useful first step would be to consider merging StackColoring.cpp 
and StackSlotColoring.cpp.

Philip

On 01/18/2016 06:37 AM, Rafael EspĂ­ndola via llvm-dev wrote:
> On 17 January 2016 at 18:32, Thiago Martins via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Hello,
>>
>> I am a student at UFMG, Brazil, and I'm currently choosing my final
>> undergraduate project.
>>
>> I will be working under Professor Fernando Pereira (on cc), and we were
>> thinking about tackling Code Generator Improvement number 2 (at
>> http://llvm.org/OpenProjects.html).
>>
> For reference, that is
>
> ------------------------------------------------------------------
> Implement 'stack slot coloring' to allocate two frame indexes to the
> same stack offset if their live ranges don't overlap. This can reuse a
> bunch of analysis machinery from LiveIntervals. Making the stack
> smaller is good for cache use and very important on targets where
> loads have limited displacement like ppc, thumb, mips, sparc, etc.
> This should be done as a pass before prolog epilog insertion. This is
> now done for register allocator temporaries, but not for allocas.
> -----------------------------------------------------------------
>
> I think Hal Finkel has done some work on it.
>
> Cheers,
> Rafael
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list