diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 2fcbfd791c..ffe9412ef4 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -53,6 +53,8 @@ - the invalid recursion form case needs to be fixed, for inlines too - code gc - compiled gc check slows things down +- fix branch folding +- remove branch splitting + misc: diff --git a/library/compiler/linearizer.factor b/library/compiler/linearizer.factor index 86863e0629..2183e9b5d1 100644 --- a/library/compiler/linearizer.factor +++ b/library/compiler/linearizer.factor @@ -2,7 +2,7 @@ ! See http://factor.sf.net/license.txt for BSD license. IN: compiler-frontend USING: arrays compiler-backend errors generic hashtables -inference kernel lists math namespaces prettyprint sequences +inference kernel math namespaces prettyprint sequences strings words ; : in-1 0 0 %peek-d , ; @@ -68,10 +68,9 @@ M: #label linearize* ( node -- ) [ node-param "if-intrinsic" word-prop ] [ drop f ] if ; : linearize-if ( node label -- ) - #! Assume the quotation emits a VOP that jumps to the label - #! if some condition holds; we linearize the false branch, - #! then the label, then the true branch. - >r node-children first2 linearize* r> %label , linearize* ; +