What problems have been fixed in PGI 2019?

Each release of the PGI compilers brings a number of technical corrections to problems discovered by PGI and by users. Submit problems found using our online technical support request form. PGI refers to all such reports as Technical Problem Reports , or TPRs.

The following table is a list of problems that have been fixed in each release. Descriptions as provided may be incomplete due to proprietary nature of the sample code. In such cases simple replacement examples may not be available.

Note: ICE stands for Internal Compiler Error.

TPR Version Affected
Symptoms /
27104 19.5 Accelerator Undefined reference to __pgi_ldg_unknown
Corrected the compiler to only use ldg for supported data types
27102 19.5 Accelerator Unmatched prototype for acc device routine
Corrected a type mismatch in the compiler
27025 19.5 Accelerator Private array on worker loop isn't actually private
Corrected an indexing error in the accelerator code generator
26897 19.5 Accelerator Application gets error "cuModuleGetFunction returned error 500: Not found" due to missing reduction
Corrected the code generation for reductions
26895 19.5 All Divide by zero error when calling C++ random number generator from Fortran code
Corrected the interaction between x87 code and SSE code
26335 19.5 Accelerator Module array variable initialization not parallelizing in "kernels" region.
The compiler now generates parallel code for array variable initialization
24150 19.5 Accelerator Severe error on OpenPOWER "Missing branch target block"
Implemented subkernels which fixed this issue
22574 19.5 Accelerator ICE "Load of NULL Symbol" when save is used in a routine
Corrected the compiler to statically allocate SAVE data on the GPU
22336 19.5 Accelerator User code gets PTX error with -g
Fixed in CUDA 8.0
19219 19.5 CUDA Fortran Allow user to manage parameter arrays
Enhanced the compiler to create statically initialized data on the device
22549 19.4 Accelerator OpenACC application exits data within another data region "cuMemcpyDtoHAsync returned error 1: Invalid value"
Corrected the runtime
27064 19.4 Fortran Using too many assign statements causes pgf902-llvm to segfault
Corrected the compiler to properly allocate tables for ASSIGN
27054 19.4 Fortran Problem compiling certain OpenMP atomic captures LLVM compilers
Corrected the compiler to handle all cases of atomic capture
26987 19.4 Fortran LLVM ICE with -Msave
Corrected the compiler to properly generate names for static objects
26979 19.4 Accelerator pgnvd needs to add "--c++14" to "cicc" (-ta=tesla:nollvm) with GNU 7.x or later
Enhanced the localrc handling to use different compilers
26906 19.4 Fortran Application regression in pointer assignment to extended derived type
Corrected the handling of dummy argument descriptors
26893 19.4 Fortran LLVM ICE unsafe type for inttoptr32
Corrected the compiler to pass subroutine pointers by reference
26840 19.4 All General protection fault with -tp nehalem
Corrected the code generator to properly load long constants on older architectures
26652 19.4 Fortran Infinite recursive loop process_final_procedures inside f90 runtime
Corrected the compiler to correctly generate layout descriptors for type-bound procedures
26558 19.4 All Missing DWARF for allocatable arrays on OpenPOWER
Added DWARF support for allocatable arrays to LLVM compilers
26281 19.4 Accelerator GPU and CPU maxval reduction produced different values
Corrected the accelerator maxval reduction
26257 19.4 Accelerator Using maxval over multiple dimensions within acc loop yields incorrect values
Same as TPR26281
26002 19.4 Fortran Using shared libraries segfaults when a function is called.
Enhanced the layout descriptor to work in shared libraries
25988 19.4 All Add .note.GNU-stack ELF section
Implemented support to prohibit executing code on the runtime data stack
25844 19.4 Fortran Applications segfault, reading from null address in eval_trees.f90
Corrected the compiler to better manage descriptors
23851 19.4 Accelerator Overflow in index address calculation
Corrected the compiler optimization to do 32-bit address computations
23242 19.4 Accelerator OpenACC kernels with array syntax shows bizarre behavior
Added an information message to dispel the confusion
23238 19.4 Accelerator OpenACC request for C++ support for isinf
Implemented isinf.
23085 19.4 Accelerator OpenACC application shows exit data segfaults
Corrected the runtime
22703 19.4 Accelerator OpenACC PGI extension "deviceid" gets runtime error "Invalid handle"
Corrected the runtime
26950 19.3 Fortran Constant argument parameter gets written even when guarded
Tightened the compiler rules for optimizing conditional moves
26889 19.3 Accelerator CUDA changed cudaPointerAttributes struct in CUDA 10; CUF needs to follow
Updated the CUF module with the new layout
26885 19.3 Fortran FPE with write
Avoided generating a vcvttsd2si instruction because it causes a floating point exception
26878 19.3 Fortran Value does not match function result type i64
Corrected the implementation of BIND( C ) for i64 function results
26877 19.3 Fortran ICE with ILM file with -Mllvm
Corrected the handling of module files for compilers using the LLVM code generator
26817 19.3 Accelerator A struct member int as a kernel loop size prevents parallel execution
Improved the analysis of loop index expression
26784 19.3 Accelerator Run time error "ALLOCATE: copyin Symbol Memcpy FAILED:13" when compiling with "-tp knl"
Removed device code support for Knights Landing host systems.
26718 19.3 Accelerator Generated gpu code omits comparison within MERGE intrinsic
Corrected a bug in the optimizer
26596 19.3 Accelerator ICE "parse integer constant must have integer type"
Corrected a type error in the compiler
25243 19.3 Accelerator Using type members in host_data mangles the type's parent address
Corrected ordering of mangling for array descriptors
24145 19.3 Accelerator ICE "size_of: attempt to get size of assumed size character"
Corrected the compiler to handle this case
24041 19.3 Accelerator Intercept cudaSetDevice calls
Implemented synchronization between cudaSetDevice and acc_set_device_num
22166 19.3 Accelerator User code gets wrong answers when using maxval within another loop
Corrected the handling of this reduction
19674 19.1 Fortran ICE "Errors in Lowering" with contained subroutine in module
Corrected the compiler
20337 19.1 C/C++ OSX gives directory not found warning when linking with -fPIC
Remove the obsolete library libso from the command line
20425 19.1 C/C++ User requests PGI-compiled MAGMA library
The MAGMA libraries are available for download on pgicompilers.com
24234 19.1 CUDA Fortran Managed memory at module scope gets undefined references
Add symhandle copyin and copyout routines to the cudafor runtime
24263 19.1 Fortran ICE "get_const_from_ast: can't get const value"
Handle more cases of constant scalar expressions in parameter statements
24317 19.1 Accelerator GPU code generation is missing zero-trip test causing wrong answers in user code
Corrected the code generator
25041 19.1 Fortran Performance differences with pointers in structs and array syntax
Enhanced the compiler pointer disambiguation code to better handle structs
25957 19.1 Accelerator OpenACC RFE: recognize __finite routines
26016 19.1 Fortran An include file causes a line length failure when the source file is deep in the source tree
Updated the compiler to accommodate much longer paths
26065 19.1 Fortran Interface constructor fails when renaming
Corrected the compiler to recognize the case where a constructor is being renamed
26066 19.1 Accelerator With -ta=multicore, ICE: size_of: attempt to size assumed size character 0
Corrected the compiler to handle the size_of cases when compiling for multicore
26097 19.1 C/C++ Using -fPIC, a matrix matrix multiply causes an ICE
Implemented GCC style -mask=att support
26187 19.1 Fortran Support OpenMP 4.0 SEQ_CST qualifier
Added support for SEQ_CST to the compiler
26191 19.1 Accelerator OpenACC: runtime failure temp array not present due to -Mallocatable=03
With -Mallocatable=03, the runtime now recognizes that temps are created on the device
26274 19.1 Fortran ICE: interf:new_symbol not found with submodules
Corrected the internal handling of separate module procedures and dummy arguments
26282 19.1 Accelerator Using managed memory with Thrust causes error header file errors
Extend the C solution for using Thrust with OpenACC to C++
26289 19.1 Accelerator Managed memory getting undefined reference to pgi_delete_managed in device code
Corrected how the compiler handles passing pointers to memory-allocation functions
26300 19.1 Fortran ICE: compiling libxc-3.0.0 :: Errors in Lowering
Corrected the compiler to handle complex dummy parameters to c_associated
26327 19.1 Fortran ICE: missing subtype for pointer datatype 68
Corrected the handling of a CHARACTER type with the same name as its enclosing subprogram
26366 19.1 C/C++ Code fails with a Boost include
Prevent the compiler from generating code in a non-evaluated context
26376 19.1 C/C++ Compiler fails with an internal error
Corrected the internal error in the compiler
26403 19.1 Fortran Found a problem with derived type data initialization
Corrected the compiler to correctly handle complex cases of type-descriptor initialization
26410 19.1 Fortran Segfault in type-bound function with pointer return value
Corrected the compiler to track dummy argument descriptors
26470 19.1 Accelerator C++ code fails at run time
Corrected the compiler to handle cases where arrays assigned in a loop are arriving to the kernel as live
26540 19.1 Fortran ICE: Operand type mismach for AVX instructions
When using -Mlarge_arrays, change the compiler to carefully track the types used to values
26550 19.1 Accelerator acc kernel from std::thread has an invalid context
The code worked well with -mp, so in PGI 19.1, all OpenACC support libraries are compiled with -mp
26552 19.1 Fortran A derived type C binding fails for a C++ object
Pass interface objects by value, not by reference; note pointers are passed by value as addresses
26588 19.1 C/C++ Missing -Meh_frame option for OpenPOWER
Implemented the -Meh_frame and -Mnoeh_frame options for OpenPOWER
Click me
Cookie Consent

This site uses cookies to store information on your computer. See our cookie policy for further details on how to block cookies.