RE: GCC 4.9 #32 special value?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



That would make more sense of all of the values were changed...
In my case, only the value 32 is changed.. That makes me think somewhere in GCC, the rtx CONST_INT(VOIDmode, 32) is already defined and the solution to prevent redefinition is to change the value to 28. But that also sound kind of ridiculous...


-----Original Message-----
From: Jeff Law [mailto:law@xxxxxxxxxx] 
Sent: Tuesday, January 26, 2016 17:24
To: Jens Vankeirsbilck <jens.vankeirsbilck@xxxxxxxxxxx>; gcc-help@xxxxxxxxxxx
Subject: Re: GCC 4.9 #32 special value?

On 01/26/2016 09:17 AM, Jens Vankeirsbilck wrote:
> Hi all
>
> While testing a GCC plugin I wrote, I came across something very strange.
> The plugin inserts extra code into a C++ program on the RTL level. The code that produces the "magic" is as follows:
>
> someMethod(){
> 	someInstructions()
> 	FOR_EACH_BB_FN(){
> 		someMoreInstructions()
> 	}
> 	evenMoreInstructions()
> }
>
> Now, the strange part:
> Within the "FOR_EACH_BB_FN" loop, I create and emit an insn that contains a CONST_INT(VOIDmode, 32) rtx.
> Once out of that "FOR_..." loop, the value of 32 gets changed to 28, for no apparent reason! I do not touch that emitted insn anymore, yet somehow the value of 32 is changed into 28.
> Also, this only happens with the value 32. I also create the same kinds of insn's with values like 8, 64 or 262144 and they hold there value.
>
> Can someone explain to me why this happens?
There's a structure sharing problem somewhere -- many nodes in the IL are shared.

jeff





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux