Hi.
I ran the flow-insensitive analysis again for ECOOP and saw that in
some cases, e.g. antlr/Reader it generates invalid code: The programs
throw NPEs. Now this is pretty odd, given that the flow-insensitive
analysis only disables shadows, something that usually cannot trigger
a NPE.
It turns out that the culprit must be one of the intraprocedural
optimizations that I used to apply right after weaving (see
OptFlowInsensitiveAnalysis), in this order:
CopyPropagator
ConstantPropagatorAndFolder
OptimizedNullCheckEliminator
InstanceOfEliminator
ConditionalBranchFolder
InstanceOfEliminator
UnreachableCodeEliminator
UnusedLocalEliminator
I have yet to figure out, which one it is but I suspect that it is one
of the newer ones like the null-check eliminator or the instanceof
eliminator.
I do not really need to run those optimizations if the flow-sensitive
stage is not active, so I just disabled them for now (applying the
optimizations that are enabled by default, only).
Nevertheless, I think it's something we should fix before a Soot release.
Assuming that this won't happen before next Friday, can we agree on
"1.2.2" being the version number for the next abc release? Just so
that I can tell people something in my talk...
Thanks a lot and apologies for not being able to be too helpful with
the OOPSLA benchmarks. If I just had more time...
Eric
-- Eric Bodden Sable Research Group McGill University, Montréal, CanadaReceived on Thu Jul 26 2007 - 23:32:41 BST
This archive was generated by hypermail 2.2.0 : Fri Jul 27 2007 - 17:30:09 BST