[hlc] Speed up hlc visual studio templates #720
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, each file requires a separate cl.exe invocation. This PR reduces the number of cl.exe invocations needed to build the project by allowing multiple files to be compiled in the same cl.exe invocation (by passing object output directory instead of object output file name, which means more files share the same compilation arguments). This already gives a noticeable speed up.
It further improves the speed by enabling multi processor compilation, which is possible now that the same cl.exe invocation deals with multiple files.
As an example, on my machine with the HelloWorld program in
other/tests
, compilation speed goes from 18.6 seconds to 7.3 seconds.Further speed up is possible if
/Fo
is removed from the cl.exe invocation altogether (since then all files can be compiled in one invocation). However, this would cause issues if files in different directories share a name, since by defaultcl.exe
puts all object files in the same directory.