-! Copyright (C) 2008, 2010 Slava Pestov.
+! Copyright (C) 2008, 2010 Slava Pestov, 2011 Alex Vondrak.
! See http://factorcode.org/license.txt for BSD license.
-USING: assocs accessors arrays classes classes.algebra
-combinators fry generic.parser kernel math namespaces
+USING: assocs accessors arrays classes.algebra
+combinators generic.parser kernel math namespaces
quotations sequences slots words make sets
+compiler.cfg
compiler.cfg.instructions
compiler.cfg.instructions.syntax
compiler.cfg.gvn.graph ;
: narray-quot ( length -- quot )
[
[ , [ f <array> ] % ]
- [
- dup iota [
+ [
+ dup <iota> [
- 1 - , [ swap [ set-array-nth ] keep ] %
] with each
] bi
M: ##load-reference >expr obj>> <reference-expr> ;
+! TODO experiment with sorting, in case that identifies more
+! phi equivalences
+
M: ##phi >expr
- inputs>> values [ vreg>vn ] map \ ##phi prefix ;
+ inputs>> values [ vreg>vn ] map
+ basic-block get number>> prefix
+ ##phi prefix ;