[all-commits] [llvm/llvm-project] 0a45d1: [flang] Do not instantiate runtime info globals in...

jeanPerier via All-commits all-commits at lists.llvm.org
Mon Feb 5 01:12:46 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0a45d172d3229074d414e1942d6bafa2b4ae9126
      https://github.com/llvm/llvm-project/commit/0a45d172d3229074d414e1942d6bafa2b4ae9126
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/test/Lower/OpenACC/acc-bounds.f90
    M flang/test/Lower/allocatable-polymorphic.f90
    M flang/test/Lower/nullify-polymorphic.f90

  Log Message:
  -----------
  [flang] Do not instantiate runtime info globals in functions (#80447)

Runtime globals are compiler generated globals injected in user scopes.
They are never referred to directly in lowering code, we only need th
fur.global for them. Yet lowering was creating hlfir.declare for them in
module procedures. In modern fortran apps, this blows up the generated
IR for nothing (Types with dozens of components, type bound procedures
and parents can create in the order of 10 000 runtime info globals to
describe them, if there is a 100 module procedure, that is that is a few
million operations generated and processed in each pass for nothing).




More information about the All-commits mailing list