IBM Support

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

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

    LI75853

  • Reported component name

    XL C/C++ SLES10

  • Reported component ID

    5724U8300

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-01-27

  • Closed date

    2011-01-27

  • Last modified date

    2011-01-27

  • 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/C++ SLES10

  • Fixed component ID

    5724U8300

Applicable component levels

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
15 October 2021