IBM Support

IZ91491: QIPA LEVEL 2 AND QHOT LEVEL 1 LEAD TO HANG

Fixes are available

January 2011 PTF for XL C/C++ for AIX, V11.1
May 2011 PTF for XL C for AIX, V11.1
May 2011 PTF for XL C/C++ for AIX, V11.1
August 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 PTF for XL C/C++ for AIX, V11.1
January 2012 PTF for XL C for AIX, V11.1
January 2012 PTF for XL C/C++ for AIX, V11.1
April 2012 PTF for XL C for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C for AIX Fix Pack 24 (September 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
January 2011 PTF for XL C for AIX, V11.1
August 2011 PTF for XL C for AIX, V11.1
November 2011 PTF for XL C for AIX, V11.1
July 2012 PTF for XL C for AIX, V11.1
XL C for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 22 (September 2015 PTF) for 11.1

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When trying to compile a small test case using -qhot and/or
    -qipa, compilation hangs. It appears that during
    compilation, the compiler becomes trapped within an infinite
    loop.
    
    Test case hangs in the same location when the following
    options are used:
     1) -qhot=level=1
     2) -qhot=level=0 -qipa=level=2
    
    
    ========== Test Case:
    void
    rounds(unsigned short *a,unsigned short *b,unsigned int r)
    {
      unsigned short ai, bi, aandb, axorb, carry, z;
      int i;
    
      while (r > 0) {
        /* add x[0....] into x[1....]: */
        carry = 0;
        for (i = 0;i < 32;++i) {
          ai = a[i];
          bi = b[i];
          aandb = ai & bi;
          axorb = ai ^ bi;
          b[i] = axorb ^ carry;
          carry &= axorb;
          carry |= aandb;
        }
    
        /*rotate x[0....] upwards by 11 bits, and swap 0.0.. with
    0.1..:*/
        i = 0;
        ai = a[i];
        do {
          z = ((ai >> 4) & 0x0f0f) | ((ai & 0x0f0f) << 4);
          i = (i + 11) & 31;
          ai = a[i];
          a[i] = z;
        } while (i != 0);
    
        /*xor x[1....] into x[0....], and swap 1...0 with 1...1:*/
        for (i = 0;i < 32;++i) {
          bi = b[i];
          a[i] ^= bi;
          b[i] = ((bi >> 1) & 0x5555) | ((bi & 0x5555) << 1);
        }
    
        --r;
      }
    }
    =====================
    

Local fix

  • Compile with:
    "-qhot=level=0" or
    "-qhot=level=0 -qipa=level=0" or
    "-qhot=level=0 -qipa=level=1"
    
    
    Another workaround is to either increase or decrease the limit
    on the second 'for' loop. Ensure that the limit is not 32.
    

Problem summary

  • PROBLEM DESCRIPTION:
    There is an infinite loop in the compiler when attempting to
    build the Acyclic DDG, used by loop fusion.
    
    USERS AFFECTED:
    Any users using -qhot.
    

Problem conclusion

  • Problem should be fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ91491

  • Reported component name

    XL C FOR AIX

  • Reported component ID

    5724X1200

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-01-03

  • Closed date

    2011-01-03

  • Last modified date

    2011-01-05

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

    IZ86837

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

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5724X1200

Applicable component levels

[{"Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH2K","label":"XL C for AIX"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1"}]

Document Information

Modified date:
06 October 2021