[all-commits] [llvm/llvm-project] d68c73: [flang] Use precompiled headers in Frontend, Lower...

Kajetan Puchalski via All-commits all-commits at lists.llvm.org
Wed Apr 30 03:47:19 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d68c732473a12f2fba495baebd7094b25bdfdce7
      https://github.com/llvm/llvm-project/commit/d68c732473a12f2fba495baebd7094b25bdfdce7
  Author: Kajetan Puchalski <kajetan.puchalski at arm.com>
  Date:   2025-04-30 (Wed, 30 Apr 2025)

  Changed paths:
    M flang/lib/Evaluate/CMakeLists.txt
    M flang/lib/Frontend/CMakeLists.txt
    M flang/lib/Lower/CMakeLists.txt
    M flang/lib/Parser/CMakeLists.txt
    M flang/lib/Semantics/CMakeLists.txt
    M llvm/CMakeLists.txt

  Log Message:
  -----------
  [flang] Use precompiled headers in Frontend, Lower, Parser, Semantics and Evaluate (#131137)

Precompiling larger headers can save a lot of compile time across
various compilation units.

For the time being, disable precompiled headers for ccache builds on Windows
due to issues with reliably passing the appropriate options to ccache.

Selected compile time & memory improvements are as follows:

flang/lib/Parser/Fortran-parsers.cpp:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:47.31 -> 0:41.68
Maximum resident set size (kbytes): 2062140 -> 1745584

flang/lib/Lower/Bridge.cpp:
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:19.16 -> 0:45.86
Maximum resident set size (kbytes): 3849144 -> 2443476

flang/lib/Lower/PFTBuilder.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:29.24 -> 1:00.99
Maximum resident set size (kbytes): 4218368 -> 2923128

flang/lib/Lower/Allocatable.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:53.03 -> 0:22.50
Maximum resident set size (kbytes): 3092840 -> 2116908

flang/lib/Semantics/Semantics.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:18.75 -> 1:00.20
Maximum resident set size (kbytes): 3527744 -> 2545308

While the newly added precompiled headers are as follows:

Parser:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:09.62
Maximum resident set size (kbytes): 1034608

Lower:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:41.33
Maximum resident set size (kbytes): 3615240

Semantics:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:26.69
Maximum resident set size (kbytes): 2403776

---------

Signed-off-by: Kajetan Puchalski <kajetan.puchalski at arm.com>



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