[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