freenode/#clasp - IRC Chatlog
Search
16:29:00
Bike
i'd like to really merge itinto dev, but i'll need to update sicl, and probably stop it from building alexandria and eclector
16:44:25
Bike
I think for the inlining efficiency thing, we could just not update the ENTER as we go, and then at the end of the process update it with whatever is live at the stopping point.
16:49:08
karlosz
eliminate catches doesnt actually eliminate catches from the instruction graph anymore
16:50:07
karlosz
er, when i call cleavir-ir:predecessors on an instruction after eliminate catches, that instruction will still have catch instruction as a predecssor
16:51:01
karlosz
and then when i look at the predecessors of some instructions the eliminated catches are still there
16:54:54
Bike
Technically it's not, it's just that the case in which you wouldn't have to do it is uncommon.
16:55:05
Bike
The issue is that bypass instruction can cleave off a good part of the instruction graph.
16:55:55
karlosz
oh, i see. can bypass instruction not keep the IR consistent when its doing that though?
16:56:33
Bike
It would have to check through the cleaved part looking for reconnections to the part that's still reachable.
16:57:45
karlosz
so the user doesnt have to look inside the transformations to see whether he/she has to call set-predesccesors or not
16:58:20
Bike
I didn't do that because it could be possible to run multiple transformations back to back that would makeit redundant.
17:01:14
karlosz
true. it would still be nice to have every module keep the IR consistent, but thats a tradeoff i guess. same with reinitialize-data
17:43:56
Bike
beach: in cst-to-ast, the restart to consider unknown variables special is called RECOVER, instead of CONSIDER-SPECIAL like it was in generate-ast. But the cst-to-ast package exports CONSIDER-SPECIAL and not RECOVER. Should it be renamed back to CONSIDER-SPECIAL or should i fix the package?
17:46:20
beach
Bike: Good question. I think the recover restart should be there. It is more general. But maybe we should add a consider-special restart too.
17:48:46
beach
But consider-special is more accurately named. The recover restart is for use by Second Climacs where it doesn't matter how the recovery is made.
17:49:37
Bike
So do you want me to put in another restart called consider-special that duplicates the action?
17:57:02
Bike
i guess we sort of could with restart-bind, which would be my first use of restart-bind
18:01:47
karlosz
beach: i wrote a new basic block representation represented as a class with additional slots holding successor and predecessor block information.i also added functions like map-basic-block-instructions and functions to compute an instructions containing/create a has table map of that information, since ive been using those in my compiler for a while.
18:02:35
karlosz
maybe about 3x (when i stored predecessor and successor information in the block itself)
21:07:42
drmeister
karlosz: How do basic blocks interact with instructions? Does inserting and removing instructions have to worry about consistency with basic block info?
21:08:31
karlosz
yes, jjust like the current basic block stuff in cleavir, thre are no facilities for automatically keeping the basic block stuff consistent
21:10:06
karlosz
since we don't want to actually have instructions hold a slot to the containing block i don't know of any better way
21:10:10
drmeister
In llvm everything is done with basic blocks in mind - when you want to add an instruction you have to choose which basic block you want to insert into.
21:10:25
karlosz
beach: i'll package it up and send in a PR to replace the existing basic block implementation
21:12:43
karlosz
i can calculate all the successor and predecessor block information in that single pass as well
21:15:23
karlosz
it could compile the actual translation stuff fine though, so i don't know whether im miscompiling or falling into some circularity trap
21:17:34
drmeister
Crap! I'm hitting that "error: can't create dynamic relocation R_X86_64_PC32 against symbol:" error on Linux that attila pointed out
21:30:28
drmeister
::notify attila_lendvai I ran into the problem you saw on linux "error: can't create dynamic relocation R_X86_64_PC32 against symbol:" - I'm trying to figure out a work around. Can stuff just keep working?
21:57:09
drmeister
::notify attila_lendvai It looks like a workaround is to not use the lld linker when building in object mode on linux (phew). I added support for lld for bitcode/lto mode - so it's no big deal to switch back to ld for object mode.
1:03:35
Bike
git fetch origin clasp-changes; git checkout origin/clasp-changes; git pull upstream master --rebase
1:05:17
drmeister
But I can't do that on AWS machines without a hassle. I'll just wait until you push the changes.