- Nov 01, 2023
-
-
Vlad Serebrennikov authored
This patch converts `LinkageSpecDecl::LanguageIDs` into scoped enum, and moves it to namespace scope, so that it can be forward-declared where required.
-
Ying Yi authored
A time trace scope variable of `ParseDeclarationOrFunctionDefinition` with the function's source location is added to record the time spent parsing the function's declaration or definition. Another time trace scope variable of `ParseFunctionDefinition` is also added to record the name of the defined function. A release note is added as well. Reviewed by: Aaron Ballman Pull request: #65268
-
Nicolas Vasilache authored
-
hassnaaHamdi authored
This patch adds the feature flag FP8FMA and the assembly/disassembly for the following instructions of NEON and SVE2: * NEON: - FMLALBlane - FMLALTlane - FMLALLBBlane - FMLALLBTlane - FMLALLTBlane - FMLALLTTlane - FMLALB - FMLALT - FMLALLB - FMLALLBT - FMLALLTB - FMLALLTT * SVE2: - FMLALB_ZZZI - FMLALT_ZZZI - FMLALB_ZZZ - FMLALT_ZZZ - FMLALLBB_ZZZI - FMLALLBT_ZZZI - FMLALLTB_ZZZI - FMLALLTT_ZZZI - FMLALLBB_ZZZ - FMLALLBT_ZZZ - FMLALLTB_ZZZ - FMLALLTT_ZZZ That is according to this documentation: https://developer.arm.com/documentation/ddi0602/2023-09 -
Joseph Huber authored
Summary: These GPU images are expected to be freestanding, so we should disable emission of builtins for whatever target we are offloading to.
-
Jacek Caban authored
This will be useful for ARM64EC, but it also fixes MinGW export handling when synthetic function symbols are exported.
-
Nikita Popov authored
Require that constants are ImmConstant for this transform, as we may otherwise generate constant expressions, which are not necessarily free.
-
Nicolas Vasilache authored
…to also take into account the op itself
-
Nikita Popov authored
We are working on a ConstantInt here, so folding will always succeed. This just avoids use of the ConstantExpr API.
-
Nikita Popov authored
This transform only deals in truncations, so use ConstantExpr::getTrunc() instead of ConstantExpr::getIntegerCast() to clarify what operation is being performed here.
-
Nikita Popov authored
Sync the implementation with the original AsmPrinter code.
-
Nikita Popov authored
Make the code structure more similar to how the original code in AsmPrinter looks nowadays: On error, break from the switch and fall through to general error handling code, which will try to ConstantFold and otherwise report an error. Ensures we always go through the constant folding path and avoids duplicating the error printing.
-
Alex Bradbury authored
Zcmp codegen is implemented (see RISCVMoveMerger and RISCVPushPopOptimizer), while Zicbop instructions are selected for llvm.prefetch instrinsics. So I believe it's correct to mark both as "Supported" and this is just an oversight.
-
Nikita Popov authored
We are working on ConstantInt here, so folding will always succeed. This just avoids use of the ConstantExpr API.
-
Stefan Gränitz authored
All `llvm::Error`s must be checked/consumed before destruction. Previously, the errors in this patch were only consumed when logging was enabled. Using `LLDB_LOG_ERROR` instead of `LLDB_LOG` fixes that, because it calls `llvm::consumeError()` explicitly when logging is disabled.
-
Nikita Popov authored
In the cases where this used to create a sext/zext constant expression we should later error for that expression anyway, so this should be NFC.
-
Nikita Popov authored
We're working on a ConstantInt here, so folding cannot fail. Only avoid the API use.
-
Sander de Smalen authored
We made the assumption that the registers were always physical registers, which doesn't have to be true.
-
Nikita Popov authored
We're working on a ConstantInt here, so constant folding will always succeed. Just avoid using the ConstantExpr API.
-
Michael Buch authored
Replaces the old idiom (of swapping the container to shrink it) with the newer STL alternative. Similar transition in LLDB was done in: https://reviews.llvm.org/D47492
-
Mitch Phillips authored
Looks like there's code out there that, instead of using '__attribute__((constructor(x)))' to add constructor functions, they just declare a global function pointer and use '__attribute__((section('.ctors')))' instead. Problem is, with memtag-globals, we pad the global function pointer to be 16 bytes large. This of course means we have an 8-byte real function pointer, then 8 bytes of zero padding, and this trips up the loader when it processes this section. Fixes #69939 -
Nikita Popov authored
Use IRBuilder or ConstantFolding instead.
-
David Spickett authored
SME2 is documented as part of the main SME supplement: https://developer.arm.com/documentation/ddi0616/latest/ The one change for debug is this new ZT0 register. This register contains data to be used with new table lookup instructions. It's size is always 512 bits (not scalable) and can be interpreted in many different ways depending on the instructions that use it. The kernel has implemented this as a new register set containing this single register. It always returns register data (with no header, unlike ZA which does have a header). https://docs.kernel.org/arch/arm64/sme.html ZT0 is only active when ZA is active (when SVCR.ZA is 1). In the inactive state the kernel returns 0s for its contents. Therefore lldb doesn't need to create 0s like it does for ZA. However, we will skip restoring the value of ZT0 if we know that ZA is inactive. As writing to an inactive ZT0 sets SVCR.ZA to 1, which is not desireable as it would activat...
-
Vlad Serebrennikov authored
This patch moves `ObjCMethodDecl::ImplementationControl` to a DeclBase.h so that it's complete at the point where corresponsing bit-field is declared. This patch also converts it to a scoped enum `clang::ObjCImplementationControl`.
-
Simon Pilgrim authored
truncateVectorWithPACK handling of sub-128-bit result types was improved some time ago, so remove the old 64-bit limit Fixes #68466
-
Exile authored
[clang][ASTImporter] Fix crash when template class static member imported to other translation unit. (#68774) Fixes: #68769 Co-authored-by:miaozhiyuan <miaozhiyuan@feysh.com>
-
Nikita Popov authored
Use ConstantFoldIntegerCast() instead, to remove the reliance on constant expressions.
-
Nikita Popov authored
This always works on a constant integer or integer splat, so the constant fold here should always succeed.
-
Nikita Popov authored
This is intended as the replacement for ConstantExpr::getIntegerCast(), which does not require availability of the corresponding constant expressions. It just forwards to ConstantFoldCastOperand with the correct opcode.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Adds additional test coverage for Issue #68466
-
Kai Sasaki authored
Progressive support of fastmath flag in the conversion of log type ops. See more detail https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981
-
Ramkumar Ramachandra authored
This reverts commit 5bfd89bd. It was causing build failures on ffmpeg on i686.
-
Ella Ma authored
[analyzer] Fix uninitialized base class with initializer list when ctor is not declared in the base class Fixes #70464 When ctor is not declared in the base class, initializing the base class with the initializer list will not trigger a proper assignment of the base region, as a CXXConstructExpr doing that is not available in the AST. This patch checks whether the init expr is an InitListExpr under a base initializer, and adds a binding if so.
-
Nikita Popov authored
This adds a writable attribute, which in conjunction with dereferenceable(N) states that a spurious store of N bytes is introduced on function entry. This implies that this many bytes are writable without trapping or introducing data races. See https://llvm.org/docs/Atomics.html#optimization-outside-atomic for why the second point is important. This attribute can be added to sret arguments. I believe Rust will also be able to use it for by-value (moved) arguments. Rust likely won't be able to use it for &mut arguments (tree borrows does not appear to allow spurious stores). In this patch the new attribute is only used by LICM scalar promotion. However, the actual motivation for this is to fix a correctness issue in call slot optimization, which needs this attribute to avoid optimization regressions. Followup to the discussion on D157499. Differential Revision: https://reviews.llvm.org/D158081
-
Vlad Serebrennikov authored
This patch moves `OMPDeclareReductionDecl::InitKind` to DeclBase.h, so that it's complete at the point where corresponding bit-field is declared. This patch also converts it to scoped enum named `OMPDeclareReductionInitKind`
-
Nicolas Vasilache authored
-
Yingwei Zheng authored
This patch adds missing dependencies required by the new unittest introduced by #68406.
-
Christian Ulmann authored
This commit removes the support for lowering GPU to ROCDL dialect with typed pointers. Typed pointers have been deprecated for a while now and it's planned to soon remove them from the LLVM dialect. Related PSA: https://discourse.llvm.org/t/psa-removal-of-typed-pointers-from-the-llvm-dialect/74502
-
Vlad Serebrennikov authored
This patch moves `RecordDecl::ArgPassingKind` to DeclBase.h to namespace scope, so that it's complete at the time bit-field is declared.
-