FailedChanges

Summary

  1. In the new pass manager use PTO.LoopUnrolling to determine when and how (details)
  2. Add -fno-experimental-pass-manager to make clear which pass manager (details)
  3. [Modules][PCH] Hash input files content (details)
  4. Temporarily Revert [Modules][PCH] Hash input files content as it's (details)
Commit c3649a087141ac6380d5c17b5ad8f68ab827e18d by echristo
In the new pass manager use PTO.LoopUnrolling to determine when and how
we will unroll loops. Also comment a few occasions where we need to know
whether or not we're forcing the unwinder or not.
The default before and after this patch is for LoopUnroll to be enabled,
and for it to use a cost model to determine whether to unroll the loop
(`OnlyWhenForced = false`). Before this patch, disabling loop unroll
would not run the LoopUnroll pass. After this patch, the LoopUnroll pass
is being run, but it restricts unrolling to only the loops marked by a
pragma (`OnlyWhenForced = true`).
In addition, this patch disables the UnrollAndJam pass when disabling
unrolling.
Testcase is in clang because it's controlling how the loop optimizer is
being set up and there's no other way to trigger the behavior.
llvm-svn: 374838
The file was addedclang/test/Misc/loop-opt-setup.c
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
Commit d93d001cbad37b19c7e70c8ed8ec2ac6a7e05940 by echristo
Add -fno-experimental-pass-manager to make clear which pass manager
we're running and to make flipping the default not regress testing.
llvm-svn: 374840
The file was modifiedclang/test/Misc/loop-opt-setup.c
Commit 2a1386c81de504b5bda44fbecf3f7b4cdfd748fc by bruno.cardoso
[Modules][PCH] Hash input files content
Summary: When files often get touched during builds, the mtime based
validation leads to different problems in implicit modules builds, even
when the content doesn't actually change:
- Modules only: module invalidation due to out of date files. Usually
causing rebuild traffic.
- Modules + PCH: build failures because clang cannot rebuild a module if
it comes from building a PCH.
- PCH: build failures because clang cannot rebuild a PCH in case one of
the input headers has different mtime.
This patch proposes hashing the content of input files (headers and
module maps), which is performed during serialization time. When looking
at input files for validation, clang only computes the hash in case
there's a mtime mismatch.
I've tested a couple of different hash algorithms availble in LLVM in
face of building modules+pch for `#import <Cocoa/Cocoa.h>`:
- `hash_code`: performace diff within the noise, total module cache
increased by 0.07%.
- `SHA1`: 5% slowdown. Haven't done real size measurements, but it'd be
BLOCK_ID+20 bytes per input file, instead of BLOCK_ID+8 bytes from
`hash_code`.
- `MD5`: 3% slowdown. Like above, but BLOCK_ID+16 bytes per input file.
Given the numbers above, the patch uses `hash_code`. The patch also
improves invalidation error msgs to point out which type of problem the
user is facing: "mtime", "size" or "content".
rdar://problem/29320105
Reviewers: dexonsmith, arphaman, rsmith, aprantl
Subscribers: jkorous, cfe-commits, ributzka
Tags: #clang
Differential Revision: https://reviews.llvm.org/D67249
llvm-svn: 374841
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSerializationKinds.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedclang/test/Modules/validate-file-content.m
The file was modifiedclang/include/clang/Lex/HeaderSearchOptions.h
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedclang/include/clang/Serialization/ASTReader.h
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/PCH/validate-file-content.m
Commit 3be9169caab619c9c87ec29b5530bd2db8382938 by echristo
Temporarily Revert [Modules][PCH] Hash input files content as it's
breaking a few bots.
This reverts r374841 (git commit
2a1386c81de504b5bda44fbecf3f7b4cdfd748fc)
llvm-svn: 374842
The file was modifiedclang/include/clang/Lex/HeaderSearchOptions.h
The file was modifiedclang/include/clang/Serialization/ASTReader.h
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSerializationKinds.td
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was removedclang/test/Modules/validate-file-content.m
The file was removedclang/test/PCH/validate-file-content.m
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
The file was modifiedclang/include/clang/Driver/Options.td

Summary

  1. Sanitize kwargs in (details)
Commit 21dbc73ca52a4d790ada07dbd63b65f4d950cd4b by gkistanova
Sanitize kwargs in
UnifiedTreeBuilder.getCmakeWithNinjaMultistageBuildFactory.
llvm-svn: 374839
The file was modifiedzorg/buildbot/builders/UnifiedTreeBuilder.py