These are chat archives for dropbox/pyston
Warning: truncated .pyc file found; ignoring /home/travis/build/dropbox/pyston/src/codegen/parser.cpp:1216: pyston::AST_Module *pyston::caching_parse_file(const char *): Assertion `tries <= MAX_TRIES' failed: repeatedly failing to parse file
// 14 bytes per reg that needs to be spilled call_size += 14 * 4;
@kmod I think I almost have this figured out… I finally realized I need to focus on
initializePatchpoint3 since that’s where all the spilling and such is. So it seems like the live_outs fall into 3 camps: the callee save registers, the
regs_to_spill, and the
So the first camp, callee save registers, is easy, since we basically don’t touch those.
regs_to_reload are also easy. Since the continue_addr is now before these registers get unspilled, I can just remove them from the live_outs, as we discussed
regs_to_spillcamp; it seems like they have to go in the live_outs (the “batch push” which spills them doesn’t run before the IC does, and even if it did, it uses the scratch space, the same space as the ICs)
restoreArgs, I guess) logic—which is what we were hoping to avoid, right?
regs_to_spillwould be problematic
spillFrameArgumentIfNecessary()on all the live outs as well
regs_to_spillcase by having already spilled them