[llvm-bugs] [Bug 43369] New: Large compile time regression when building CheckerRegistry.cpp using Visual Studio 2017 on Windows

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Sep 19 19:49:30 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=43369

            Bug ID: 43369
           Summary: Large compile time regression when building
                    CheckerRegistry.cpp using Visual Studio 2017 on
                    Windows
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: douglas_yung at playstation.sony.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

After upstream commit r369961, compiling the file
clang\lib\StaticAnalyzer\Frontend\CheckerRegistry.cpp with optimizations
enabled on Windows using Visual Studio 2017 has greatly increased in the amount
of time needed to compile on my machine.

I generated preprocessed files using r369960 and r369961 and built each on my
machine with the following results:

C:\sandbox\r369961\upstream>..\timecmd.cmd "C:\Program Files (x86)\Microsoft
Visual
Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\CL.exe" /c
CheckerRegistry.good.i /TP /wd4624 /O2
Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27031.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

CheckerRegistry.good.i
command took 0:0:29.97 (29.97s total)

C:\sandbox\r369961\upstream>..\timecmd.cmd "C:\Program Files (x86)\Microsoft
Visual
Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\CL.exe" /c
CheckerRegistry.bad.i /TP /wd4624 /O2
Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27031.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

CheckerRegistry.bad.i
command took 0:10:4.87 (604.87s total)

Note the time required to compile went from ~30 seconds to around 10 minutes!

Other files in the build of clang may also be affected, but this one seems to
stand out the most on my machine as it was causing timeouts in our distributed
build system due to the long compilation time.

I am attaching preprocessed copies of the CheckerRegistry.cpp file to help ease
reproduction. CheckerRegistry.good.i is a preprocessed version of the file from
r269960, and CheckerRegistry.bad.i is a preprocessed version of the file from
r269961. To build, simply use options /TP /O2, and optionally /wd4624 to
silence a warning.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190920/dcce4b01/attachment.html>


More information about the llvm-bugs mailing list