LI77646: COMPILER HANG WITH -QIPA=LEVEL=2
Fixes are available
XL C/C++ for Linux Fix Pack 8 (October 2015 Update) for 12.1
XL C/C++ for Linux Fix Pack 4 (October 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 5 (December 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 6 (February 2014 Update) for 12.1
XL C/C++ for Linux Fix Pack 7 (May 2014 Update) for 12.1
Closed as program error.
The compiler hangs when compiling a large test case and when using the -qipa=level=2 option. The issue occurs with test cases that involve alot of pointer analysis.
The workaround is to use -qipa=level=1
USERS AFFECTED: Users using ipa=level=2 or -O5 to compile their programs might be affected by this issue. PROBLEM DESCRIPTION: The problem is due to the larger number of symbols introduced for pointer analysis in the newer compilers when compared to before. In the newer compilers, the conservative mod/use sets contains all the address taken symbols, including those member symbols that are only used in the initilaization, while only their owner symbols are included in the previous releases. For this case, there are many such pointer type adress taken member symbols. So, a large number of these pointers are imported for inter-procedural pointer analysis, which slow down significantly the pointer analysis.
In pointer analysis, a threshold is added to allow the pointer targets to grow up to a certain limit when meeting two pointer lattices. If the threshold is exceeded, the target set becomes bottom.
Reported component name
XL C/C++ FOR LI
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
XL C/C++ FOR LI
Fixed component ID
Applicable component levels
RC10 PSN IV38460