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
|
 | clang/test/Sema/attr-mode.c |
 | clang/test/CodeGenCXX/ibm128-declarations.cpp |
 | clang/lib/Basic/TargetInfo.cpp |
 | clang/lib/Sema/SemaDeclAttr.cpp |
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.
|
 | lldb/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
|
 | lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp |
 | lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h |
Commit
36195d7d80e37063ef7f1fbc6c1970e515bb502c
by mgorny[lldb] [DynamicRegisterInfo] Remove non-const GetRegisterInfoAtIndex()
Differential Revision: https://reviews.llvm.org/D111408
|
 | lldb/include/lldb/Target/DynamicRegisterInfo.h |
 | lldb/source/Target/DynamicRegisterInfo.cpp |
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
|
 | lldb/source/DataFormatters/FormatManager.cpp |
 | lldb/test/API/functionalities/data-formatter/stringprinter/main.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
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/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
|
 | lldb/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
|
 | lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp |
 | lldb/test/API/lang/c/calling-conventions/regcall.c |
 | lldb/test/API/lang/c/calling-conventions/fastcall.c |
 | lldb/test/API/lang/c/calling-conventions/stdcall.c |
 | lldb/test/API/lang/c/calling-conventions/pascal.c |
 | lldb/test/API/lang/c/calling-conventions/Makefile |
 | lldb/test/API/lang/c/calling-conventions/vectorcall.c |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
 | lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py |
 | lldb/test/API/lang/c/calling-conventions/sysv_abi.c |
 | lldb/test/API/lang/c/calling-conventions/ms_abi.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
|
 | flang/lib/Frontend/FrontendActions.cpp |
 | flang/test/Driver/dump-all-bad.f90 |
 | flang/include/flang/Frontend/FrontendActions.h |
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>
|
 | flang/lib/Optimizer/.clang-tidy |
 | flang/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
|
 | lldb/test/API/functionalities/gdb_remote_client/a.yaml |
 | lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py |
 | lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py |
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
|
 | lld/test/ELF/weak-undef-rw.s |
 | lld/test/ELF/relocation-undefined-weak.s |
 | lld/test/ELF/weak-undef.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
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
Commit
84adaabf3e04d1938a137b1299a677d2fa489383
by llvm-dev[X86][AVX] Add test case for PR52122
|
 | llvm/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>
|
 | flang/include/flang/Optimizer/Support/InitFIR.h |
 | flang/tools/fir-opt/fir-opt.cpp |
Commit
8249e50bf4286deee314e36ce7e67f38bcd79db2
by Raphael Isemann[lldb][NFC] Remove unnecessary reference from ParseChildMembers's default_accessibility parameter
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
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
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll |
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>
|
 | flang/lib/Optimizer/Dialect/FIROps.cpp |
 | flang/include/flang/Optimizer/Transforms/CMakeLists.txt |
 | flang/include/flang/Optimizer/Transforms/RewritePatterns.td |
 | flang/lib/Optimizer/Transforms/CMakeLists.txt |
 | flang/test/Fir/convert-fold.fir |
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
|
 | llvm/lib/Object/COFFModuleDefinition.cpp |
 | llvm/include/llvm/Object/ELF.h |
 | llvm/include/llvm/Object/Error.h |
 | llvm/lib/Object/XCOFFObjectFile.cpp |
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
|
 | lldb/include/lldb/Target/ABI.h |
 | lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp |
 | lldb/source/Plugins/ABI/AArch64/ABIAArch64.h |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h |
 | lldb/source/Target/ABI.cpp |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/include/lldb/Target/DynamicRegisterInfo.h |
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
|
 | lldb/unittests/Target/DynamicRegisterInfoTest.cpp |
 | lldb/include/lldb/Target/DynamicRegisterInfo.h |
 | lldb/source/Target/DynamicRegisterInfo.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
|
 | lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp |
 | lldb/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
|
 | lldb/include/lldb/Target/DynamicRegisterInfo.h |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/unittests/Target/DynamicRegisterInfoTest.cpp |
 | lldb/source/Target/DynamicRegisterInfo.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
|
 | clang/include/clang/Basic/DiagnosticParseKinds.td |
 | clang/lib/Parse/ParseStmt.cpp |
 | clang/test/CodeGen/pragma-fenv_access.c |
 | clang/test/Parser/pragma-fenv_access-ms.c |
 | clang/lib/Parse/ParsePragma.cpp |
 | clang/include/clang/Basic/TokenKinds.def |
 | clang/include/clang/Parse/Parser.h |
 | clang/lib/Parse/Parser.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
|
 | mlir/docs/Bindings/Python.md |