[all-commits] [llvm/llvm-project] 31d9ad: [flang][Lower] Explicitly instantiate all template...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Fri Jan 31 04:55:28 PST 2025


  Branch: refs/heads/users/kparzysz/spr/utils-template-instantiations
  Home:   https://github.com/llvm/llvm-project
  Commit: 31d9ad8b7e04781052f6c684fe890bbfc6847433
      https://github.com/llvm/llvm-project/commit/31d9ad8b7e04781052f6c684fe890bbfc6847433
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-01-31 (Fri, 31 Jan 2025)

  Changed paths:
    M flang/include/flang/Lower/Support/Utils.h
    A flang/include/flang/Lower/Support/UtilsInstantiations.def
    A flang/include/flang/Lower/Support/print-instantiation-declarations.py
    M flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/Support/Utils.cpp

  Log Message:
  -----------
  [flang][Lower] Explicitly instantiate all templates from Utils.h

This is intended to reduce the memory usage while compiling flang sources.
Specifically, this reduced the peak memory use when compiling OpenMP.cpp
(on my machine) from 4.9g to 3.6g.

The change was to only leave template declarations in the header file and
explicitly instantiate every case that was previously instantiated
implicitly. If a new implicit instantiation appears later on, it will
cause a compilation error (and the explicit instantiation will need to be
added manually).

Most of the instantiation declarations are generated by an included python
script (about 6000 cases). The remaining cases (~1000) are listed
explicitly.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list