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

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 21 13:47:38 PST 2016


----- Original Message -----
> From: "Philip Reames via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Rafael EspĂ­ndola" <rafael.espindola at gmail.com>, "Thiago Martins" <thiagomartinsbh at gmail.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "Fernando Magno Quintao Pereira" <fernando at dcc.ufmg.br>
> Sent: Thursday, January 21, 2016 3:40:12 PM
> Subject: Re: [llvm-dev] Open Projects - Code Generator Improvements #2
> 
> 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.

I agree.

 -Hal

P.S. I've not really done much work on this, except that I'm responsible for the bug fix that allows this to work along with a backend use of alias analysis (one of those fixes that makes one cringe).

> 
> 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
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory


More information about the llvm-dev mailing list