Source

pypy / pypy / translator / backendopt / mallocprediction.py

Author Commit Message Labels Comments Date
Armin Rigo
Tentative: kill various pieces of code left and right handling keepalives. Now the inliner no longer inserts tons of keepalives for you (which are almost always unneeded).
Maciej Fijalkowski
Revert SpaceOperation changes, they're parked on a branch for now
Maciej Fijalkowski
make SpaceOperations consume less space by making them specialized on exact number of arguments. Saves a bit of space and a bit of time when annotating.
Samuele Pedroni
kill flavor_malloc_*, zero_malloc_* now only malloc_* operations should be present in graphs until gc transform malloc and malloc_varsize now always carry a dictionary of flags as second operand, the 'flavor' key must always be set in this dict the flavored_free operation is now just free(p, flavor), flavor is just the flavor string the base gc transform class has now more responsabilities, subclasses need to care only about 'gc'…
Samuele Pedroni
let's specify an heuristic function for the various inlinings, generalize such that it can return a large number until some conditions becomes true for the graph. Example usage in test_mallocprediction test_pystone
Samuele Pedroni
oops, this should have been checked in separately
Samuele Pedroni
intermediate: explicit threshold for malloc prediction for now.
Samuele Pedroni
intermediate: try to regularize clever malloc removal interface, share some common code between it and all
Armin Rigo
pedronis and arigo trying to merge again...
Armin Rigo
(pedronis, arigo) Restoring the branch at the state just before things went wrong
Carl Friedrich Bolz
make final result bold
Carl Friedrich Bolz
make malloc prediction work for indirect_calls
Carl Friedrich Bolz
(pedronis, cfbolz): a clever inliner that tries to inline stuff more if it might lead to the removal of mallocs
Carl Friedrich Bolz
try to find out calls that are interesting to inline because doing that will probably enable malloc removal.