Failing typeflow responsibility assertions

Gary Benson gbenson at redhat.com
Thu May 22 02:29:45 PDT 2008


Hi Tom,

I'm using LLVM, a library which (amongst other things) contains
compiler backends for several platforms.  My original plan was to
generate LLVM IR from one of the compilers' IRs but the problem
with that is that LLVM IR is not assembly language -- assumptions
embedded in C1 and C2 don't hold and working around each one is
time consuming and hacky.  It might take me a month to make the
register allocator cope with not having registers -- and until I
had a working JIT there's no guarantee I wouldn't run across a
terminal problem.

Cheers,
Gary

Tom Rodriguez wrote:
> I'm curious why you are spending time writing a new java compiler
> front end instead of replacing the back end of c1 or c2.  Writing
> and maintaining a new front end will be a bunch of work and it
> doesn't seem necessary.  You should be able to generate code
> starting either from C1 or C2's high level IR without that much
> difficulty.  I know of licensees that do exactly that.
> 
> tom
> 
> Gary Benson wrote:
> > Hi all,
> > 
> > There's loads of bits in c2 that look like this:
> > 
> >   bool will_link;
> >   ciInstanceKlass* klass = 
> >   iter().get_klass(will_link)->as_instance_klass();
> >   assert(will_link, "_new: typeflow responsibility");
> > 
> > I'm doing the same in the JIT I'm writing, but I keep on failing
> > these assertions.  Do I have to do something to tell the
> > CompileBroker not to feed me methods full of unloaded stuff?
> > Oh, and I'm using -Xmixed.
> > 
> > Cheers,
> > Gary

-- 
http://gbenson.net/



More information about the hotspot-compiler-dev mailing list