IV36987: INEFFICIENT CODE FOR TRIVIAL VECTOR CONSTANTS

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • The compiler generates in-efficient code for trivial vector
    contants.
    
    eg:
    $ cat test.cpp
    const vector signed int zeros = { 0,0,0,0 };
    
    extern "C" vector signed int vec_zeros()
    {
        return zeros;
    }
    
    $ cat test.lst
    VR's set/used:   --s- ---- ---- ----  ---- ---- ---- ----
        | 000000                           PDEF     vec_zeros
       3|                                  PROC
       5| 000000 ld       E8620008   1     L8
    gr3=.+CONSTANT_AREA(gr2,0)
       5| 000004 lxvd2x   7C401E99   1     VLQD
    vs34=zeros(gr3,0)
       6| 000008 bclr     4E800020   1     BA        lr
    
    $
    
    
    It should be generating code such as:
       21| 000040 xxlxor   F04004D7   1     VXOR      vs34=vs32,vs32
       22| 000044 bclr     4E800020   1     BA        lr
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users who have test cases with trivial vectors of zeros.
    
    PROBLEM DESCRIPTION:
    The compiler generates inefficient code for trivial vector of
    zeros, when this vector is defined as a global variable.
    

Problem conclusion

  • The compiler has been fixed so that once the zero vector is
    determined to be stored in the constant area, code is added to
    retrieve the zero vector.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV36987

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-02-19

  • Closed date

    2013-06-17

  • Last modified date

    2013-06-17

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

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

    LI77421 LI77658

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5725C7100

Applicable component levels

  • RC10 PSY U860046

       UP C



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

XL C for AIX
Compiler

Software version:

12.1

Reference #:

IV36987

Modified date:

2013-06-17

Translate my page

Machine Translation

Content navigation