Search
Wednesday, 17th of May 2017, 11:59:07 UTC
17:20:18
drmeister
I'm still working away on this. This was a wrenching, breaking change.
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:22:05
drmeister
The C calling convention was really, really not designed for this.
17:50:26
Shinmera
Cause get ready for that windows port where the standard calling convention is different
19:14:14
phoe
drmeister: Networking issues on origin should be resolved now.
19:14:19
phoe
If they aren't - let me know immediately.
23:50:35
drmeister
Why would an llvm 'add' be converted to an 'or'?
23:51:13
stassats
sometimes they're equivalent
23:51:24
stassats
when some the bits are clear
23:52:00
drmeister
https://www.irccloud.com/pastebin/arOT3lvV/
23:52:19
drmeister
closure is a tagged pointer with the low bit 1
23:53:18
drmeister
It's being converted to this llvm-ir
23:53:19
drmeister
https://www.irccloud.com/pastebin/vvcqmpVq/
23:53:43
stassats
but OR and ADD have the same throughput and latency on, say, haswell
23:53:55
stassats
maybe some other arches have cheper OR
23:54:12
drmeister
but they aren't equivalent here.
23:54:38
drmeister
I need a: add i64 %ptrtoint, 7
23:54:47
drmeister
I asked for an add - I need an add.
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
23:58:35
drmeister
The 'or' will give me 0111
Wednesday, 17th of May 2017, 23:59:07 UTC