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.
8:12:47
beach
But I think it is silly to call something an "alternative representation of SSA" when it does not have the S.S.A property.
10:27:31
heisig
beach, Bike: I finally found some free time to finish my load time value hoisting code. I would appreciate if anyone of you could review it.
10:27:42
heisig
The code is at https://github.com/marcoheisig/SICL/tree/load-time-value-hoisting/Code/Cleavir/HIR-transformations/Load-time-value-hoisting
10:28:55
heisig
At the moment, it is pretty useless, because it needs several client specific methods to operate correctly.
10:29:47
heisig
But if you agree with the overall design, I will add specializing methods for Clasp and SICL.
11:31:01
beach
Today, I have lunch guests and then I need a rest. I'll have a look this afternoon or tomorrow.
11:35:57
heisig
Hello beach. Take your time. I have a busy week ahead of me, so whether I get feedback tomorrow or next week won't make a difference.
12:52:44
karlosz
drmeister: the way we imagine SFA is that its use will be transparent to the user (not the optiimization writer, but those who decide to use the optimizations). one can optimize all the cleavir code and then translate back to SSA for llvm generation or whatever
12:53:09
karlosz
and i mean the translation is really replacing a few assignment nodes with a phi node in a linear pass
13:53:06
kpoeck
I see that load tries to get the source-pathname, even when called with e.g. a string-stream
13:55:48
kpoeck
If no source is Stream not reulting from a file, what should be the result of SourceFileInfo_sp sfi = core__source_file_info(source);?
14:00:24
Bike
i've set it up so that the source POS info should be nil, and the source file info ignored