IBM Support

LI80750: INTERNAL COMPILER ERROR WHEN COMPILING WITH -QSMP=OMP

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

APAR status

  • Closed as program error.

Error description

  • An internal compiler error occurs with the following test case
    with device offloading disabled:
    
    ====COMPILE COMMAND:
    xlc_r -qsmp=noopt  test.c  -c
    
    ====TESTCASE:
    $ cat test.c
    # define WIDTH      1000
    # define HEIGHT     1000
    #define SZ ((HEIGHT+2) * (WIDTH+2))
    #define IDX(i,j) (((i)*(WIDTH+2))+(j))
    
    double *Temperature_previous;
    
    void initialize(){
      int i, j;
    
    #pragma omp target map(from:Temperature_previous[0:SZ])
      {
          #pragma omp teams distribute
          for(i = 0; i <= HEIGHT+1; i++)
            for (j = 0; j <= WIDTH+1; j++)
              Temperature_previous[IDX(i,j)] = 0.0;
    
          #pragma omp teams distribute
          for(i = 0; i <= HEIGHT+1; i++)
            Temperature_previous[IDX(i,0)] = 0.0;
      }
    }
    $
    
    =====ACTUAL OUTPUT:
    Compiler produces an internal compiler error
    
    =====EXPECTED OUTPUT:
    Should compile fine
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users compiling with -qsmp=omp may be affected by this issue.
    
    PROBLEM DESCRIPTION:
    The submitted test case exposes a user error when compared to
    the OpenMP 4.5 specification.
    This is a non-conforming program because of the following
    restriction on the teams regions:
    
    
    "If specified, a teams  construct must be contained within a
    target  construct. That target
    19 construct must contain no statements, declarations or
    directives outside of the teams  construct."
    
    
    The target region in the initialize function contains more than
    one teams region in it.
    

Problem conclusion

  • The compiler has been modified to catch the above user error and
     emit a diagnostic message.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI80750

  • Reported component name

    XL C/C++ LINUX

  • Reported component ID

    5725C7310

  • Reported release

    G11

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-04-17

  • Closed date

    2019-04-18

  • Last modified date

    2019-04-18

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

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

    IJ16752

Fix information

  • Fixed component name

    XL C/C++ LINUX

  • Fixed component ID

    5725C7310

Applicable component levels



Document information

More support for: XL C/C++ for Linux

Software version: G11

Reference #: LI80750

Modified date: 18 April 2019