llvm-project
f57f184f - [flang] only instantiate required symbols from parent modules (#193689)

Commit
6 days ago
[flang] only instantiate required symbols from parent modules (#193689) Currently lowering is instantiating (creating fir.address_of/hlfir.declare) for all module variables from host module and submodules (for instance, in the new host_module_variable_instantiation.f90 test, a fir.address_of was generated the unused var2 inside the procedure foo). This created a lot of noise (and in the worst cases, compile time performance issues), and also some extra complexity at least for OpenACC where the IR acc routine ended up referencing globals that are no actually needed, creating the need to copy them on the GPU or to have custom logic to ignore the globals. This patch addresses this by doing a visit of the parse tree to detect the required symbols and only instantiate those.
Author
Parents
Loading