Patch Name: PHSS_20205 Patch Description: s700_800 10.20 Fortran90 B.10.20.16 Cumulative Patch Creation Date: 99/11/12 Post Date: 99/12/02 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: FORTRAN90 B.10.20.16 Filesets: FORTRAN90.FORT90-PRG,B.10.20.16 FORTRAN90.FORT90-MAN,B.10.20.16 FORTRAN90.F90-JPN-E-MAN,B.10.20.16 FORTRAN90.F90-JPN-S-MAN,B.10.20.16 Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_20205 Symptoms: PHSS_20205: 01)JAGaa68030: Fix incorrect if/else in mmt.C which causes wrong answers 02)JAGaa68131: Move last value tracking into LOOP_TM_WHILE from LOOP_TM_LOOP 03)JAGaa63597: Merge in change from C for JAGaa68156 04)JAGaa68372: Improve reuse phase's Will_Fit_In_Cache analysis 05)JAGaa68375: Fix global serialization bug in MMT 06)JAGab16624: Fix assert during loop_recognition in wide mode 07)JAGab21232: Use PID to find call-site temps during inlining 08)JAGab50666: Fix register allocation for +autodbl4 code 09)JAGab63593: Pick up mempro.C fix from C group 10)JAGab68687: Fix infinite loop in data structure 11)JAGab70783: Allow uppercase shared memory key 12)JAGab70785: Improve F90 performance by re-using malloc'd areas 13)JAGab73992: Fix several prefetching problems 14)JAGab74031: Fix several prefetching problems 15)Update f90.1/fid.1 Japanese manpage translations 16)Fixed spelling error in f90 +usage 17)JAGab78759: Increased capacity of option -I table from 2000 bytes to 16000 bytes Defect Description: PHSS_20205: 01)JAGaa68030: Wrong answers generated at +O3 in the presence of inlining with a routine argument only being used in the inlined routine in an assignment. Resolution: Recompile with new compiler. 02)JAGaa68131: Wrong answers occur in a triple loop nest where the innermost loop is a zero trip while loop and the outer two loops are interchanged. Resolution: Recompile with new compiler. 03)JAGab63597: Inlining of a register variable can cause the compiler to assert. Resolution: Not an issue for fortran users. 04)JAGaa68372: HLO analyzes the "memory footprint" of a loop, to see if all the data accessed within the loop will fit in cache or not. In-cache loops are then optimized slightly differently than out-of-cache loops (interchange heuristic is different, no loop blocking occurs). In some cases, loops that were clearly in-cache were being thought to be out-of-cache, causing suboptimal optimization. This error was triggered by array references with one of the subscripts being a constant. Resolution: Recompile with new compiler. 05)JAGaa68375: An if statement around an assignment in a loop that is inlined causes the compiler to lose track of the assignment statement which can yield wrong answers. This problem only occurs at +O3 and higher. Resolution: Recompile with new compiler. 06)JAGab16624: Compiler asserts in IR_OPR_LTS() during loop _recognition in wide mode. WORKAROUND: Use '+Onolooptransform' or compile in narrow mode. Resolution: Recompile with new compiler. 07)JAGab21232: Compiler asserts in inl_inline.C after inlining a call that passes a call-site temp. Testcase gets wrong answers at +O3 +Oparallel. Both inlining and parallelization are required to make it fail. Resolution: Recompile with new compiler. 08)JAGab50666: Compiler asserts in the LLO when compilng +O3 +autodbl4. Resolution: Recompile with new compiler. 09)JAGab63593: When the argument to a function is also used to contain the return value of the function, the compiler can lose track of the relation and generate wrong answers in the presence of inlining. Occurs at +O3. Resolution: Recompile with new compiler. 10)JAGab68687: Loop nests with subloops that shared index variables could cause the compiler to go into an infinite loop at +O3. Resolution: Recompile with new compiler. 11)JAGab70783: The directive !$HP$SHARED_COMMON was being passed to the func 'below', for easy parsing, which caused uppercase shared memory key names to be made lowercase when shared memory segments were created. Resolution: Recompile with new compiler. 12)JAGab70785: Improve F90 performance by re-using the last malloc'd areas after it has been freed. Limitations: The maximum size of a re-usable area per thread is 64K + associated overhead. Cautions: The last malloc'd area (per thread) will not be freed until process termination. The saved area control structure may be defined as 'thread-private'. Thread- privacy is dependent upon compile-time switches -D_REENTRANT or -D_POSIX_C_SOURCE. Resolution: Recompile with new compiler. 13)JAGab73992: A prefetch directive using a runtime variable triggered a compiler internal error. Resolution: Recompile with new compiler. 14)JAGab74031: +DA1.1 +Odataprefetch triggered an internal consistency check when the target of an assignment needed to be prefetched. Resolution: Recompile with new compiler. 15)Update f90.1/fid.1 Japanese language manpage translations Resolution: Install new man pages. 16)Fixed spelling error in f90 +usage Resolution: Use +usage with new compiler. 17)JAGab78759: Error: Exceeded capacity of option -I table Resolution: Recompile with new compiler. SR: 0000000000 Patch Files: /opt/fortran90/bin/f90 /opt/fortran90/lbin/f90com32 /opt/fortran90/lbin/f90com64 /opt/fortran90/lib/nls/msg/C/f90.cat /opt/fortran90/lib/nls/msg/C/f90com.cat /opt/fortran90/lib/pa1.1/libblas.a /opt/fortran90/lib/libU77.a /opt/fortran90/lib/libp/libU77.a /opt/fortran90/lib/libF90.a /opt/fortran90/lib/libisamstub.a /opt/fortran90/lib/libisamstubs.a /opt/fortran90/contrib/man/man1.Z/fid.1 /opt/fortran90/share/man/man3.Z/datey2k.3f /opt/fortran90/share/man/man3.Z/idatey2k.3f /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/fsplit.1 /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/f90.1 /opt/fortran90/contrib/man/ja_JP.eucJP/man1.Z/fid.1 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/fsplit.1 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/f90.1 /opt/fortran90/contrib/man/ja_JP.SJIS/man1.Z/fid.1 what(1) Output: /opt/fortran90/bin/f90: HP-UX f90 19991018 (191220) B3907DB/B3909DB PHSS_20 205 B.10.20.17 HP F90 v2.3 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lbin/f90com32: HP F90 v2.3 HP-UX SLLIC/OPTIMIZER UX.11.01.96 (ROSE): 11/16/98 HP aC++ B3910B A.01.19.02 Classic Iostream Library HP aC++ B3910B A.01.19.02 Language Support Library Ucode Code Generator - UX11.01.04(GS IB4) (PACG - No vember 16, 1998) HP-UX f90com32 19991112 (160757) B3907DB/B3909DB PH SS_20205 B.10.20.17 Copyright (c) 1993-1999 EPCL. All Rights Reserved. EPC Fortran-90 Version FFE13.13(S) HP:230699:144324 Ucode-2 - UCODE2_UX11.01_STABLE(v2.1) (October 19, 1 998) High Level Optimizer - UX.11.00.981019 (UX11.01-CURR ENT) [-DHLO_RELEASE +noeh -z +O2] - 11-Oct-1 999.15:02 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lbin/f90com64: HP F90 v2.3 HP-UX SLLIC/OPTIMIZER UX.11.01.96 (ROSE): 11/16/98 HP aC++ B3910B A.01.19.02 Classic Iostream Library HP aC++ B3910B A.01.19.02 Language Support Library Ucode Code Generator - UX11.01.04(GS IB4) (PACG - No vember 16, 1998) HP-UX f90com64 19991112 (171621) B3907DB/B3909DB PH SS_20205 B.10.20.17 Copyright (c) 1993-1999 EPCL. All Rights Reserved. EPC Fortran-90 Version FFE13.13(S) HP:230699:144324 Ucode-2 - UCODE2_UX11.01_STABLE(v2.1) (October 19, 1 998) High Level Optimizer - UX.11.00.981019 (UX11.01-CURR ENT) [-DHLO_RELEASE +noeh -z +O2] - 11-Oct-1 999.15:02 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lib/nls/msg/C/f90.cat: None /opt/fortran90/lib/nls/msg/C/f90com.cat: None /opt/fortran90/lib/pa1.1/libblas.a: HP-UX 11.0 pa32 BLAS Library (PA1.1 version) (991112 .1754) /opt/fortran90/lib/libU77.a: HP-UX libU77.a 19991018 (191245) B3907DB/B3909DB PH SS_20205 B.10.20.17 /opt/fortran90/lib/libp/libU77.a: HP-UX libU77_p.a 19991018 (191300) B3907DB/B3909DB PHSS_20205 B.10.20.17 /opt/fortran90/lib/libF90.a: None /opt/fortran90/lib/libisamstub.a: HP-UX libisamstub.a 19991018 (182712) B3907DB/B3909 DB PHSS_20205 B.10.20.17 /opt/fortran90/lib/libisamstubs.a: HP-UX libisamstub.a 19991018 (182712) B3907DB/B3909 DB PHSS_20205 B.10.20.17 /opt/fortran90/contrib/man/man1.Z/fid.1: None /opt/fortran90/share/man/man3.Z/datey2k.3f: None /opt/fortran90/share/man/man3.Z/idatey2k.3f: None /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/fsplit.1: None /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/f90.1: None /opt/fortran90/contrib/man/ja_JP.eucJP/man1.Z/fid.1: None /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/fsplit.1: None /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/f90.1: None /opt/fortran90/contrib/man/ja_JP.SJIS/man1.Z/fid.1: None cksum(1) Output: 827962143 356352 /opt/fortran90/bin/f90 307255430 12070912 /opt/fortran90/lbin/f90com32 163344613 12115968 /opt/fortran90/lbin/f90com64 363267132 12468 /opt/fortran90/lib/nls/msg/C/f90.cat 199616790 105743 /opt/fortran90/lib/nls/msg/C/f90com.cat 1170708626 1490660 /opt/fortran90/lib/pa1.1/libblas.a 1951736572 132492 /opt/fortran90/lib/libU77.a 1194474427 150336 /opt/fortran90/lib/libp/libU77.a 2694349503 4048400 /opt/fortran90/lib/libF90.a 3495638734 4792 /opt/fortran90/lib/libisamstub.a 3495638734 4792 /opt/fortran90/lib/libisamstubs.a 3495888841 2921 /opt/fortran90/contrib/man/man1.Z/fid.1 603528306 721 /opt/fortran90/share/man/man3.Z/datey2k.3f 3944501513 781 /opt/fortran90/share/man/man3.Z/idatey2k.3f 1415916253 1747 /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/ fsplit.1 3801186275 21528 /opt/fortran90/share/man/ja_JP.eucJP/ man1.Z/f90.1 1506797708 3356 /opt/fortran90/contrib/man/ja_JP.eucJP/ man1.Z/fid.1 263086636 1751 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/ fsplit.1 3052519720 21596 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/ f90.1 473736285 3358 /opt/fortran90/contrib/man/ja_JP.SJIS/man1.Z/ fid.1 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None Patch Package Size: 29920 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_20205 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_20205.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_20205. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHSS_20205.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_20205.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None