This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: What is wrong with my SSA (ICE in SSA name coalescing)?


2013/5/17 Jakub Jelinek <jakub@redhat.com>:
> On Fri, May 17, 2013 at 04:03:25PM +0400, Ilya Enkovich wrote:
>> Here is GIMPLE after my instrumentation. Instrumentation
>> statements/expressions are marked with +++
>>
>> test ()
>> {
>> +++<unnamed type> __tmp.0;+++
>>   char * name;
>>   int D.1761;
>>   int _5;
>>
>>   <bb 10>:
>> +++__tmp.0_9 = __length_1;+++
>> +++__tmp.0_8(ab) = __zero_length;+++
>
> I think this is wrong, you are using the same underlying
> var __tmp.0 for two values concurrently when at least one of them
> is (ab).  If _9 is not (ab), why don't you use just _9 (anon SSA_NAME),
> or a different underlying decl for that?

Actually when I create this SSA_NAME I do not know all its usages (and
therefore do not know if it is abnormal). The only reason to use
underlying var for SSA names was opportunity to easily find them in
GIMPLE dump by name. I still do not fully understand what restrictions
are implied by abnormal edges. Will it be OK to use anon SSA_NAMES
here for all new values?

Ilya

>
>         Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]