[PATCH] D31583: StackColoring: smarter check for slot overlap
Ariel Ben-Yehuda via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 6 01:53:42 PDT 2017
arielb1 added inline comments.
================
Comment at: lib/CodeGen/StackColoring.cpp:1125
----------------
dberlin wrote:
> Or you could just augment the standard dataflow problem with more info?
> You also just kind of assert it doesn't give very good results, but it's pretty widely used with good results :)
>
What I said is that what the old code was doing - propagating the N `S active` facts across the CFG and that
saying that 2 nodes interfere if they are both potentially active at a point - is overconservative at merge points.
Merging this PR caused x16 stack usage reductions in real world Rust compiler stack usage.
My algorithm also propagates the N `S active` facts, but uses them along with `S active starts` non-propagated facts to compute `S active & T active` more precisely.
Liveness can make it smarter, but aliasing makes it annoying to compute (and if there are opaque function calls in the merge BB, impossible to compute).
https://reviews.llvm.org/D31583
More information about the llvm-commits
mailing list