freenode/#clasp - IRC Chatlog
Search
16:02:44
drmeister
I learned a bunch of things while at the llvm meeting. (1) a solution to debugging jitted code (working on that now) (2) A way to parallelize the slow parts of the compiler.
16:03:48
drmeister
The ORC JIT has had a big upgrade to deal with the slowness of llvm. They have this scheme where compilation is deferred until the user wants to compile things and then compilation happens in parallel.
16:04:04
minion
Bike, memo from beach: This is totally brilliant. I am convinced that it works. 1. Figure out whether any implementation does it. 2. If not, figure out what happens to the methods and call history as a result of DEFCLASS, and DEFTYPE. 3. Write it down. 4. Submit to ELS.
16:04:04
minion
Bike, memo from beach: There would be three kinds of methods: always false, always true, and requiring some action (for example if there is a DEFTYPE that expands to a compound type).
16:05:59
drmeister
I've honestly been spending the last 48 hours dozing or sleeping - that trip wiped me out.
16:11:53
drmeister
The new ORC API isn't yet in llvm7 (current) they will be in llvm8. So it means to work with them I'll have to move to tip of trunk again.
16:16:51
drmeister
https://github.com/llvm-mirror/lldb/commit/2829ee8e179e9d3381de08dba1502351e34867c0
16:17:46
drmeister
Lang Hames (developer of the ORC JIT) is going to see if he can get that changed when he gets back next week.
16:34:47
drmeister
The commit message says: "Disable JITLoaderGDB on "vendor == apple" for now due to performance … …slowdowns for every first run process as a global name lookup in all shared libraries if performed."
16:35:44
drmeister
But we were all a bit mystified why something so useful would be disabled rather than fixing the real problem.
16:48:37
drmeister
Who knows - but there were at least three people at the meeting who had tried to debug jitted code (me included), followed all of the directions on the internet and been completely mystified why it didn't work on MacOS.
16:54:34
drmeister
In addition to this there are three other steps I was given and the last one was looks like a doozy.
16:54:54
drmeister
"Last but not least, emit ELF objects instead of MachO or implement LoadedMachOObjectInfo:: getObjectForDebug() properly :)"
17:00:50
drmeister
Do you know something I don't? I don't know what we emit from the JIT - I can figure it out though.
17:01:31
drmeister
I figured it was whatever llvm felt was appropriate for the operating system we are running on.
17:05:16
drmeister
I'm trying to figure out how to use the JIT to parallelize the slow parts of compilation and save the results for later reuse.
17:08:19
drmeister
If we also parallelize AST->HIR and HIR optimization - then we can do more optimization without worrying so much about compile time.