experimental unreachability analysys

Per Bothner per@bothner.com
Mon Oct 8 00:56:00 GMT 2012


I checked in an updated version of this patch.  This allowed me to
close some Savannah bugs as now fixed.

On 10/02/2012 12:24 PM, Per Bothner wrote:

> It does not handle separate compilation, in that any previously-compiled
> function is assume to terminate. (The intention is to use an annotation
> to mark if a function never-returns.)

It now handles separate compilation.  I created the special
Type.neverReturnsType to be a special "marker class"
gnu.bytecode.Type.NeverReturns.  Thus a method that never returns
returns gnu.bytecode.Type.NeverReturns.  It is easy for Kawa to
recognize this type.

> It does pretty well in my limited testing.  At this point my main concern
> is that it slows down compilation quite a bit.

When I looked again, it looks like the slowdown is quite modest,
so I'm not going worry about it.  Yes, a faster algorithm would
be nice, but current one is fast enough.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/



More information about the Kawa mailing list