[pypy-commit] pypy default: Trying to change the order: the "nocollect" marker can appear anywhere,

arigo noreply at buildbot.pypy.org
Tue Jan 20 14:24:08 CET 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r75448:7e73ff3a2eac
Date: 2015-01-20 14:23 +0100
http://bitbucket.org/pypy/pypy/changeset/7e73ff3a2eac/

Log:	Trying to change the order: the "nocollect" marker can appear
	anywhere, but putting it after the call prevents gcc from generating
	a tail-call

diff --git a/rpython/memory/gctransform/framework.py b/rpython/memory/gctransform/framework.py
--- a/rpython/memory/gctransform/framework.py
+++ b/rpython/memory/gctransform/framework.py
@@ -690,9 +690,9 @@
             self.default(hop)
             self.pop_roots(hop, livevars)
         else:
-            self.default(hop)
             if hop.spaceop.opname == "direct_call":
                 self.mark_call_cannotcollect(hop, hop.spaceop.args[0])
+            self.default(hop)
 
     def mark_call_cannotcollect(self, hop, name):
         pass


More information about the pypy-commit mailing list