freenode/#clasp - IRC Chatlog
Search
17:21:22
drmeister
I am making progress though - I discovered that the single-dispatch-generic-functions that Clasp uses to wrap virtual functions and methods were broken. Fixed now.
17:50:26
Shinmera
Cause get ready for that windows port where the standard calling convention is different
23:58:24
drmeister
I do. Essentially I have a tagged pointer with low bits 0001, I need to add 7 (0111), I need to get 1000
0:09:38
stassats
googling stuff just confirms my opinion that llvm is badly document and has terrible API
0:11:17
drmeister
No, I needed to dereference the pointer. The {}** must be being treated as aligned and or is equiv to add in that case.
0:18:19
stassats
it's %4 = getelementptr inbounds i32, i32* %3, i64 10 %5 = load i32, i32* %4, align 4
0:25:52
drmeister
I'll do a search for ptrtoint later and change things to getelementptr - there's only a handful of these.
0:28:06
stassats
well, presumably this gep thing will allow to encode the offset in the load instruction and save on a temporary register
0:33:13
stassats
but that's in IR, shouldn't that be the job of whatever optimizes stuff to machine code?
0:34:20
drmeister
Optimization happens at the IR level - it may happen at others - but I'm really familiar with the IR level.
0:37:09
drmeister
I still have an exception handling bug. I have a stack unwind that is skipping a landing pad.
0:41:47
stassats
"It's not you, it's us Bing isn't available right now, but everything should be back to normal very soon."
0:43:13
Bike
how mysterious, it works here, except that getelementptr returns the wikipedia page on praseodymium
0:48:01
stassats
i doubt any architecture would have different OR and ADD performance characteristics
1:17:07
drmeister
The issue is I have to set the limit somewhere and what do I do with APPLY's like this?
1:19:43
drmeister
The only way I can see to make it unlimited would be to generate them for higher arities as they are needed and cache them.
1:40:14
stassats
(reduce #'bag-join (cleavir-ir:predecessors instruction) :key (lambda (pred) (arc-bag pred instruction dictionary))) you mean?
1:42:13
drmeister
The way it's written - using APPLY, isn't it possible that since there's no limit to the number of predecessors of an instruction (large functions) that there is no safe, low limit for funcall that will work?
1:43:19
drmeister
I can set the limit to 140 - but above that the Google 'pump' script goes nuts for some reason. Google 'pump' is a Python program that generates code based on a template.
1:48:15
Bike
little surprised it came up there. i guess an instruction would have a lot of predecessors if you had a tagbody with a lot of tags, maybe