freenode/#clasp - IRC Chatlog
Search
12:48:16
drmeister
The AirBnB thing worked out - but I learned that it's best to first go to where the key is kept. That was a couple of blocks away from the apartment.
12:53:03
drmeister
My mom is beside herself because she's got a big, hyper-intelligent rat in her pantry. If she doesn't catch it by the time I get there next week - it's my jog.
12:54:49
cracauer
It was just a cage as a live trap that had a very high quality trigger so that you can't get the cheese without the trapdoor falling down.
12:55:23
drmeister
I'm looking for ideas. My mom has the simple Orkin spring traps and the rat avoids them.
12:55:49
cracauer
The last time I used that trap I drove a mouse a couple of kilometers out into the forest.
13:53:35
drmeister
I couldn't get that potato out of the corner without tripping the trap - and I have a freakin' PhD.
17:12:41
karlosz
if i just make a compiler macro for eq expanding to cleavir-primop:eq then i get problems when its not used in an if form
17:13:26
karlosz
but if i write (if (cleavir-primop:eq ,arg1 ,arg2) t nil) then it does some unnecessary stuff when you have code like (if (eq...))
17:28:19
Bike
Another way of doing it I guess would be to have a special ast that does (if whatever t nil), and then change the if compiler to skip that ast
17:29:33
karlosz
like having the ast method on cleavir-primop:eq convert to how it is now when it has two successors
17:30:35
karlosz
that way you can implement thte ocmpiler macro as (cleavir-primop:eq ,arg1 ,arg2) and eliminate the restriction that it has to appear as the test in an if form
17:31:47
karlosz
can it be done in the AST conversion method? what would the need for hir level hoisting be?
18:02:45
karlosz
it can probably be generalized for all test asts, dropping the two successor restriction
18:06:17
karlosz
i guess the part about make-load-time-value ast can just be changed to a conversion of t and nil to asts
18:06:40
karlosz
thatway no matter how constants are handled, the ieq-ast will just adapt accordingly
18:07:39
Bike
like, nil could be an immediate, and right now we worry about that in the form to ast step
18:10:05
karlosz
hm, then i guess you could just replace the call to make-load-time-ast to a call to (convert-form nil/t)
18:13:56
karlosz
thats true. so i guess either way how constants are rpesented will affect how the code is written
18:14:51
karlosz
but that will require a rewrite of all the constant handling machinery anyway, so we might as well get something like this in and deal with it with everything else
18:25:08
Bike
for analysis purposes we should probably just use like constant-input anyway, there's no actual environment dependence and we can worry about immediates at mir level
18:27:25
karlosz
i wonder why there needs to be a immediate-ast class? can't those just be introduced in HIR by the implementor?
19:09:53
karlosz
*sigh* cleavir-loops finds the loops in a flow graph but doesnt retain any information about where the loop entry node is
19:44:22
heisig
I am all in for removing the immediate-ast class. I didn't even know there is such a thing.
19:46:54
heisig
karlosz: Loop invariant hoisting is extremely important for numerical codes. Having to do this by hand is quite the pain.
19:47:34
karlosz
alright, ive already started writing it. itll be done in HIR so clasp can use it too
19:48:47
Bike
the existing loop detection seems to target strongly connected components, but i thought there was a broader condition
19:50:33
karlosz
yeah, usually whats done is a loop nest tree is done so that innermost loops can be optimized first
19:50:45
heisig
Loop optimization is probably also not a top priority at the moment. More something for the long-term wishlist.