compiler.cfg.alias-analysis: factor-call-insns which defined values were not handled properly

db4
Slava Pestov 2010-07-19 19:56:00 -04:00
parent 0fbe78be00
commit b6fe62299e
2 changed files with 19 additions and 1 deletions

View File

@ -299,6 +299,7 @@ M: ##compare analyze-aliases
\ ##alien-global set-new-ac ;
M: factor-call-insn analyze-aliases
call-next-method
heap-ac get ac>vregs [
[ live-slots get at clear-assoc ]
[ recent-stores get at clear-assoc ] bi

View File

@ -6,7 +6,7 @@ math memory namespaces namespaces.private parser
quotations sequences specialized-arrays stack-checker
stack-checker.errors system threads tools.test words
alien.complex concurrency.promises alien.data
byte-arrays classes ;
byte-arrays classes compiler.test ;
FROM: alien.c-types => float short ;
SPECIALIZED-ARRAY: float
SPECIALIZED-ARRAY: char
@ -804,3 +804,20 @@ mingw? [
] with-out-parameters ;
[ 12 ] [ 6 out-param-callback out-param-indirect ] unit-test
! Alias analysis regression
: aa-callback-1 ( -- c )
double { } cdecl [ 5.0 ] alien-callback ;
: aa-indirect-1 ( c -- x )
double { } cdecl alien-indirect ; inline
TUPLE: some-tuple x ;
[ T{ some-tuple f 5.0 } ] [
[
some-tuple new
aa-callback-1
aa-indirect-1 >>x
] compile-call
] unit-test