Changes

Summary

  1. clang-ve-ninja: check compiler-rt (details)
  2. mlir-s390x-linux: collapse requests (details)
Commit f3145e433344ed18f056a2a68d82b6e70813d188 by simon.moll
clang-ve-ninja: check compiler-rt
The file was modifiedzorg/buildbot/builders/annotated/ve-linux-steps.make (diff)
Commit dfd41aa8267c78dd71b8dd01187bbb3c87ae25e3 by ulrich.weigand
mlir-s390x-linux: collapse requests
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [Clang] Enable IC/IF mode for __ibm128 (details)
  2. [LLDB] Remove xfail decorator TestInferiorAssert.py AArch64/Linux (details)
  3. [lldb] [ConnectionFileDescriptorPosix] Combine m_read_sp & m_write_sp (details)
  4. [lldb] [DynamicRegisterInfo] Remove non-const GetRegisterInfoAtIndex() (details)
  5. [lldb] Make char[N] formatters respect the end of the array (PR44649) (details)
  6. [AArch64][SVE] Ensure LowerEXTRACT_SUBVECTOR is not called for illegal types (details)
  7. [lldb] Don't print to stderr in TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize (details)
  8. [lldb] Add support for DW_AT_calling_convention to the DWARF parser (details)
  9. [flang][driver] Add actions that execute despite semantic errors (details)
  10. [fir] Update clang-tidy for the Optimizer directory (details)
  11. [lldb] [test] Rewrite g/p/G/P tests not to rely on hardcoded ARM regs (details)
  12. [LLD] [TEST] Add test case for patching an absolute relocation to a weak undef (details)
  13. [lldb][NFCI] Refactor out attribute parsing from DWARFASTParserClang::ParseSingleMember (details)
  14. [X86][AVX] Add test case for PR52122 (details)
  15. [fir] Clean up InitFIR.h (details)
  16. [lldb][NFC] Remove unnecessary reference from ParseChildMembers's default_accessibility parameter (details)
  17. [X86][AVX] Ensure we retain zero elements in select(pshufb,pshufb) -> or(pshufb,pshufb) fold (PR52122) (details)
  18. [fir] Add fir.convert canonicalization patterns (details)
  19. [Object] Deduplicate the three createError functions (details)
  20. [lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers (details)
  21. [lldb] [Target] Make addSupplementaryRegister() work on Register vector (details)
  22. [lldb] [ABI/AArch64] Add pseudo-regs if missing (details)
  23. [lldb] [DynamicRegisterInfo] Support setting from vector<Register> (details)
  24. [MS compat] Handle #pragma fenv_access like #pragma STDC FENV_ACCESS (PR50694) (details)
  25. [mlir] add user-level documentation for Python bindings (details)
Commit d11ec6f67e45c630ab87bfb6010dcc93e89542fc by qiucofan
[Clang] Enable IC/IF mode for __ibm128

As for 128-bit floating points on PowerPC, compiler should have three
machine modes:

- IFmode, always IBM extended double
- KFmode, always IEEE 754R 128-bit floating point
- TFmode, matches the semantics for long double

This commit adds support for IF mode with its complex variant, IC mode.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D109950
The file was modifiedclang/lib/Basic/TargetInfo.cpp
The file was modifiedclang/test/CodeGenCXX/ibm128-declarations.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Sema/attr-mode.c
Commit 483db1c706864d0940206228dfe64bdcd17faa4e by omair.javaid
[LLDB] Remove xfail decorator TestInferiorAssert.py AArch64/Linux

TestInferiorAssert.py test_inferior_asserting_disassemble passes after
upgrading LLDB AArch64/Linux buildbot to Ubuntu Focal.
The file was modifiedlldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
Commit fee461b1d830564048c09aef90631b1d4be4e450 by mgorny
[lldb] [ConnectionFileDescriptorPosix] Combine m_read_sp & m_write_sp

Combine m_read_sp and m_write_sp into a single m_io_sp.  In all
currently existing code paths, they are pointing to the same object
anyway.

Differential Revision: https://reviews.llvm.org/D111396
The file was modifiedlldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h
The file was modifiedlldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
Commit 36195d7d80e37063ef7f1fbc6c1970e515bb502c by mgorny
[lldb] [DynamicRegisterInfo] Remove non-const GetRegisterInfoAtIndex()

Differential Revision: https://reviews.llvm.org/D111408
The file was modifiedlldb/source/Target/DynamicRegisterInfo.cpp
The file was modifiedlldb/include/lldb/Target/DynamicRegisterInfo.h
Commit 8093c2ea574b9f7cbeb6c150f6584446cfd93517 by pavel
[lldb] Make char[N] formatters respect the end of the array (PR44649)

I believe this is a more natural behavior, and it also matches what gdb
does.

Differential Revision: https://reviews.llvm.org/D111399
The file was modifiedlldb/test/API/functionalities/data-formatter/stringprinter/main.cpp
The file was modifiedlldb/source/DataFormatters/FormatManager.cpp
Commit 03065ecd85366d0d0f8502469be7543be6fece70 by bradley.smith
[AArch64][SVE] Ensure LowerEXTRACT_SUBVECTOR is not called for illegal types

The lowering for EXTRACT_SUBVECTOR should not be called during type
legalization, only as part of lowering, hence return SDValue() when
called on illegal types.

This also adds missing tests for extracting fixed types from illegal
scalable types.

Differential Revision: https://reviews.llvm.org/D111412
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
Commit 592e89cc4e9a7d184e16d4c61abcbcb62cf7e6ed by Raphael Isemann
[lldb] Don't print to stderr in TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize

The current code just prints to the System's 'error log' which is usually stderr
(+ some other log backend). Printing to stderr however just interferes with
LLDB's console UI, so when this code is triggered during for example command
completion it just breaks the LLDB console interface until the next redraw.

Instead just use the normal LLDB log which is by default hidden and is what
users usually attach to bug reports.

The only known bug that triggers this is
https://bugs.llvm.org/show_bug.cgi?id=46775

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D111149
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Commit 3256aa8fe6fd785df12cc39f95e55bef0bc371c2 by Raphael Isemann
[lldb] Add support for DW_AT_calling_convention to the DWARF parser

This adds support for parsing DW_AT_calling_convention in the DWARF parser.

The generic DWARF parsing code already support extracting this attribute from A
DIE and TypeSystemClang already offers a parameter to add a calling convention
to a function type (as the PDB parser supports calling convention parsing), so
this patch just converts the DWARF enum value to the Clang enum value and adds a
few tests.

There are two tests in this patch.:

* A unit test for the added DWARF parsing code that should run on all platforms.

* An API tests that covers the whole expression evaluation machinery by trying
to call functions with non-standard calling conventions. The specific subtests
are target specific as some calling conventions only work on e.g. win32 (or, if
they work on other platforms they only really have observable differences on a
specific target).  The tests are also highly compiler-specific, so if GCC or
Clang tell us that they don't support a specific calling convention then we just
skip the test.

Note that some calling conventions are supported by Clang but aren't implemented
in LLVM (e.g. `pascal`), so there we just test that if this ever gets
implemented in LLVM that LLDB works too. There are also some more tricky/obscure
conventions that are left out such as the different swift* conventions, some
planned Obj-C conventions (`Preserve*`), AAPCS* conventions (as the DWARF->Clang
conversion is ambiguous for AAPCS and APPCS-VFP) and conventions only used for
OpenCL etc.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D108629
The file was addedlldb/test/API/lang/c/calling-conventions/regcall.c
The file was addedlldb/test/API/lang/c/calling-conventions/sysv_abi.c
The file was addedlldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py
The file was addedlldb/test/API/lang/c/calling-conventions/Makefile
The file was addedlldb/test/API/lang/c/calling-conventions/fastcall.c
The file was addedlldb/test/API/lang/c/calling-conventions/ms_abi.c
The file was addedlldb/test/API/lang/c/calling-conventions/vectorcall.c
The file was addedlldb/test/API/lang/c/calling-conventions/stdcall.c
The file was modifiedlldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was addedlldb/test/API/lang/c/calling-conventions/pascal.c
Commit 6f8ef1d6e8796993b69d4b1cf8e56590273268e3 by andrzej.warzynski
[flang][driver] Add actions that execute despite semantic errors

This patch adds a new abstract class for frontend actions:
`PrescanAndSemaDebugAction`. It's almost identical to
`PrescanAndSemaAction`, but in the presence of semantic errors it does
not skip the corresponding `ExecuteAction` specialisation. Instead, it
runs it as if there were no semantic errors. This class is for developer
actions only (i.e.  front-end driver options).

The new behaviour does not affect the return code from `flang-new -fc1`
when the input file is semantically incorrect. The return code is
inferred from the number of driver diagnostics generated in
`CompilerInstance::ExecuteAction` and this patch does not change that.
More specifically, the semantic errors are still reported and hence the
driver is able to correctly report that the compilation has failed (with
a non-zero return code).

This new base class is meant for debug actions only and
`DebugDumpAllAction` is updated to demonstrate the new behaviour. With
this change, `flang-new -fc1 -fdebug-dump-all` dumps the parse tree and
symbols for all input files, regardless of whether any semantic errors
were found.

This patch addresses https://bugs.llvm.org/show_bug.cgi?id=52097.

Differential Revision: https://reviews.llvm.org/D111308
The file was modifiedflang/include/flang/Frontend/FrontendActions.h
The file was addedflang/test/Driver/dump-all-bad.f90
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
Commit edec659f480f02642461cebd422ab35152cdfd23 by clementval
[fir] Update clang-tidy for the Optimizer directory

Update .clang-tidy file with the value used in fir-dev.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: rovka

Differential Revision: https://reviews.llvm.org/D111525

Co-authored-by: Valentin Clement <clementval@gmail.com>
The file was modifiedflang/lib/Optimizer/.clang-tidy
The file was modifiedflang/include/flang/Optimizer/.clang-tidy
Commit 270c989f6fef3bc336f7a4238754faa7c5993d3d by mgorny
[lldb] [test] Rewrite g/p/G/P tests not to rely on hardcoded ARM regs

Rewrite the register reading/writing tests to use explicit qRegisterInfo
packets rather than relying on ARM registers being hardcoded in LLDB.
While at it, use x86_64 for tests -- since it was easier for me to get
the register lists from that architecture.

Differential Revision: https://reviews.llvm.org/D111496
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/a.yaml
Commit aaeba6483fdafa442b950427bfa3e6443034f78d by Ben.Dunbobbin
[LLD] [TEST] Add test case for patching an absolute relocation to a weak undef

I noticed that we had this case in our internal testsuite but couldn't find it in LLD's tests.

This adds that case.

Differential Revision: https://reviews.llvm.org/D110716
The file was modifiedlld/test/ELF/weak-undef.s
The file was modifiedlld/test/ELF/weak-undef-rw.s
The file was modifiedlld/test/ELF/relocation-undefined-weak.s
Commit f110999bf6b5fe1b5e2b945ea462003655f034d0 by Raphael Isemann
[lldb][NFCI] Refactor out attribute parsing from DWARFASTParserClang::ParseSingleMember

D68422 introduced `ParsedDWARFTypeAttributes` which encapsulated attribute
parsing and storage into its own small struct. This patch is doing the same for
the member type attribute parsing. One utility class is parsing normal member
attributes and the other is parsing the dedicated Objective-C property
attributes.

Right now the patch just makes the `ParseSingleMember` function a bit shorter,
but the bigger benefit is that we can now split up the function into Objective-C
property parsing and parsing of normal members (struct/class members and
Objective-C ivars). The only shared code between those two parsing logic is the
normal member attribute parsing.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D111494
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Commit 84adaabf3e04d1938a137b1299a677d2fa489383 by llvm-dev
[X86][AVX] Add test case for PR52122
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
Commit 31a2ccc0b54c9f1209d1d6cead792a32715a759c by clementval
[fir] Clean up InitFIR.h

Clean up InitFIR.h file.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D111539

Co-authored-by: Valentin Clement <clementval@gmail.com>
The file was modifiedflang/tools/fir-opt/fir-opt.cpp
The file was modifiedflang/include/flang/Optimizer/Support/InitFIR.h
Commit 8249e50bf4286deee314e36ce7e67f38bcd79db2 by Raphael Isemann
[lldb][NFC] Remove unnecessary reference from ParseChildMembers's default_accessibility parameter
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
Commit ad16c6e52fb74c2e784530f14c19e72d93c9ad62 by llvm-dev
[X86][AVX] Ensure we retain zero elements in select(pshufb,pshufb) -> or(pshufb,pshufb) fold (PR52122)

The select(pshufb,pshufb) -> or(pshufb,pshufb) fold uses getConstVector to create the refreshed pshufb masks, which treats all negative indices as undef.

PR52122 shows that if we were selecting an element that the PSHUFB has set to zero we must set it back to 0x80 when we recreate the PSHUFB mask and not just leave it as SM_SentinelZero
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit c3abfe4207d35c221f1667d5b0c79a6511be5ea3 by clementval
[fir] Add fir.convert canonicalization patterns

Add rewrite patterns for fir.convert op canonicalization.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D111537

Co-authored-by: Valentin Clement <clementval@gmail.com>
The file was modifiedflang/lib/Optimizer/Transforms/CMakeLists.txt
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
The file was modifiedflang/include/flang/Optimizer/Transforms/CMakeLists.txt
The file was addedflang/test/Fir/convert-fold.fir
The file was addedflang/include/flang/Optimizer/Transforms/RewritePatterns.td
Commit bdc35b0efca9445950990fe642f18c3d82ab1299 by Raphael Isemann
[Object] Deduplicate the three createError functions

The Object library currently has three identical functions that translate a
Twine into a parser error. Until recently these functions have coexisted
peacefully, but since D110320 Clang with enabled modules is now diagnosing that
we have several definitions of `createError` in Object.

This patch just merges them all and puts them into Object's `Error.h` where the
error code for `parse_failed` is also defined which seems cleaner and unbreaks
the bots.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D111541
The file was modifiedllvm/include/llvm/Object/Error.h
The file was modifiedllvm/lib/Object/XCOFFObjectFile.cpp
The file was modifiedllvm/lib/Object/COFFModuleDefinition.cpp
The file was modifiedllvm/include/llvm/Object/ELF.h
Commit 58492191265759e952a032c0de48a9231c526b55 by mgorny
[lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers

Call ABI::AugmentRegisterInfo() once with a vector of all defined
registers rather than calling it for every individual register.  Move
and rename RemoteRegisterInfo from gdb-remote to
DynamicRegisterInfo::Register, and use this class when augmenting
registers.

Differential Revision: https://reviews.llvm.org/D111142
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/source/Target/ABI.cpp
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.h
The file was modifiedlldb/include/lldb/Target/ABI.h
The file was modifiedlldb/include/lldb/Target/DynamicRegisterInfo.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Commit 1afda54f199327b3391f2b32cf4cd785cedfd94c by mgorny
[lldb] [Target] Make addSupplementaryRegister() work on Register vector

Move DynamicRegisterInfo::AddSupplementaryRegister() into a standalone
function working on std::vector<DynamicRegisterInfo::Register>.

Differential Revision: https://reviews.llvm.org/D111295
The file was modifiedlldb/include/lldb/Target/DynamicRegisterInfo.h
The file was modifiedlldb/source/Target/DynamicRegisterInfo.cpp
The file was modifiedlldb/unittests/Target/DynamicRegisterInfoTest.cpp
Commit 583f67cb4eef6171326d72da8bbb3001c846bbfb by mgorny
[lldb] [ABI/AArch64] Add pseudo-regs if missing

Create pseudo-registers on the AArch64 target if they are not provided
by the remote server. This is the case for gdbserver. The created
registers are:

- 32-bit wN partials for 64-bit xN registers
- double precision floating-point dN registers (overlapping with vN)
- single precision floating-point sN registers (overlapping with vN)

Differential Revision: https://reviews.llvm.org/D109876
The file was modifiedlldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
Commit 660632778f308e101c5c168912ed423934aa8b21 by mgorny
[lldb] [DynamicRegisterInfo] Support setting from vector<Register>

Add an overload of DynamicRegisterInfo::SetRegisterInfo() that accepts
a std::vector<Register> as an argument.  This moves the conversion
from DRI::Register to RegisterInfo directly into DynamicRegisterInfo,
and avoids the necessity of creating fully-compatible intermediate
RegisterInfo instances.

While the new method could technically reuse AddRegister(), the ultimate
goal is to replace AddRegister() with SetRegisterInfo() entirely.

Differential Revision: https://reviews.llvm.org/D111435
The file was modifiedlldb/unittests/Target/DynamicRegisterInfoTest.cpp
The file was modifiedlldb/include/lldb/Target/DynamicRegisterInfo.h
The file was modifiedlldb/source/Target/DynamicRegisterInfo.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Commit 774388241e25529308c8bbac6012a20b62b82f29 by hans
[MS compat] Handle #pragma fenv_access like #pragma STDC FENV_ACCESS (PR50694)

This adds support for the MSVC spelling of the pragma in -fms-extensions
mode.

Differential revision: https://reviews.llvm.org/D111440
The file was modifiedclang/lib/Parse/Parser.cpp
The file was addedclang/test/Parser/pragma-fenv_access-ms.c
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/lib/Parse/ParseStmt.cpp
The file was modifiedclang/test/CodeGen/pragma-fenv_access.c
The file was modifiedclang/include/clang/Basic/TokenKinds.def
The file was modifiedclang/lib/Parse/ParsePragma.cpp
Commit bacb0cac1580a0cd83a0d3c5cb12f3f80d26a0f4 by zinenko
[mlir] add user-level documentation for Python bindings

Until now, we only had documentation oriented towards developers of the
bindings. Provide some documentation for users of the bindings that don't want
or need to understand the inner workings.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D111540
The file was modifiedmlir/docs/Bindings/Python.md

Summary

  1. Added parameter missed during rebase. (details)
Commit be3643cefc52cb74373ae1b0bc5c62391f4f73b6 by kosov.pavel
Added parameter missed during rebase.
The file was modifiedlnt/lnttool/main.py (diff)