Skip to content

GH-130090: build time analysis #131005

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 22 commits into from

Conversation

chris-eibl
Copy link
Member

@chris-eibl chris-eibl commented Mar 9, 2025

This is how I generated the tables in #130090.

What to do with it?

Don't know, whether we want anything of that branch. Most probably just close.

chris-eibl and others added 21 commits February 9, 2025 16:30
for _freeze_module in case of clang-cl to speed up the build
Speeds up both MSVC and clang-cl builds.

Should most probably done in a separate PR and issue, though.
I've previously gotten compile errors from clang, because the needed
intrinsics were not available without that option.

Cannot reproduce anymore. Most probably, because I've upgraded to
Visual Studio 17.13.0 Preview 5.0, which now ships with clang 19.1.1
instead of 18.1.8 and they've done that for compatibility with MSVC?

Anyway, let's keep the PR small :)
This reverts commit 26fb51f.

Shall be done in a separate PR.
This better matches the behaviour of build.bat in case of MSVC PGO builds.
and make it a target with inputs and outputs
because the name is too MSVC specific
Co-authored-by: Steve Dower <steve.dower@microsoft.com>
@@ -23,7 +23,7 @@ extern "C" {
declaration \
_GENERATE_DEBUG_SECTION_LINUX(name)

#if defined(MS_WINDOWS)
#if defined(MS_WINDOWS)&& !defined(__clang__)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interestingly, for debug builds I now need this, too. Never needed before, see #130040 (comment). Will anyway come with that PR...

@@ -420,6 +420,7 @@
<ClCompile Include="..\Modules\blake2module.c">
<PreprocessorDefinitions Condition="'$(Platform)' == 'x64'">HACL_CAN_COMPILE_SIMD128;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)' == 'x64'">HACL_CAN_COMPILE_SIMD256;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions Condition="'$(Platform)' == 'x64' and '$(LLVMToolsVersion)' &lt; '19'">/arch:AVX</AdditionalOptions>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only as an interim taken from #130447 until we vendor the latest hacl-star that abstracts the AVX intrinsics (#130960)

@@ -0,0 +1,264 @@
import argparse
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a beauty but it creates the tables for me :)

@@ -167,6 +167,30 @@ public override bool Execute() {
</Task>
</UsingTask>

<Target Name="BeginTimeStamp" BeforeTargets="PrepareForBuild">
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only needed for detailed timings per project. Could be guarded behind a Condition="'$(PrintBuildTimeStamps)' == 'true'", in case this shall be merged.

from datetime import datetime, date, time

# Verstrichene Zeit 00:00:00.74
msbuild_time_str = "Verstrichene Zeit"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the thing I dislike most: msbuild does this localized :(

@chris-eibl chris-eibl changed the title use -flto=thin for clang-cl on Windows GH-130090: build time analysis Mar 10, 2025
@chris-eibl
Copy link
Member Author

Closing, since this served its purpose. Build time analysis is done, in case someone else ever wants to do something like that:
PCbuild/analyse_build_times.py and BeginTimeStamp/EndTimeStamp is the only stuff needed ...

@chris-eibl chris-eibl closed this Mar 22, 2025
@chris-eibl chris-eibl deleted the analyse_build_times branch March 22, 2025 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant