- Dec 20, 2023
-
-
Cyndy Ishida authored
Introduce RecordVisitor. This is used for different clients that want to extract information out of RecordSlice types. The first and immediate usecase is for serializing symbol information into TBD files.
-
Guillaume Chatelet authored
This mask is an implementation detail of `FPBits` and shouldn't really leak outside of it.
-
jeanPerier authored
Lower procedure pointer components, except in the context of structure constructor (left TODO). Procedure pointer components lowering share most of the lowering logic of procedure poionters with the following particularities: - They are components, so an hlfir.designate must be generated to retrieve the procedure pointer address from its derived type base. - They may have a PASS argument. While there is no dispatching as with type bound procedure, special care must be taken to retrieve the derived type component base in this case since semantics placed it in the argument list and not in the evaluate::ProcedureDesignator. These components also bring a new level of recursive MLIR types since a fir.type may now contain a component with an MLIR function type where one of the argument is the fir.type itself. This required moving the "derived type in construction" stackto the converter so that the object and function type lowering utilities share the same state (currently the function type utilty would end-up creating a new stack when lowering its arguments, leading to infinite loops). The BoxedProcedurePass also needed an update to deal with this recursive aspect.
-
Guillaume Chatelet authored
-
Michael Maitland authored
The SiFive7 scheduler model has been using AcquireAtCycles and ReleaseAtCycles for some time. Without EnableIntervals, the scheduler was not making decisions based on this information. This patch sets EnableIntervals to true, and the test case demonstrates that the VADD instructions can be issued one cycle earlier since the VCQ is not reserved. This leads to better saturation of the SiFive7VA.
-
- Dec 19, 2023
-
-
Mingming Liu authored
[compiler-rt]Add lld into dependency for apple builds now that lld Mach-O backend is available (#75884) Tested by `ninja check-profile` and all tests pass on a mac laptop.
-
Guillaume Chatelet authored
-
Jonas Paulsson authored
Pass the original MMO instead of different individual values. getAlign() was used before where actually getOriginalAlign() would have been better, and this patch has the same effect.
-
Rin authored
Avoid the pre-truncate of BUILD_VECTOR sources when there is more than one use. This can avoid using unnecessary movs later down the instruction selection pipeline.
-
Anatoly Trosinenko authored
Drop custom selector code for ptrauth_(sign|strip|blend) intrinsics from AArch64InstructionSelector::selectIntrinsic function. The code for strip and blend intrinsics was needed because of a bug in TableGen fixed in 78623b07. The ptrauth_sign intrinsic was presumably fixed long ago.
-
Ivan Butygin authored
Abort fusion if memref load may alias write, but not the exact alias. Add alias check hook to `naivelyFuseParallelOps`, so user can customize alias checking. Use builtin alias analysis in `ParallelLoopFusion` pass.
-
Antonio Frighetto authored
A miscompilation issue has been addressed with improved checking. Fixes: https://github.com/llvm/llvm-project/issues/75822.
-
David Spickett authored
The changes to this test uncovered a pre-existing issue that I've documented in the linked issue.
-
Nikita Popov authored
This will already be checked inside markConstant().
-
Louis Dionne authored
We shouldn't need to link against libc++ or libc++abi when building libunwind, since that would otherwise be a circular dependency.
-
Kerry McLaughlin authored
Adds the following SME2 builtins: - svread_hor/ver, - svwrite_hor/ver, - svread_za64, - svwrite_za64 See https://github.com/ARM-software/acle/pull/217
-
Timm Bäder authored
-
Haojian Wu authored
This fixes https://github.com/llvm/llvm-project/issues/64347. The CTAD for an aggregate class is missing to handle the explicit type conversion case, e.g. `TemplateFooClass(1, 2);`. Per C++ expr.type.conv p1, the deduced type is the return type of the deduction guide selected by the CTAD for the reminder. In the deduction implementation `DeduceTemplateSpecializationFromInitializer`, the parenthesized express-list case relies on the `ParenListExpr` parameter (default is nullptr), the AST `ParenListExpr` node is not built for all variant initializer cases (`BuildCXXTypeConstructorExpr`, `BuildCXXNew` etc), thus the deduction doesn't perform for these cases. This patch fixes it by removing the `ParenListExpr` and using the `Inits` instead (which also simplifies the interface and implementation).
-
Nikita Popov authored
Only used in ConstantFoldCompareInstOperands(), which does not actually use TLI.
-
Oleksandr "Alex" Zinenko authored
Extend the `amendOperation` mechanism for translating dialect attributes attached to operations from another dialect when translating MLIR to LLVM IR. Previously, this mechanism would have no knowledge of the LLVM IR instructions created for the given operation, making it impossible for it to perform local modifications such as attaching operation-level metadata. Collect instructions inserted by the LLVM IR builder and pass them to `amendOperation`.
-
Martin Storsjö authored
-
Guillaume Chatelet authored
Before this patch the compiler could generate unnecessary calls to the selected implementation. https://clang.llvm.org/docs/AttributeReference.html#flatten
-
Nikita Popov authored
If the base was poison, retain the poison value.
-
Paschalis Mpeis authored
`createFunctionType` returns a FunctionType that may contain a mask, which is currently placed as the last parameter to the Function. The placement happens according to `VFParameters` of `VFInfo`, and it should be able to handle VFABI specification changes. Regarding the return type, it uses the scalar type of the input instruction, as the specification does not encode in the mangled name such information. If that ever happens, that information should be available from `VFInfo`.
-
Nikita Popov authored
This one doesn't seem to make a practical difference because we'd canonicalize undef -> poison in the relevant cases anywy.
-
Nikita Popov authored
-
Christian Sigg authored
-
Nikita Popov authored
-
Nikita Popov authored
We can only set PoisonElts if the element is poison, not if it is undef.
-
Ramkumar Ramachandra authored
-
Nikita Popov authored
When constructing vectors from elements, use poison instead of undef as the base value. These literals always initialize all elements (padding the remainder with zero), so that the choice of base value does not affect semantics.
-
Hana Dusíková authored
[llvm-cov] format cells in report with 0/0 branches/functions/lines differenly (gray instead red) and make the table a bit nicer (#75780)
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Nikita Popov authored
-
Timm Bäder authored
The reference could be const, but this is even better.
-
Wang Pengcheng authored
The followed byte of `OPC_EmitRegister` is a MVT type, which is usually i32 or i64. We add `OPC_EmitRegisterI32` and `OPC_EmitRegisterI64` so that we can reduce one byte. Overall this reduces the llc binary size with all in-tree targets by about 10K.
-
David Spickett authored
By commit 12ed2c90. Fixes #75736
-
Timm Bäder authored
And const qualify some local variables
-
jeanPerier authored
Lowering was instantiating component symbols (but the last) in initial target designator as if they were whole objects, leading to collisions and bugs. Fixes https://github.com/llvm/llvm-project/issues/75728
-