This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: What is wrong with my SSA (ICE in SSA name coalescing)?
- From: Ilya Enkovich <enkovich dot gnu at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 17 May 2013 17:44:15 +0400
- Subject: Re: What is wrong with my SSA (ICE in SSA name coalescing)?
- References: <CAMbmDYYko9PTAmMovjgt2Pk5JrVZFteGu4QdiGn3_Uq44_G8Ng at mail dot gmail dot com> <20130517123603 dot GV1377 at tucnak dot redhat dot com>
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