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

Duncan Sands baldrick at free.fr
Thu Nov 15 02:34:41 PST 2012


Hi Michael, did anything ever happen with this?

Ciao, Duncan.

On 17/01/12 14:45, Michael Muller wrote:
>
> So it looks like the verifier doesn't catch this condition - I think it
> should.  The attached program reproduces the problem - verification succeeds,
> but the linker fails with a type assertion.
>
> BTW, if no one has the bandwidth to work on this I'm willing to attempt a fix,
> assuming that you agree that the verifier should discover this condition.
>
> Michael Muller wrote:
>>
>> =?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
>> =============================================================================
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
>
> =============================================================================
> michaelMuller = mmuller at enduden.com | http://www.mindhog.net/~mmuller
> -----------------------------------------------------------------------------
> There is no way to find the best design except to try out as many designs as
> possible and discard the failures. - Freeman Dyson
> =============================================================================
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list