- Aug 03, 2023
-
-
Oliver Stannard authored
When generating unwind tables for code which uses return-address signing, we need to toggle the RA_SIGN_STATE DWARF register around any tail-calls, because these require the return address to be authenticated before the call, and could throw an exception. This is done using the .cfi_negate_ra_state directive before the call, and .cfi_restore_state at the start of the next basic block. However, since D153098, the .cfi_restore_state isn't being inserted, because the CFIFixup pass isn't being run. This re-enables that pass when return-adress signing is enabled. Reviewed By: ikudrin, MaskRay Differential Revision: https://reviews.llvm.org/D156428
-
4vtomat authored
Differential Revision: https://reviews.llvm.org/D156974
-
Florian Hahn authored
-
wangpc authored
To match GCC. Options `-m[no-]strict-align` are aliases of `-m[no-]unaligned-access` in clang, but there is no corresponding option in GCC. Support of `-m[no-]unaligned-access` in GCC may be needed to align Clang/GCC. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D155456
-
Ivan Kosarev authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D156110
-
Kai Luo authored
-
Matthias Springer authored
Also make `getNumDynamicEntriesUpToIdx` a helper function. It does not have to be an interface method. Differential Revision: https://reviews.llvm.org/D156864
-
Guruprasad Hegde authored
IDs of the note list start from 1. Link generated for each note started with index 0 i.e #Note0, #Note1 and so on. As a result, first link ("#Note0") was invalid, subsequent links pointed at wrong note. Now, generated links to the notes start with index 1 i.e (#Note1, #Note2 and so on. Patch by Guruprasad Hegde (gruuprasad)! Fixes https://github.com/llvm/llvm-project/issues/64054 Differential Revision: https://reviews.llvm.org/D156724 -
Matthias Springer authored
This is for consistency with the remaining MLIR code base. Differential Revision: https://reviews.llvm.org/D156857
-
wangpc authored
Wrong error message is fixed and a note of argument is printed. Tests are added in `llvm/test/TableGen/template-args.td`. Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D156966
-
Jay Foad authored
Backwards frame index elimination uses backwards register scavenging, which is preferred because it does not rely on accurate kill flags. Differential Revision: https://reviews.llvm.org/D156691
-
Simon Pilgrim authored
[X86] combineAnd - limit and(extract_vector_elt(shuffle(x)) -> extract_vector_elt(shuffle'(x)) fold to one use of the extract_vector_elt. Prevents a regression in an upcoming patch.
-
Simon Pilgrim authored
[X86] LowerBuildVectorv16i8 - attempt to merge lowest 2 x i16 insertions into a i32 MOVD scalar_to_vectpr Similar to D156350, if we were going to create 2 x i16 insertions (MOVD+PINSRW), try to merge them into a single MOVD to reduce the amount of GPR<->VEC traffic
-
Podchishchaeva, Mariya authored
InterpState frees resources in the destructor but doesn't have user-written copy c'tor or assignment operator, so copying it using default ones can cause double free. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D156900
-
Cullen Rhodes authored
An 'arith.constant dense<0>' is currently lowered to 'arm_sme.zero' as part of the 'vector.transfer_write' lowering during '-vector-to-arm-sme' conversion. This patch makes this lowering independent of the 'vector.transfer_write'. This can then be extended for further tile types and non-zero constants. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D156802
-
Podchishchaeva, Mariya authored
IdDeclInfoMap frees resources in the destructor but doesn't have user-written copy c'tor or assignment operator, so copying it using default ones can cause double free. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D156904
-
Cullen Rhodes authored
This patch extends the ArmSME load and store op lowering to use the memref indices. An integration test that loads two 32-bit element ZA tiles from memory and stores them back to memory in reverse order to verify this is added. Depends on D156467 D156558 Reviewed By: awarzynski, dcaballe Differential Revision: https://reviews.llvm.org/D156689
-
4vtomat authored
This patch does a few things: 1. Add a new type called Undefined to ScalarTypeKind. 2. Make RVVType::applyModifier early return when encounter invalid ScalarType, otherwise it could be modified to "non-invalid" type in the following code. 3. When FixedLMULType::SmallerThan is applied, the lmul should be "<" than specified one, so lmuls which are ">=" should be marked as invalid. Differential Revision: https://reviews.llvm.org/D156223 -
Tobias Gysi authored
This revision uses std::array instead of normal c arrays to store the operand and result segment sizes. This is a follow up to https://reviews.llvm.org/D155919, which converted the operand and result segment sizes to properties. Its use of c arrays triggered warnings in downstream projects due to the direct comparison of c arrays. This revision fixes the warnings using std::arrays that implement a proper comparison operator, which compares the array elements rather that the array pointers. Note: it seems the comparison operator is effectively dead code for now. It still seems useful to fix the warning and ensure the comparison works as expected assume someone starts using it at some point in time. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D156888
-
Benjamin Kramer authored
-
Rainer Orth authored
Solaris 12 was re-christened as Solaris 11.4 while still in beta, so all references are long obsolete and can be removed. Tested on `amd64-pc-solaris2.11`. Differential Revision: https://reviews.llvm.org/D156861
-
Christian Ulmann authored
This commit adds a DIModuleAttr to the set of debug info attributes and extends the LLVM IR import and export to support it. DIModule metadata is missing in the LLVM LangRef and cannot be produced from C or C++ input. So far, we only observed classic flang producing such DI metadata. Reviewed By: zero9178 Differential Revision: https://reviews.llvm.org/D156969
-
Mel Chen authored
Regarding this NFC change, please refer to the discussion in this thread. https://reviews.llvm.org/D150851#4467261 Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D155786
-
Jim Lin authored
It has been added in extractelt-int-rv32.ll.
-
Michael Platings authored
Since D156363 this test has been failing with -Wmissing-multilib if multilib is configured for the BareMetal toolchain. By setting sysroot the test is more hermetic and the failure is avoided.
-
Kazu Hirata authored
The declaration was added without a corresponding function definition by: commit c181f21a Author: Andrzej Warzynski <andrzej.warzynski@arm.com> Date: Wed Oct 19 17:04:31 2022 +0000
-
Johannes Doerfert authored
-
Johannes Doerfert authored
If we do not have exlusion blocks and the target is live, we only need to reach a dominating block.
-
Johannes Doerfert authored
-
Johannes Doerfert authored
If we cannot reach the target from the entry of a function without exclusion set, we cannot reach it at all. This can allow us to filter unique queries based on a uniform one.
-
Aleksandr Popov authored
After 28a91473 we don't use eliminateInstrViaWidening with InvertCondition = false. Therefore all related code is dead. Reviewed By: DaniilSuchkov Differential Revision: https://reviews.llvm.org/D156908
-
Martin Braenne authored
`build()` guarantees that we'll always have a `Decl`, so we can simplify the code. Reviewed By: ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D156859
-
Yeting Kuo authored
Previously we used the number of registers needed saved and pushable as the number of pushed registers. We also use pushed register number to caculate the stack size. It is not correct because Zcmp pushes registers from $ra to the max register needed saved and there is no gurantee that the needed saved registers are a sequenced list from $ra. There is an example about that. PushPopRegs should be 6 (ra,s0 - s4)= instead of 1. ``` ; llc -mtriple=riscv32 -mattr=+zcmp define void @foo() { entry: ; Old: .cfi_def_cfa_offset 16 ; New: .cfi_def_cfa_offset 32 tail call void asm sideeffect "li s4, 0", "~{s4}"() ret void } ``` Reviewed By: Jim, kito-cheng Differential Revision: https://reviews.llvm.org/D156407 -
Fabio D'Urso authored
This reverts commit 30b11b0e. We've found and fixed another failing test. Reviewed By: Caslyn Differential Revision: https://reviews.llvm.org/D156938
-
Mehdi Amini authored
Leaving this field unitialized could led to crashes when it'll diverge from the IRNumbering phase. Differential Revision: https://reviews.llvm.org/D156965
-
Alex Bradbury authored
This doesn't bring us to parity with the test/CodeGen/RISCV/half-* test cases, it simply picks off an initial set that can be supported especially easy. In order to make the review more manageable, I'll follow up with other cases. There is zero innovation in the test cases - they simply take the existing half/float cases and replace f16->bf16 and half->bfloat. Differential Revision: https://reviews.llvm.org/D156895
-
Vitaly Buka authored
-
Wenju He authored
No new lits are added since addToFrontier is only used in MachineDominanceFrontier::addToFrontier. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D155417
-
Bing1 Yu authored
Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D155863
-
Vitaly Buka authored
-