https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101941

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org

--- Comment #11 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #8)
> BTW, this one seems to have regressed with
> r12-2591-g2e96b5f14e4025691b57d2301d71aa6092ed44bc

There are 2 threads, both in ethread:

a.c.034t.ethread:  [1] Registering jump thread: (4, 5) incoming edge;  (5, 6)
normal (6, 7) nocopy; 
a.c.034t.ethread:  [2] Registering jump thread: (4, 6) incoming edge;  (6, 8)
nocopy; 

Both are correct.

We're basically eliding subsequent checks for the same thing:

=========== BB 4 ============
Imports: p_size_14  
Exports: p_size_14  
    <bb 4> :
    p_size_14 = __builtin_object_size (hash_subkey_8(D), 0);
    if (p_size_14 <= 15)
      goto <bb 5>; [33.00%]
    else
      goto <bb 6>; [67.00%]

4->5  (T) p_size_14 :   size_t [0, 15]
4->6  (F) p_size_14 :   size_t [16, +INF]

=========== BB 5 ============
p_size_14       size_t [0, 15]
    <bb 5> :
    __write_overflow ();


=========== BB 6 ============
Imports: p_size_14  
Exports: p_size_14  
p_size_14       long unsigned int VARYING
    <bb 6> :
    if (p_size_14 <= 15)
      goto <bb 7>; [0.04%]
    else
      goto <bb 8>; [99.96%]

Reply via email to