These are chat archives for dropbox/pyston

Jul 2015
Travis Hance
Jul 12 2015 00:20 UTC
Kevin Modzelewski
Jul 12 2015 00:49 UTC
it's a calling convention that says that "all" registers are saved across the call
which gives us a tiny performance boost for setattr/gettatr that usually don't have to involve any function calls
but it means that rax can actually be a live-out
as opposed to a c-calling-convention call, where that wouldn't make any sense
actually, I think rax is still supposed to be the return register
so maybe it still doesn't make any sense
Kevin Modzelewski
Jul 12 2015 07:26 UTC
fyi I disabled the PreserveAll calling convention with my latest pr, #684
I guess it was doing something that caused this case to get hit more often
so I just did this as a temporary workaround
it seems to be hitting it pretty reliably; you can try backing out that last commit and then doing make run_json_test ARGS=-Sn
Travis Hance
Jul 12 2015 18:29 UTC
btw in case you didn’t see (it’s kind of buried now) in dropbox/pyston#656 I get the rewriter to properly preserve live_outs at guards