[LLVMdev] ValueMapper question: no type mapping for GlobalValue?

Michael Muller mmuller at enduden.com
Fri Jan 13 09:26:31 PST 2012


=?ISO-8859-1?Q?Rafael_=C1vila_de_Esp=EDndola?= wrote:
> > I can reproduce this consistently, but only under an extremely large pile of
> > code :-)  I haven't tried to strip it down to minimal a test case yet, but I
> > will.  One salient difference with the code you've provided is that in my
> > code, @a is a struct type.  However, changing the example to use a minimal
> > structure doesn't trigger the assertion failure.
> 
> Is the example something you can share even in unreduced for?

As it turns out, the root cause was that I had a GlobalVariable that wasn't
being copied to an extern in the new module under some circumstances, but was
being used directly.  I would have expected the verifier pass to catch this,
but it looks like we're probably not using the verifier except when running
non-optimized + debug, which I never tried.

I'll recreate this situation just to verify that the verifier pass identifies
the problem, if it doesn't I'll proceed from there but I'm currently assuming
the problem is entirely ours :-)

If you think the behavior of the ValueMapper is incorrect in this situation,
I'd prefer to furnish you with a minimal test case - the unreduced form
involves checking out and building a specific revision of the Crack compiler
and running one of the tests in "native" (AOT compile) mode.

Thank you for looking into this :-)

> 
> > But I'm still curious: why doesn't the value mapper do type mapping on global
> > variables?
> 
> I am not sure. I would probably have to look at a failing example to
> know what is going on.
> 
> Cheers,
> Rafael
> 


=============================================================================
michaelMuller = mmuller at enduden.com | http://www.mindhog.net/~mmuller
-----------------------------------------------------------------------------
We are the music-makers, and we are the dreamers of dreams
 - Arthur O'Shaughnessy
=============================================================================



More information about the llvm-dev mailing list