Pull 2019-11-07T08-16 Recent NVIDIA Changes #823
1) Added two flag bits ELEMENTAL and RECUR to the backend, they already exist in the front end. 2) Changed the front end to pass "elemental" to the back end for ST_ENTRY. 3) Changed the back end to pickup and set PURE/ELEMENTAL/RECUR flag for ST_ENTRY correspondingly. 4) Changed the bridge to retrieve those bits when setting up the spFlags when emitting subprogram debug metada. 5) Changed the back end dump routine dsym() to display the two added flags.
This change adds necessary infrastucture to emit proper call instructions for JSRA ILIs. Variadic argument functions are still not supported.
In print_entry_subroutine(), use the generic dummy type for procedure argument descriptors. Otherwise, the compiler may generate the wrong argument type when we invoke -Mnolarge_arrays.
Allow block statements in the scope of OpenMP directives under XBIT(59,8). Modify a macro used in parallel code.
Fix a symbol table flag overloading problem with ASSOC_PTR and PTR_TARGET flags. Use a new bit flag in the Fortran back-end called PTR_INITIALIZER to distinguish the overloaded cases. Also discovered an unrelated bug with inject_arg() in semfin.c. Make sure we set the arguments' storage class to SC_DUMMY.
Fix a fault with procedure dummy arguments and interfaces. Create a unique symbol for interfaces that are used in procedure pointer declarations because the LLVM bridge uses the interface as well as the argument ILI to generate arguments at a procedure pointer call. An interface symbol might turn into a procedure symbol in the back-end. Create a unique symbol so we can mark it with a new field called IS_PROC_PTR_IFACE. This field says that the symbol is used as an interface to a procedure pointer. When the bridge sees this field set, it knows to generate a closure pointer as the last argument at the call-site. This bug fix addresses Flang issue #577.
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments.