Source

pypy / pypy / translator / backendopt / escape.py

Author Commit Message Labels Comments Date
Carl Friedrich Bolz
a so far very simplistic analysis to find potential coallocation sites
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
attach some debug type info to the creation points. Keepalive was not there?
Samuele Pedroni
intermediate: try to regularize clever malloc removal interface, share some common code between it and all
Carl Friedrich Bolz
(arigo, cfbolz mostly watching): argh! two bugs in heap2stack analysis: * alloca'ed memory was not zero'ed * problem in the dependency handling of escape analysis
Armin Rigo
Trying to generally fix id() issues.
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.
Carl Friedrich Bolz
rename aib (?!) to adi
Carl Friedrich Bolz
move find_backedges etc to support
Carl Friedrich Bolz
as long as gc interaction is unclear at best, don't put allocations of objects to the stack that have a deallocator.
Carl Friedrich Bolz
just assume the worst about operations that are unknown
Carl Friedrich Bolz
* comment out most debug prints as they take a lot of time * actually use the functionargs cache (thanks samuele) * finish the analysis _before_ changing something -- duh
Armin Rigo
'op_' prefix to avoid name clashes. Yup, I know it's easy to fix someone else's code and pretend I don't know that the annotator itself has the same problem :-/
Armin Rigo
- typoish bug fix - direct uses of popitem() and update() -- in particular, iterkeys().next() followed by pop() is extremely inefficient (wrong complexity!)
Armin Rigo
Typo
Carl Friedrich Bolz
fix indirect_call when the set of graphs that can be called is unknown
Carl Friedrich Bolz
fixing bug in change register_state_dependency simplifying getarraysubstruct test
Eric van Riet Paap
fixed typo
Carl Friedrich Bolz
implemet getarraysubstruct + test
Carl Friedrich Bolz
don't convert mallocs that are in loops to allocas
Carl Friedrich Bolz
detect loops
Carl Friedrich Bolz
make external functions work that return something on the heap
Carl Friedrich Bolz
don't just give up on external functions that take arguments that are on the heap
Carl Friedrich Bolz
actually implement a transformation that removes puts structures on the stack - not safe yet.
Carl Friedrich Bolz
some small fixes to the adi. is now able to treat the whole rpystone - not sure whether it produces useful info.
Carl Friedrich Bolz
first attempt at a simple inter-procedural escape analysis. many operations are still missing but works for very basic cases.