[LLVMdev] [RFC] LCSSA vs. SSAUpdater ... FIGHT!

Chris Lattner clattner at apple.com
Fri Feb 7 11:29:53 PST 2014


On Feb 1, 2014, at 4:33 AM, Chandler Carruth <chandlerc at gmail.com> wrote:

> So, there are two primary ideas behind SSA form management in the loop optimizers of LLVM:
> 
> - Require LCSSA form input, leverage its (very powerful) guarantees to simplify maintaining SSA form, and also maintain LCSSA form.
> 
> - Don't bother with LCSSA form input, assume the worst, and use powerful incremental SSA formation utilities built on SSAUpdater to form SSA on demand when needed.
> 
> (Note, there are plenty of places where SSAUpdater makes sense, so this isn't really about doing away with it at all.)

It’s worth noting that LCSSA predates SSAUpdater.  If I went back in time and knew what I knew now, I wouldn’t have gone with LCSSA.

My gripes are three fold: 1) SSAUpdater can handle anything that LCSSA simplifies, 2) that LCSSA is annoying to keep up to date, 3) LCSSA burns compile time optimistically rewriting loop values, which are then later collapsed away even if nothing cares about those values.

My personal preference would be to get rid of LCSSA completely, but I don’t know how to stage that.

-Chris





More information about the llvm-dev mailing list