Changes

Summary

  1. [SLP] add test for miscompile with reduction (PR43948); NFC (details)
  2. clang/Modules: Error if ReadASTBlock does not find the main module (details)
  3. [lit] Better/earlier errors for empty runs (details)
  4. Performance: Add a set of visited SymbolFiles to the other FindFiles (details)
  5. [Hexagon] Update PS_aligna with max stack alignment once isel completes (details)
  6. [libcxxabi] Prevent cmake from removing our explicit system C++ include (details)
  7. [OPENMP]Use copy constructors instead of assignment operators in declare (details)
Commit 2d06375c3fa02275c1292643216cdb00bb17c32c by spatel
[SLP] add test for miscompile with reduction (PR43948); NFC
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction.ll
Commit 83dcb34b6bf4c175040b18d3e8c3c468418009fc by Duncan P. N. Exon Smith
clang/Modules: Error if ReadASTBlock does not find the main module
If ReadASTBlock does not find its top-level submodule, there's something
wrong the with the PCM.  Error in that case, to avoid hitting problems
further from the source.
Note that the Swift compiler sometimes hits a case in
CompilerInstance::loadModule where the top-level submodule mysteriously
does not have Module::IsFromModuleFile set.  That will emit a confusing
warn_missing_submodule, which was never intended for the main module.
The recent audit of error-handling in ReadAST may have rooted out the
real problem.  If not, this commit will help to clarify the real
problem, and replace a confusing warning with an error pointing at the
malformed PCM file.
We're specifically sniffing out whether the top-level submodule was
found/processed, in case there is a malformed module file that is
missing it.  If there is an error encountered during ReadSubmoduleBlock
the return status should already propagate through.  It would be nice to
detect other missing submodules around here to catch other instances of
warn_missing_submodule closer to the source, but that's left as a future
exercise.
https://reviews.llvm.org/D70063
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/include/clang/Serialization/Module.h
The file was modifiedclang/include/clang/Basic/DiagnosticSerializationKinds.td
Commit 54a9b4c02ff57e9847e0c501578e51db6f73d3be by julian.lettner
[lit] Better/earlier errors for empty runs
Fail early, when we discover no tests at all, or filter out all of them.
There is also `--allow-empty-runs` to disable test to allow workflows
like `LIT_FILTER=abc ninja check-all`.  Apparently `check-all` invokes
lit multiple times if certain projects are enabled, which would produce
unwanted "empty runs". Specify via `LIT_OPTS=--allow-empty-runs`.
There are 3 causes for empty runs: 1) No tests discovered.  This is
always an error.  Fix test suite config
  or command line. 2) All tests filtered out.  This is an error by
default, but can be
  suppressed via `--alow-empty-runs`.  Should prevent accidentally
  passing empty runs, but allow the workflow above. 3) The number of
shards is greater than the number of tests.  Currently,
  this is never an error.  Personally, I think we should consider
  making this an error by default; if this happens, you are doing
  something wrong. I added a warning but did not change the behavior,
  since this warrants more discussion.
Reviewed By: atrick, jdenny
Differential Revision: https://reviews.llvm.org/D70105
The file was modifiedllvm/utils/lit/lit/cl_arguments.py
The file was modifiedllvm/utils/lit/tests/selecting.py
The file was modifiedllvm/utils/lit/lit/main.py
The file was modifiedllvm/utils/lit/lit/run.py
Commit 3b73dcdc9656e156c4380454150b8986c5b9aad1 by Adrian Prantl
Performance: Add a set of visited SymbolFiles to the other FindFiles
variant.
This is basically the same bug as in r260434.
SymbolFileDWARF::FindTypes has exponential worst-case when digging
through dependency DAG of .pcm files because each object file and .pcm
file may depend on an already-visited .pcm file, which may again have
dependencies. Fixed here by carrying a set of already visited
SymbolFiles around.
rdar://problem/56993424
Differential Revision: https://reviews.llvm.org/D70106
The file was modifiedlldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was modifiedlldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Symbol/SymbolFile.cpp
The file was modifiedlldb/tools/lldb-test/lldb-test.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
The file was modifiedlldb/include/lldb/Symbol/SymbolFile.h
The file was modifiedlldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
The file was modifiedlldb/include/lldb/Core/Module.h
Commit ef150e2ea51960e4a9689850d16b2dda355cdcd8 by kparzysz
[Hexagon] Update PS_aligna with max stack alignment once isel completes
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
Commit 4230fa939021e7a85f3ec06a4b1d8c661dfe329b by sbc
[libcxxabi] Prevent cmake from removing our explicit system C++ include
paths
We build with `-nostdinc++` and add our own header path via
`LIBCXXABI_LIBCXX_INCLUDES`.  However cmake tried to be clever and if
`LIBCXXABI_LIBCXX_INCLUDES` happens to match the compilers system path
it will remove the `-I` flag meaning we can't access any C++ headers.
Ideally cmake would be able see that we are using `-nostdinc++` and
disable this behaviour.
Differential Revision: https://reviews.llvm.org/D69973
The file was modifiedlibcxxabi/CMakeLists.txt
Commit 3c676e3891b962b859e7613781419ee0dacce7dd by a.bataev
[OPENMP]Use copy constructors instead of assignment operators in declare
reduction initializers.
Better to use copy constructor at the initialization of the declare
reduction construct rather than assignment operator.
The file was modifiedclang/test/OpenMP/for_reduction_codegen_UDR.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/AST/dump.cpp
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
The file was modifiedclang/test/OpenMP/declare_reduction_messages.cpp