Commit [5cf3c4] Maximize Restore History

1.0.24.34: IR2: additional representation for predicates, conditional moves

* :CONDITIONAL VOPs can now specify how to interpret the test
they compute without performing the branch directly. How the
test is specified is completely platform-dependent and only
affects new-style :CONDITIONAL VOPs and a new BRANCH-IF VOP
(src/compiler/$ARCH/pred.lisp).

* Candidates for conversion to conditional moves are found
and may be converted, depending on CONVERT-CONDITIONAL-MOVE-P,
a new VM support routine. C-C-M-P returns NIL to punt on the
conversion, or 5 values:
1. name of the VOP to use
2. TN for the first argument (NIL if none)
3. TN for the second argument (NIL if none)
4. TN for the result
5. A list of info data, which will be appended to the flags

The correct values will be MOVEd in the argument TNs if needed
before computing the condition, and the result MOVEd to the right
TN after the conditional move VOP.

Paul Khuong Paul Khuong 2009-01-11

added src/compiler/ir2opt.lisp
changed src/compiler/alpha/pred.lisp
changed src/compiler/hppa/pred.lisp
changed src/compiler/mips/pred.lisp
changed src/compiler/ppc/pred.lisp
changed src/compiler/sparc/pred.lisp
changed src/compiler/x86-64/pred.lisp
changed src/compiler/x86/pred.lisp
changed src/compiler/backend.lisp
changed src/compiler/debug.lisp
changed src/compiler/ir1-translators.lisp
changed src/compiler/ir2tran.lisp
changed src/compiler/ltn.lisp
changed src/compiler/main.lisp
changed src/compiler/meta-vmdef.lisp
changed src/compiler/vmdef.lisp
changed src/compiler/vop.lisp
changed build-order.lisp-expr
changed package-data-list.lisp-expr
src/compiler/ir2opt.lisp Diff Switch to side-by-side view
Loading...
src/compiler/alpha/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/hppa/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/mips/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ppc/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/sparc/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/pred.lisp Diff Switch to side-by-side view
Loading...
src/compiler/backend.lisp Diff Switch to side-by-side view
Loading...
src/compiler/debug.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ir1-translators.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ir2tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ltn.lisp Diff Switch to side-by-side view
Loading...
src/compiler/main.lisp Diff Switch to side-by-side view
Loading...
src/compiler/meta-vmdef.lisp Diff Switch to side-by-side view
Loading...
src/compiler/vmdef.lisp Diff Switch to side-by-side view
Loading...
src/compiler/vop.lisp Diff Switch to side-by-side view
Loading...
build-order.lisp-expr Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...