freenode/#clasp - IRC Chatlog
Search
6:41:01
beach
I am not sure y'all have looked in the logs, but karlosz and myself adapted the published algorithm for sparse conditional constant propagation from SSA to SFA. In the process, the algorithm was simplified, and of course, we avoid the problems with SSA.
6:41:50
beach
Furthermore, we noticed a property of SFA namely that UD chains and DU chains are trivial. So in case we see algorithms that need such chains, we could consider converting to SFA first.
6:42:53
drmeister
beach: I was reading it today on my phone - it sounds exciting. What does it mean?
6:43:36
beach
Which part? The algorithm does constant propagation, and also eliminates branches where the test turns out to be constant at compile time.
6:45:02
beach
So instead of v <- phi(v1, v2, ... vn) we have n incoming arcs with an instruction in the middle doing v <- v1, v <- v2, ... v <- vn.
6:45:42
drmeister
Ok - here's a weird question - if I want to translate SFA into SSA do I use assignments or PHI nodes?
6:46:46
beach
So, again, we have discovered an algorithm that does not need the fact that SSA is S.S.A.
6:47:18
drmeister
Yes - I'm thinking about how it will impact Clasp - or how Clasp will use it to generate code for LLVM.
6:49:11
drmeister
I'd rather use more Cleavir and follow it all the way down to when it can generate native code but that will take a while
6:50:34
beach
I think the goal is to propose a complete set of optimization techniques, and that the client implementation can build a compiler according to its needs.