IBM Support

IV22269: BRANCH HINTS WITH EXECUTION_FREQUENCY IGNORED

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • When a client specifically uses the
    _Pragma("execution_frequency(very_low)"), the compiler should
    respect it and set the hint bits accordingly.
    
    But, below is a section of a listing where the compiler was
    ignoring the user pragma:
    
    Listing file:
    
    
         | 000000                           PDEF
    sqlv_dec31_add_dec31(unsigned char *, const unsigned char *
    const, size_t)
         | 000000                           AKA
    sqlv_dec31_add_dec31__FPUcCPCUcUl
       36|                                  PROC
    sum,addend,addendLength,gr3-gr5
        0| 000000 std      FBE1FFF8   1     ST8
    #stack(gr1,-8)=gr31
     1444| 000004 cmpldi   28250010   1     CL8       cr0=gr5,16
     1444| 000008 ld       E8C20008   1     L8
    gr6=.$STATIC(gr2,0)
     1444| 00000C rlwinm   54A51E38   1     RN4       gr5=gr5,3,0xF8
     1444| 000010 ldx      7C06282A   1     L8
    gr0=$STATIC(gr6,gr5,0)
     1444| 000014 bc       41810018   1     BT
    CL.141,cr0,0x10/lgt,taken=50%(0,0) <---- Ignored here
     1444| 000018 mtspr    7C0903A6   1     LCTR      ctr=gr0
     1444| 00001C bcctr    4E800420   1     BA        ctr,*11182,147
    
    The indicated branch above is marked 50/50, but should be
    marked as taken rarely.
    

Local fix

  • n/a
    

Problem summary

  • USERS AFFECTED:
    Anyone using the pragma to indicate cold branches that are
    simple enough to transform into a SEL instruction are affected
    by this issue.
    TPO must be involved (-O3 or above).
    
    PROBLEM DESCRIPTION:
    pragma execution_frequency(very_low) is getting misplaced by
    TPO causing sub-optimal code-gen
    

Problem conclusion

  • The issue has been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV22269

  • Reported component name

    XL C/C++ AIX

  • Reported component ID

    5724X1300

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-06-07

  • Closed date

    2012-07-05

  • Last modified date

    2012-07-05

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IV25666 LI76947

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5724X1200

Applicable component levels



Document information

More support for: XL C for AIX

Software version: 11.1

Reference #: IV22269

Modified date: 05 July 2012