36 lines
924 B
Factor
36 lines
924 B
Factor
! Copyright (C) 2009 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors compiler.cfg.dataflow-analysis kernel sequences sets ;
|
|
IN: compiler.cfg.stacks.global
|
|
|
|
: transfer-peeked-locs ( set bb -- set' )
|
|
[ replaces>> diff ] [ peeks>> union ] bi ;
|
|
|
|
BACKWARD-ANALYSIS: anticip
|
|
|
|
M: anticip transfer-set drop transfer-peeked-locs ;
|
|
M: anticip join-sets 2drop refine ;
|
|
|
|
BACKWARD-ANALYSIS: live
|
|
|
|
M: live transfer-set drop transfer-peeked-locs ;
|
|
M: live join-sets 2drop combine ;
|
|
|
|
FORWARD-ANALYSIS: avail
|
|
|
|
M: avail transfer-set ( in-set bb dfa -- out-set )
|
|
drop [ peeks>> ] [ replaces>> ] bi union union ;
|
|
M: avail join-sets 2drop refine ;
|
|
|
|
FORWARD-ANALYSIS: pending
|
|
|
|
M: pending transfer-set
|
|
drop replaces>> union ;
|
|
M: pending join-sets 2drop refine ;
|
|
|
|
BACKWARD-ANALYSIS: dead
|
|
|
|
M: dead transfer-set
|
|
drop [ kills>> ] [ replaces>> ] bi union union ;
|
|
M: dead join-sets 2drop refine ;
|