代码拉取完成,页面将自动刷新
The following tests:
pta-field-1.c
pta-field-2.c
pr44468.c
20000605-1.c
fails when compiled:
maple -run=me:mpl2mpl:mplcg -option="-O3:-O2:-O2"
-noDDAA does not help.
In the case of pta-field-1.c, after &bar is inlined into &foo:
func &foo () i32 {
funcid 2
var %f <$Foo>
LOC 2 16
var %i i32
var %j i32
LOC 2 16
dassign %i 0 (constval i32 1)
dassign %j 0 (constval i32 2)
LOC 2 17
dassign %f 1 (addrof a64 %i)
LOC 2 18
dassign %f 2 (addrof a64 %j)
#inlining begin: FUNC bar
LOC 2 10
iassign <* i32> 0 (
iread a64 <* <$Foo>> 2 (addrof a64 %f 1),
constval i32 0)
#inlining end: FUNC bar
LOC 2 20
return (dread i32 %j)
}
Alias analysis does not know that the iassign will modify %j. The optimized code returns 2 instead of %j.