Matti Picus pushed to branch branch/py3.9 at PyPy / pypy
Commits: f17e5a60 by Carl Friedrich Bolz-Tereick at 2022-05-03T12:23:30+02:00 remove repeated live instructions --HG-- branch : liveness-as-instruction - - - - - fef49dd2 by Carl Friedrich Bolz-Tereick at 2022-05-03T21:34:22+02:00 switch the way that liveness is representend in the jitcodes. so far it is done as a dict mapping pc to a shared triple of shared strings. Those dicts take up a lot of static space, lookups in them show up in profiles of the jit. instead, represent liveness as an instruction. the instruction is skipped when tracing and blackholing, but is read when producing and consuming resume data. The instruction's argument is an offset into a single global big string, that compactly encodes the sets of live registers. intermediate checkin --HG-- branch : liveness-as-instruction - - - - - e725e0f8 by Carl Friedrich Bolz-Tereick at 2022-05-05T19:33:22+02:00 fix vmprof --HG-- branch : liveness-as-instruction - - - - - d569179d by Carl Friedrich Bolz-Tereick at 2022-05-06T10:34:24+02:00 fix codewriter tests --HG-- branch : liveness-as-instruction - - - - - ac241c2c by Carl Friedrich Bolz-Tereick at 2022-05-06T12:23:29+02:00 fix tests --HG-- branch : liveness-as-instruction - - - - - 6bdc7cc5 by Carl Friedrich Bolz-Tereick at 2022-05-06T12:38:07+02:00 more fixes --HG-- branch : liveness-as-instruction - - - - - 8c5b8a45 by Carl Friedrich Bolz-Tereick at 2022-05-08T20:54:47+02:00 remove debugging attributes --HG-- branch : liveness-as-instruction - - - - - a12d2f1a by Carl Friedrich Bolz-Tereick at 2022-05-08T21:50:15+02:00 two byte offsets are big enough (the pypy liveness string is 9650 bytes, so plenty of margin to 65536) --HG-- branch : liveness-as-instruction - - - - - 302adc8b by Carl Friedrich Bolz-Tereick at 2022-05-09T21:46:24+02:00 merge liveness-as-instructions: instead of encoding the liveness of local registers in each jitcode as a dict mapping pc to a (shared) instance of a class with three strings, do the following: add a live instruction in the jitcode that that has as its argument an offset into a string that compactly encodes liveness. This makes the pypy binary about 7MB smaller, which is ~9% of its size: there are about 15000 jitcodes, and 15k dicts take a lot of memory. - - - - - 918f5198 by Carl Friedrich Bolz-Tereick at 2022-05-10T11:21:29+02:00 remove unused sorting subclass --HG-- branch : py3.8 - - - - - 598a01f2 by Carl Friedrich Bolz-Tereick at 2022-05-10T21:28:09+02:00 issue #3732: jit calling the key function (does not help enough, unfortunately. the profile shows the comparison being the slow thing in my example benchmark) - - - - - e8bd5fbf by Ronan Lamy at 2022-05-11T03:14:34+01:00 rm obsolete code - - - - - f23f981b by Matti Picus at 2022-05-11T06:18:25+03:00 on releases, build OWN + JIT - - - - - 8463c90b by Matti Picus at 2022-05-11T12:08:25+03:00 skip ztranslation for the posix module, it is too hard to make FakeObjSpace work --HG-- branch : py3.8 - - - - - ced9ba84 by Carl Friedrich Bolz-Tereick at 2022-05-11T21:45:19+02:00 try to revive this very old mechanism for understanding the amount of static data - - - - - b5d939b4 by Ronan Lamy at 2022-05-11T23:17:47+01:00 hg merge default --HG-- branch : py3.8 - - - - - 31c78115 by Carl Friedrich Bolz-Tereick at 2022-05-13T19:56:10+02:00 don't use a dict for duplicate mode checking (this is actually the only place in all of pypy that uses dicts of type char: None, so let's just remove that) - - - - - db59857d by Carl Friedrich Bolz-Tereick at 2022-05-14T12:42:33+02:00 small fix: make the pattern 'string[0]' to convert a str to a char work also when string is already a char (before it would convert the char to a str to a char) - - - - - af5e69b4 by Carl Friedrich Bolz-Tereick at 2022-05-13T21:43:30+02:00 use dict_to_switch to get rid of this constant dict (maybe there could be an rpython optimization for that too) - - - - - 1505badf by Carl Friedrich Bolz-Tereick at 2022-05-13T22:04:10+02:00 remove unused field - - - - - 5aec960c by Carl Friedrich Bolz-Tereick at 2022-05-13T22:16:13+02:00 another single-use dictionary type in cpyext flags initialization instead of looking up function pointers in a dict, unroll the loop - - - - - 6657cab9 by Carl Friedrich Bolz-Tereick at 2022-05-13T23:01:20+02:00 another dict type - - - - - 6e74d271 by Carl Friedrich Bolz-Tereick at 2022-05-13T23:09:11+02:00 remove dead global - - - - - ec2f5411 by Carl Friedrich Bolz-Tereick at 2022-05-14T13:22:44+02:00 move dict_to_switch to objectmodel, use it in micronumpy - - - - - bbc8d363 by Carl Friedrich Bolz-Tereick at 2022-05-14T13:25:35+02:00 merge default --HG-- branch : py3.8 - - - - - ee678e77 by Carl Friedrich Bolz-Tereick at 2022-05-14T14:56:41+02:00 duplicate function (maybe from a merge?) --HG-- branch : py3.8 - - - - - 494e1594 by Carl Friedrich Bolz-Tereick at 2022-05-14T15:55:00+02:00 a few more constant dicts in the JIT - - - - - 28727482 by Carl Friedrich Bolz-Tereick at 2022-05-14T16:24:27+02:00 some more dicts in micronumpy - - - - - d06eeb03 by Carl Friedrich Bolz-Tereick at 2022-05-14T19:25:56+02:00 merge default --HG-- branch : open-ended-traces - - - - - 0b2d30e3 by Carl Friedrich Bolz-Tereick at 2022-05-14T19:30:34+02:00 fix open-ended-traces in combination with liveness-as-instructions --HG-- branch : open-ended-traces - - - - - d0448de7 by Carl Friedrich Bolz-Tereick at 2022-05-14T19:33:34+02:00 merge open-ended-traces to py3.8 again (we should now just merge it to default too, I think) --HG-- branch : py3.8 - - - - - 4cd8bdde by Matti Picus at 2022-05-14T22:55:16+03:00 more micronumpy dict fixes for some NumPy C-API implementation pieces - - - - - 72c282d1 by Matti Picus at 2022-05-14T23:11:08+03:00 test, fix PyDict_Contains (issue 3742) - - - - - 95349b79 by Matti Picus at 2022-05-15T07:35:22+03:00 fix test - - - - - c218110d by Matti Picus at 2022-05-15T08:15:50+03:00 merge default --HG-- branch : py3.8 - - - - - c3f2f74e by Matti Picus at 2022-05-15T08:16:15+03:00 merge py3.8 --HG-- branch : py3.9 - - - - - 30 changed files: - pypy/interpreter/astcompiler/misc.py - pypy/module/_io/interp_io.py - pypy/module/_rawffi/interp_rawffi.py - pypy/module/cpyext/api.py - pypy/module/cpyext/dictobject.py - pypy/module/cpyext/ndarrayobject.py - pypy/module/cpyext/test/test_dictobject.py - pypy/module/micronumpy/casting.py - pypy/module/micronumpy/descriptor.py - pypy/module/posix/test/test_ztranslation.py - pypy/objspace/std/listobject.py - pypy/objspace/std/typeobject.py - pypy/tool/release/force-builds.py - rpython/jit/backend/x86/assembler.py - rpython/jit/codewriter/assembler.py - rpython/jit/codewriter/codewriter.py - rpython/jit/codewriter/jitcode.py - rpython/jit/codewriter/liveness.py - rpython/jit/codewriter/test/test_assembler.py - rpython/jit/codewriter/test/test_codewriter.py - rpython/jit/codewriter/test/test_flatten.py - rpython/jit/codewriter/test/test_jitcode.py - rpython/jit/codewriter/test/test_liveness.py - rpython/jit/metainterp/blackhole.py - rpython/jit/metainterp/opencoder.py - rpython/jit/metainterp/optimizeopt/optimizer.py - rpython/jit/metainterp/optimizeopt/schedule.py - rpython/jit/metainterp/optimizeopt/vector.py - rpython/jit/metainterp/pyjitpl.py - rpython/jit/metainterp/resume.py View it on Heptapod: https://foss.heptapod.net/pypy/pypy/-/compare/fb4ae2643285e5470af00fe51baf65f88a2e5104...c3f2f74e8d7a9255d920a603b0b9962229b91da5 -- View it on Heptapod: https://foss.heptapod.net/pypy/pypy/-/compare/fb4ae2643285e5470af00fe51baf65f88a2e5104...c3f2f74e8d7a9255d920a603b0b9962229b91da5 You're receiving this email because of your account on foss.heptapod.net.
_______________________________________________ pypy-commit mailing list -- pypy-commit@python.org To unsubscribe send an email to pypy-commit-le...@python.org https://mail.python.org/mailman3/lists/pypy-commit.python.org/ Member address: arch...@mail-archive.com