SuccessChanges

Summary

  1. [yaml2obj/ObjectYAML] - Cleanup the error reporting API, add custom (details)
  2. [lldb] - Update unit tests after lib/ObjectYAML change. (details)
  3. Recommit r370502: Make `vector` unconditionally move elements when (details)
  4. [AArch64][GlobalISel] Add support for sibcalling callees with varargs (details)
  5. [Remarks][NFC] Use StringLiteral for magic numbers (details)
  6. [Remarks][NFC] Forward declare ParsedStringTable (details)
  7. [CMake] Separate the detection Darwin platforms architectures for the (details)
  8. Fix bug in `darwin_test_archs()` when the cache variable is set but (details)
  9. Revert for: [AMDGPU]: PHI Elimination hooks added for custom COPY (details)
  10. Fix failing negative compilation test for some versions of Clang (details)
  11. [NFCI]Create CommonAttributeInfo Type as base type of *Attr and (details)
  12. Fix build error in 371875 (details)
  13. [NFC][InstSimplify] Add some more tests for D67498/D67502 (details)
  14. Reland r371785: Add -Wpoison-system-directories warning (details)
Commit 850110272783e85bc79d9fad64add5d303a23ad1 by grimar
[yaml2obj/ObjectYAML] - Cleanup the error reporting API, add custom
errors handlers.
This is a continuation of the YAML library error reporting
refactoring/improvement and the idea by itself was mentioned in the
following thread:
https://reviews.llvm.org/D67182?id=218714#inline-603404
This performs a cleanup of all object emitters in the library. It allows
using the custom one provided by the caller.
One of the nice things is that each tool can now print its tool name,
e.g: "yaml2obj: error: <text>"
Also, the code became a bit simpler.
Differential revision: https://reviews.llvm.org/D67445
llvm-svn: 371865
The file was modifiedllvm/include/llvm/ObjectYAML/yaml2obj.h
The file was modifiedllvm/lib/ObjectYAML/yaml2obj.cpp
The file was modifiedllvm/test/tools/yaml2obj/multi-doc.test
The file was modifiedllvm/test/tools/yaml2obj/invalid-docnum.test
The file was modifiedllvm/lib/ObjectYAML/MachOEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/WasmEmitter.cpp
The file was modifiedllvm/test/ObjectYAML/wasm/invalid_section_order.yaml
The file was modifiedllvm/lib/ObjectYAML/MinidumpEmitter.cpp
The file was modifiedllvm/tools/yaml2obj/yaml2obj.cpp
The file was modifiedllvm/test/tools/yaml2obj/empty-or-invalid-doc.yaml
The file was modifiedllvm/test/tools/yaml2obj/dynsymtab-implicit-sections-size-content.yaml
The file was modifiedllvm/test/tools/yaml2obj/missing_document_tag.yaml
The file was modifiedllvm/test/tools/yaml2obj/section-size-content.yaml
The file was modifiedllvm/test/tools/yaml2obj/coff-invalid-alignment.test
The file was modifiedllvm/tools/llvm-ifs/llvm-ifs.cpp
The file was modifiedllvm/test/tools/yaml2obj/reloc-sec-info.yaml
The file was modifiedllvm/lib/ObjectYAML/COFFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/invalid_output_file.test
The file was modifiedllvm/unittests/ObjectYAML/MinidumpYAMLTest.cpp
The file was modifiedllvm/unittests/ObjectYAML/YAML2ObjTest.cpp
Commit 69ba3defafa7afc2ddcc0dc0d541334e0220cbb5 by grimar
[lldb] - Update unit tests after lib/ObjectYAML change.
An update after r371865
llvm-svn: 371866
The file was modifiedlldb/unittests/TestingSupport/TestUtilities.cpp
The file was modifiedlldb/unittests/Process/minidump/MinidumpParserTest.cpp
Commit 2a573784f3679a7abab921018eb1c585dce8e669 by eric
Recommit r370502: Make `vector` unconditionally move elements when
exceptions are disabled.
The patch was reverted due to some confusion about non-movable types. ie
types that explicitly delete their move constructors. However, such
types do not meet the requirement for `MoveConstructible`, which is
required by
`std::vector`:
Summary:
`std::vector<T>` is free choose between using copy or move operations
when it needs to resize. The standard only candidates that the correct
exception safety guarantees are provided. When exceptions are disabled
these guarantees are trivially satisfied. Meaning vector is free to
optimize it's implementation by moving instead of copying.
This patch makes `std::vector` unconditionally move elements when
exceptions are disabled. This optimization is conforming according to
the current standard wording.
There are concerns that moving in `-fno-noexceptions`mode will be a
surprise to users. For example, a user may be surprised to find their
code is slower with exceptions enabled than it is disabled. I'm
sympathetic to this surprised, but I don't think it should block this
optimization.
Reviewers: mclow.lists, ldionne, rsmith Reviewed By: ldionne
Subscribers: zoecarver, christof, dexonsmith, libcxx-commits Tags: #libc
Differential Revision: https://reviews.llvm.org/D62228
llvm-svn: 371867
The file was modifiedlibcxx/include/vector
The file was addedlibcxx/test/libcxx/containers/sequences/vector/exception_safety_exceptions_disabled.sh.cpp
The file was modifiedlibcxx/include/memory
The file was removedlibcxx/test/std/containers/sequences/vector/vector.modifiers/resize.copy_only.pass.sh.cpp
The file was addedlibcxx/test/std/containers/sequences/vector/vector.modifiers/resize_not_move_insertable.fail.cpp
Commit 14bfb56b1aea586f489aaa71af13bf742873de46 by Jessica Paquette
[AArch64][GlobalISel] Add support for sibcalling callees with varargs
This adds support for tail calling callees with varargs, equivalent to
how it is done in AArch64ISelLowering.
This only works for sibling calls, and does not add the necessary
support for musttail with varargs. (See r345641 for equivalent
ISelLowering support.) This should be implemented when we stop falling
back on musttail.
Update call-translator-tail-call.ll to show that we can now tail call
varargs.
Differential Revision: https://reviews.llvm.org/D67518
llvm-svn: 371868
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll
Commit 1d6fb061cf5a0326b11637ee597addb2e2c230d0 by francisvm
[Remarks][NFC] Use StringLiteral for magic numbers
llvm-svn: 371869
The file was modifiedllvm/include/llvm/Remarks/BitstreamRemarkContainer.h
The file was modifiedllvm/include/llvm/Remarks/RemarkFormat.h
Commit d38f63e5f49279a6bd4c9de654686d789f2dd3d7 by francisvm
[Remarks][NFC] Forward declare ParsedStringTable
llvm-svn: 371870
The file was modifiedllvm/include/llvm/Remarks/RemarkStringTable.h
The file was modifiedllvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp
Commit ef163f5a20dcd1f79f66ae2a71d425345e5453ac by dan
[CMake] Separate the detection Darwin platforms architectures for the
built-ins from the rest of compiler-rt.
The detection of supported platform (os) architectures for Darwin relies
on the `darwin_test_archs()` CMake function. This is used both for
building the builtins (`builtin-config-ix.cmake`) and for the rest of
the compiler-rt (`config-ix.cmake`).
`darwin_test_archs()`  implements a cache, presumably to speed up CMake
re-configures.  Unfortunately this caching is buggy because it depends
on external global state (i.e. the `TEST_COMPILE_ONLY` variable) and
this is not taken into account. For `config-ix.cmake`
`TEST_COMPILE_ONLY` is not set and for `builtin-config-ix.cmake`
`TEST_COMPILE_ONLY` is set to `On`.  This makes the
`darwin_test_archs()` function racey in the sense that a call from one
calling context will poison the cache for the other calling context.
This is actually an issue George Karpenkov discovered a while back and
had an incomplete patch for (https://reviews.llvm.org/D45337) but this
was never merged.
To workaround this, this patch switches to using a different set of
variables for the platform architecture builtins, i.e.
`DARWIN_<OS>_ARCHS` -> `DARWIN_<OS>_BUILTIN_ARCHS`. This avoids the
cache poisoning problem because the cached variable names are different.
This also has the advantage that the the configured architectures for
builtins and the rest of the compiler-rt are now independent and can be
set differently if necessary.
Note in `darwin_test_archs()` we also now pass `-w` to the compiler
because `try_compile_only()` treats compiler warnings as errors.  This
was extremely fragile because compiler warnings (can easily appear due
to a buggy compiler or SDK headers) would cause compiler-rt to think an
architecture on Darwin wasn't supported.
rdar://problem/48637491
llvm-svn: 371871
The file was modifiedcompiler-rt/cmake/builtin-config-ix.cmake
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
Commit 713da8db39bb4cd1f9a1a5e67b255f6156e8929d by dan
Fix bug in `darwin_test_archs()` when the cache variable is set but
empty.
Summary: If the cache variable named in `${valid_archs}` (e.g.
`DARWIN_osx_BUILTIN_ARCHS`) is set in the cache but is empty then the
cache check
`if(${valid_archs})` will be false so the function will probe the
compiler but the `set(...)` command at the end of the function to update
the cache variable will be a no-op. This is because `set(...)` will not
update an existing cache variable unless the `FORCE` argument is
provided.
To fix this this patch adds `FORCE` so the cache is always updated.
rdar://problem/55323665
Reviewers: vsk, kubamracek
Subscribers: mgorny, #sanitizers, llvm-commits
Tags: #llvm, #sanitizers
Differential Revision: https://reviews.llvm.org/D67530
llvm-svn: 371872
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
Commit 9ff70132bf89e213f45e54cd2d79a611d14b3d0b by Alexander.Timofeev
Revert for: [AMDGPU]: PHI Elimination hooks added for custom COPY
insertion.
llvm-svn: 371873
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was removedllvm/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/PHIElimination.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/phi-elimination-assertion.mir
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
Commit 7ff9a9353c24c9da28ad7719c34d859c7009fafa by eric
Fix failing negative compilation test for some versions of Clang
llvm-svn: 371874
The file was modifiedlibcxx/test/std/containers/sequences/vector/vector.modifiers/resize_not_move_insertable.fail.cpp
Commit 6a24e8068052cd6b48295959ec4c44eb2ef819c5 by erich.keane
[NFCI]Create CommonAttributeInfo Type as base type of *Attr and
ParsedAttr.
In order to enable future improvements to our attribute diagnostics,
this moves info from ParsedAttr into CommonAttributeInfo, then makes
this type the base of the *Attr and ParsedAttr types. Quite a bit of
refactoring took place, including removing a bunch of redundant Spelling
Index propogation.
Differential Revision: https://reviews.llvm.org/D67368
llvm-svn: 371875
The file was modifiedclang/lib/Sema/SemaAttr.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
The file was addedclang/include/clang/Basic/AttributeCommonInfo.h
The file was modifiedclang/lib/Parse/ParsePragma.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was modifiedclang/include/clang/Sema/ParsedAttr.h
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modifiedclang/lib/Sema/ParsedAttr.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/lib/Lex/PPDirectives.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaStmtAttr.cpp
The file was modifiedclang/lib/Sema/SemaObjCProperty.cpp
The file was modifiedclang/lib/Parse/ParseDecl.cpp
The file was modifiedclang/lib/Lex/Pragma.cpp
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
The file was modifiedclang/lib/Lex/PPLexerChange.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/include/clang/AST/Attr.h
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/include/clang/Lex/Preprocessor.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
Commit f9cd381fdfe582734c4533882a8cdde4a880c780 by erich.keane
Fix build error in 371875
Apparently Clang complains about the name hiding here in a way that my
GCC build does not, so a shocking number of buildbots decided to tell me
about it.  Change the name of the variable to prevent the name hiding
and hope we don't have to fix this again.
llvm-svn: 371876
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
Commit 4cb267f9f5ffed2bbc495ff577287e1d970eba7e by lebedev.ri
[NFC][InstSimplify] Add some more tests for D67498/D67502
llvm-svn: 371877
The file was modifiedllvm/test/Transforms/InstSimplify/result-of-add-of-negative-is-non-zero-and-no-underflow.ll
The file was modifiedllvm/test/Transforms/InstSimplify/result-of-usub-is-non-zero-and-no-overflow.ll
Commit 41d9d5092a17e60615077da6ef22b4f5cfae2c2e by manojgupta
Reland r371785: Add -Wpoison-system-directories warning
When using clang as a cross-compiler, we should not use system headers
to do the compilation. This CL adds support of a new warning flag
-Wpoison-system-directories which emits warnings if --sysroot is set and
headers from common host system location are used. By default the
warning is disabled.
The intention of the warning is to catch bad includes which are usually
generated by third party build system not targeting cross-compilation.
Such cases happen in Chrome OS when someone imports a new package or
upgrade one to a newer version from upstream.
This is reland of r371785 with a fix to test file.
Patch by: denik (Denis Nikitin)
llvm-svn: 371878
The file was modifiedclang/include/clang/Basic/DiagnosticCommonKinds.td
The file was modifiedclang/lib/Frontend/InitHeaderSearch.cpp
The file was addedclang/test/Frontend/Inputs/sysroot_x86_64_cross_linux_tree/usr/local/include/.keep
The file was addedclang/test/Frontend/Inputs/sysroot_x86_64_cross_linux_tree/lib/.keep
The file was addedclang/test/Frontend/Inputs/sysroot_x86_64_cross_linux_tree/usr/lib/gcc/.keep
The file was addedclang/test/Frontend/Inputs/sysroot_x86_64_cross_linux_tree/usr/include/c++/.keep
The file was addedclang/test/Frontend/Inputs/sysroot_x86_64_cross_linux_tree/usr/local/lib/.keep
The file was addedclang/test/Frontend/warning-poison-system-directories.c