Source

pypy / pypy / jit / metainterp / optimizeopt / virtualize.py

Author Commit Message Labels Comments Date
Carl Friedrich Bolz
generate all the dispatching loops that are around in the optimizers. This allows it to strategically place an "assert isinstance(op, cls)" just before calling the specific optimization method. This means the annotation of "op" in all these methods is precisely the right class, which leads to much faster access to all the arguments of operations.
Alex Gaynor
When a virtual is forced, and then subsequenly an immutable field is read out of it, the value is known if it was seen in a setfield, because it can't be set again by anything, therefore remove the getfield_gc_pure for it. Thanks to fijal for the review.
Antonio Cuni
move optimizeutil into the optimizeopt package
Armin Rigo
Fix the comment.
Branches
invalidate-virtualrefs
Antonio Cuni
(arigo, antocuni): fix the logic when we force the vref already during tracing: in that case, we want to store the object inside forced; in the 'normal' case, we just store null (and optimize the setfield away, because it is constant); also, write a test that checks that we can call a vref after finish in case we already forced it
Branches
invalidate-virtualrefs
Antonio Cuni
don't force the vref when calling finish(), and raise an exception if we try to force it later
Branches
invalidate-virtualrefs
Armin Rigo
Backout 4d4b01d56455 and investigate the failure, probably related, of benchmarks.
Armin Rigo
Giant hack. See comments in optimizeopt/virtualize.py
Branches
partial-virtualizable
Armin Rigo
When forcing a virtual that is actually an immutable struct, if it contains only constants, then it can become a constant struct. Should help e.g. to remove W_IntObject(0) that were still malloced in the operations sent to the backend.
Antonio Cuni
kill the virtualref_index field: it is never used
Armin Rigo
"hg backout" of 903b44931aec, which breaks some tests left and right. More importantly, you should avoid storing on MetaInterpStaticData a dict that you mutate at run-time, because that's a frozen class.
Maciej Fijalkowski
Implement pypy-c --jit disable_opts=one:two:three that disables optimizations. Useful for demos. A bit of fiddling around with string value for set_param
Hakan Ardo
Make sure we dont get cahced values
Branches
jit-virtual_state
Hakan Ardo
fixed forced case
Branches
jit-virtual_state
Hakan Ardo
support for forced virtuals
Branches
jit-virtual_state
Amaury Forgeot d'Arc
hg merge default
Branches
fast-forward
Hakan Ardo
hg --config ui.merge=internal:local merge 90600b6d6a68
Branches
jit-unroll-loops
Dan Villiom Podlaski Christiansen
No-op merge to register the merge done in 0e3099e3cc33 with Mercurial.
Branches
fast-forward
Armin Rigo
Merge branch/rsre-jit: put the JIT hints in the rsre module. Requires small extensions in the JIT: - "green fields": the ability to write 'foo.bar' in the list of greens in the JitDriver, where 'foo' is written in the list of reds. - the ability to only write jitdriver.jit_merge_point(), without any jitdriver.can_enter_jit(). In that case the jit_merge_point() plays both roles. The difference with putting explicitly a can_enter_jit() just before is that such a can_enter_jit() i…
Antonio Cuni
merge the jitffi branch: it provides a new jit-friendly rlib.libffi module, and an app-level _ffi module which exposes it.
Hakan Ardo
Reconstructs all the OptValus after the preamble
Branches
jit-unroll-loops
Hakan Ardo
Started to reconstruct values aswell (this is work in progress)
Branches
jit-unroll-loops
Hakan Ardo
Recreate the optimizer after the preamble to get full controll over what status information probagates fron the preamble to the loop.
Branches
jit-unroll-loops
Armin Rigo
Add a missing case in __repr__.
Branches
jit-unroll-loops
Armin Rigo
Remove the 'spectext' argument from test_optimizebasic too.
Branches
jit-unroll-loops
Carl Friedrich Bolz
kill perfect specialization and specnodes
Branches
jit-unroll-loops
Hakan Ardo
svn merge -r77505:HEAD svn+ssh://hakanardo@codespeak.net/svn/pypy/trunk
Branches
jit-unroll-loops
Hakan Ardo
(hakanardo, cfbolz, arigo) default values of virtuals
Branches
jit-unroll-loops
Carl Friedrich Bolz
import * is evil
Branches
jit-unroll-loops
Carl Friedrich Bolz
- only use unroll optimization if we are not in a bridge - rename the confusing flag "virtuals" to "not_a_bridge"
Branches
jit-unroll-loops
  1. Prev
  2. 1
  3. 2
  4. Next