SuccessChanges

Summary

  1. [AMDGPU] Fixes typo in the test. NFC. (details)
  2. [MS] Simplify rules for passing C++ records (details)
  3. [MS] For unknown ISAs, pass non-trivially copyable arguments indirectly (details)
  4. [intel-pt] Refactor the JSON parsing (details)
  5. Add a static_assert confirming that DiagnosticBuilder is small (details)
  6. Revert "Add a static_assert confirming that DiagnosticBuilder is small" (details)
  7. Revert "[NFCI][IR] ConstantRangeTest: add basic scaffolding for next-gen precision/correctness testing" (details)
  8. [ValueTracking] Check uses of Argument if it is given to isGuaranteedNotToBeUndefOrPoison (details)
  9. [ValueTracking] Make isGuaranteedNotToBeUndefOrPoison exit early when MetadataAsValue is given (details)
  10. [lld] Clean up in lld::{coff,elf}::link after D70378 (details)
  11. [Hexagon] Avoid crash on CONCAT_VECTORS with illegal element types (details)
  12. Hint how to get a symbolized stack trace if llvm-symbolizer is not found on crashes (details)
  13. PR47176: Don't read from an inactive union member if a friend function (details)
Commit 43804364e2bc2bd586740dbb0b7aae2137c130cc by Stanislav.Mekhanoshin
[AMDGPU] Fixes typo in the test. NFC.

denormal-fp-math-fp32 -> denormal-fp-math-f32
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
Commit b8a50e920704436ddcbe0cc9d2020935d7e37095 by rnk
[MS] Simplify rules for passing C++ records

Regardless of the target architecture, we should always use the C rules
(RAA_Default) for records that "canBePassedInRegisters". Those are
trivially copyable things, and things marked with [[trivial_abi]].

This should be NFC, although it changes where the final decision about
x86_32 overaligned records is made. The current x86_32 C rules say that
overaligned things are passed indirectly, so there is no functional
difference.
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/inalloca-overaligned.cpp
Commit ecfc9b971269a86b101cddf1fd9f0976be4096d0 by rnk
[MS] For unknown ISAs, pass non-trivially copyable arguments indirectly

Passing them directly is likely to be non-conforming, since it usually
involves copying the bytes of the record. For unknown architectures, we
don't know what MSVC does or will do, but we should at least try to
conform as well as we can.
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was addedclang/test/CodeGenCXX/microsoft-abi-unknown-arch.cpp
Commit bddebca61ea73d45d5eafc38aaf9fe7605f5a9b3 by walter erquinigo
[intel-pt] Refactor the JSON parsing

Recently https://reviews.llvm.org/D88103 introduced a nice API for
converting a JSON object into C++ types, which include nice error
messaging.

I'm using that new functioniality to perform the parsing in a much more
elegant way. As a result, the code looks simpler and more maintainable,
as we aren't parsing anymore individual fields manually.

I updated the test cases accordingly.

Differential Revision: https://reviews.llvm.org/D88264
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad5.json
The file was modifiedlldb/include/lldb/Target/TraceSettingsParser.h
The file was modifiedlldb/include/lldb/Target/Trace.h
The file was modifiedlldb/test/API/commands/trace/TestTraceLoad.py
The file was modifiedlldb/source/Target/TraceSettingsParser.cpp
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.cpp
The file was modifiedlldb/source/Target/Trace.cpp
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.h
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad4.json
Commit a32feed0dbeac7606d042d0d7e041c9eaf12cd51 by rnk
Add a static_assert confirming that DiagnosticBuilder is small
The file was modifiedclang/lib/Basic/Diagnostic.cpp
Commit 276f68eace7c27f6805d69a30a4b2f186e42c56c by rnk
Revert "Add a static_assert confirming that DiagnosticBuilder is small"

This reverts commit a32feed0dbeac7606d042d0d7e041c9eaf12cd51.

This assert doesn't hold in 32-bit builds, I didn't do the math right.
The file was modifiedclang/lib/Basic/Diagnostic.cpp
Commit 495a5e94baadefa6ed50390e6655021c127ea266 by rnk
Revert "[NFCI][IR] ConstantRangeTest: add basic scaffolding for next-gen precision/correctness testing"

This reverts commit 9bcf7b1c7a139a455400df109d81c638b9e75150.

Breaks build with MSVC.
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
Commit 1c45220028a8aa39ad2f26c8c3c6234d1a816086 by aqjune
[ValueTracking] Check uses of Argument if it is given to isGuaranteedNotToBeUndefOrPoison

This is a patch that allows isGuaranteedNotToBeUndefOrPoison to return more precise result
when an argument is given, by looking through its uses at the entry block (and following blocks as well, if it is checking poison only).

This is useful when there is a function call with noundef arguments at the entry block.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D88207
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
Commit 92106641ae297c24877085e0357e8095aa7b43c9 by aqjune
[ValueTracking] Make isGuaranteedNotToBeUndefOrPoison exit early when MetadataAsValue is given

It is set to conservatively return false, otherwise noundef attributes are added to function calls with metadata arguments.
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 1ca6bd261e0aebdd73e3af98fb97c444c2a339cd by i
[lld] Clean up in lld::{coff,elf}::link after D70378

Library users should not need to call errorHandler().reset() explicitly.

google/iree calls lld::elf::link and without the patch some global
variables are not cleaned up in the next invocation.
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/ELF/Driver.cpp
Commit 3185839bcf6614af28c255e90195f6b1cafee106 by kparzysz
[Hexagon] Avoid crash on CONCAT_VECTORS with illegal element types

Legal vector element types may not be legal as scalar types. When
CONCAT_VECTORS is converted to BUILD_VECTOR, the individual vector
elements become standalone operands to the build operation. If they
have illegal (scalar) types, they need to be made legal. In doing
so, the case of TRUNCATE was not handled, causing an assertion to
fail.
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-hvx-concat-truncate.ll
Commit 960535d65a927b27ff883250094492842c33ca86 by joker.eph
Hint how to get a symbolized stack trace if llvm-symbolizer is not found on crashes

Most users of LLVM tools hit the raw traces and don't know how to get LLVM to
symbolize automatically for them.

When we print the non-symbolized stack trace, we will add information about
how to get it symbolized.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D88269
The file was modifiedllvm/lib/Support/Unix/Signals.inc
Commit 8c98c8803430804010da06a07cfb291dab59067c by richard
PR47176: Don't read from an inactive union member if a friend function
has default arguments and an exception specification.
The file was modifiedclang/test/Parser/cxx0x-decl.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/lib/Parse/ParseDecl.cpp