- May 04, 2021
-
-
Nico Weber authored
-
Tobias Gysi authored
Ensure the index operations are lowered on all linalg loop lowering paths. Differential Revision: https://reviews.llvm.org/D101827
-
Saurabh Jha authored
This patch implements C-style explicit type conversions in CXX for matrix types. It is part of fixing https://bugs.llvm.org/show_bug.cgi?id=47141 Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D101696
-
Nico Weber authored
Use that for internal names (including the default ignorelists of the sanitizers). Differential Revision: https://reviews.llvm.org/D101832
-
Bradley Smith authored
Specifically, this allow us to rely on the lane zero'ing behaviour of SVE reduce instructions. Co-authored-by:
Paul Walker <paul.walker@arm.com> Differential Revision: https://reviews.llvm.org/D101369
-
Simon Pilgrim authored
-
Anastasia Stulova authored
Pipe has not been a reserved keyword in the earlier OpenCL standards. However we failed to allow its use as an identifier in the original commit. This issues is fixed now and testing is improved accordingly. Differential Revision: https://reviews.llvm.org/D101052
-
Jan Svoboda authored
-
Simon Pilgrim authored
We were missing bitreverse matches in cases where InstCombine had seen a byte-level rotation at the end of a bitreverse sequence (replacing or() with fshl()), hindering the exhaustive bitreverse matching in CodeGenPrepare later on.
-
Simon Pilgrim authored
Initially only test for XOP which is the only thing that supports scalar bitreverse - we can add vector tests later.
-
Simon Pilgrim authored
-
Jan Svoboda authored
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D96776
-
David Stuttard authored
Ordering of operands was incorrect meaning that a16 operand was treated as tfe Differential Revision: https://reviews.llvm.org/D101618 Change-Id: I3b15e71ef5ff625f19f52823414ab684d76aca33
-
Florian Hahn authored
-
Alexey Bataev authored
This reverts commit fd18547e. Need to add a check for the size of the vectorization tree to avoid some extra vectorization.
-
Dávid Bolvanský authored
Original pattern: (__builtin_parity(x) ^ __builtin_parity(y)) LLVM rewrites it as: (__builtin_popcount(x) ^ __builtin_popcount(y)) & 1 Optimized form: __builtin_popcount(X^Y) & 1 Alive proof: https://alive2.llvm.org/ce/z/-GdWFr Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D101802
-
Georgy Komarov authored
This commit fixes cppcoreguidelines-pro-type-vararg false positives on 'char *' variables. The incorrect warnings generated by clang-tidy can be illustrated with the following minimal example: ``` goid foo(char* in) { char *tmp = in; } ``` The problem is that __builtin_ms_va_list desugared as 'char *', which leads to false positives. Fixes bugzilla issue 48042. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D101259 -
Kirill Bobyrev authored
Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D101516
-
Luis Penagos authored
This serves to augment the improvements made in https://reviews.llvm.org/D86581. It prevents clang-format from interpreting bitshift operators as template arguments in certain circumstances. This is an attempt at fixing https://bugs.llvm.org/show_bug.cgi?id=49868 Reviewed By: MyDeveloperDay, krasimir Differential Revision: https://reviews.llvm.org/D100778
-
Jessica Clarke authored
These tests show inefficient sign extension for AMOs on RISC-V. The normal CodeGen tests use anyext return values, but if marked signext then we end up generating unnecessary sign extension instructions. This can be seen when compiling C that returns an i32 (signed or unsigned), where the calling convention results in a signext return value.
-
David Zarzycki authored
-
LLVM GN Syncbot authored
-
Bjorn Pettersson authored
LazyBlockFrequenceInfoPass, LazyBranchProbabilityInfoPass and LoopAccessLegacyAnalysis all cache pointers to their nestled required analysis passes. One need to use addRequiredTransitive to describe that the nestled passes can't be freed until those analysis passes no longer are used themselves. There is still a bit of a mess considering the getLazyBPIAnalysisUsage and getLazyBFIAnalysisUsage functions. Those functions are used from both Transform, CodeGen and Analysis passes. I figure it is OK to use addRequiredTransitive also when being used from Transform and CodeGen passes. On the other hand, I figure we must do it when used from other Analysis passes. So using addRequiredTransitive should be more correct here. An alternative solution would be to add a bool option in those functions to let the user tell if it is a analysis pass or not. Since those lazy passes will be obsolete when new PM has conquered the world I figure we can leave it like this right now. Intention with the patch is to fix PR49950. It at least solves the problem for the reproducer in PR49950. However, that reproducer need five passes in a specific order, so there are lots of various "solutions" that could avoid the crash without actually fixing the root cause. Differential Revision: https://reviews.llvm.org/D100958
-
Simon Moll authored
This reverts the revert 02c5ba86 Fix: Pass was registered as DUMMY_FUNCTION_PASS causing the newpm-pass functions to be doubly defined. Triggered in -DLLVM_ENABLE_MODULE=1 builds. Original commit: This patch implements expansion of llvm.vp.* intrinsics (https://llvm.org/docs/LangRef.html#vector-predication-intrinsics). VP expansion is required for targets that do not implement VP code generation. Since expansion is controllable with TTI, targets can switch on the VP intrinsics they do support in their backend offering a smooth transition strategy for VP code generation (VE, RISC-V V, ARM SVE, AVX512, ..). Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D78203
-
Kadir Cetinkaya authored
Differential Revision: https://reviews.llvm.org/D101743
-
serge-sans-paille authored
Warn when a declaration uses an identifier that doesn't obey the reserved identifier rule from C and/or C++. Differential Revision: https://reviews.llvm.org/D93095
-
Fraser Cormack authored
This patch adds support for splatting i1 types to fixed-length or scalable vector types. It does so by lowering the operation to a SETCC of the equivalent i8 type. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D101465
-
David Green authored
As pointed out in D101726, this function already exists in MathExtras. It uses different types, but with the values used here I believe that should not make a functional difference.
-
LLVM GN Syncbot authored
-
Reshabh Sharma authored
This patch adds initial unit tests for appendToUsedList in the ModuleUtils. It specifically tests changes from https://reviews.llvm.org/D101363 which intent to allow insertion of globals in non-zero address spaces into the llvm used lists. Reviewed by: dblaikie Differential Revision: https://reviews.llvm.org/D101746
-
Greg McGary authored
ld64 automatically renames many sections depending on output type and assorted flags. Here, we implement the most common configs. We can add more obscure flags and behaviors as needed. Depends on D101393 Differential Revision: https://reviews.llvm.org/D101395
-
Shivam Gupta authored
Contributors often confused by whether this is a server or local issue.
-
Alex Lorenz authored
The use of llvm::sort causes periodic failures on the bot with EXPENSIVE_CHECKS enabled, as the regular sort pre-shuffles the array in the expensive checks mode, leading to a non-deterministic test result which causes the CodeGenCXX/attr-cpuspecific-outoflinedefs.cpp testcase to fail on the bot (http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/).
-
Matthias Springer authored
TransferReadOps that are a scalar read + broadcast are handled by TransferReadToVectorLoadLowering. Differential Revision: https://reviews.llvm.org/D101808
-
natashaknk authored
Lowerings equal and arithmetic_right_shift for elementwise ops to linalg dialect using linalg.generic Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D101804
-
Philip Reames authored
Instruction has mayHaveSideEffects method that returns true if mayThrow return true because this is called internally in the first method. As such, the call being removed is redundant. Patch By: vdsered (Daniil Seredkin) Differential Revision: https://reviews.llvm.org/D101685
-
Sam Clegg authored
`shouldImport` was not returning true in PIC mode even though out assumption elsewhere (in Relocations.cpp:scanRelocations) is that we don't report undefined symbols in PIC mode today. This was resulting functions that were undefined and but also not imported which hits an assert later on that all functions have valid indexes. Differential Revision: https://reviews.llvm.org/D101716
-
Juneyoung Lee authored
This patch optimizes the remaining possible cases in D101191 by generalizing isImpliedCondition()-based foldings. Assume that there is `op a, (select b, _, _)` where op is one of `and i1`, `or i1` or their select forms. We can do the following optimization based on the result of `isImpliedCondition(a, b)`: If a = true implies… - b = true: - select a, (select b, A, B), false => select a, A, false : https://alive2.llvm.org/ce/z/WCnZYh - and a, (select b, A, B) => select a, A, false : https://alive2.llvm.org/ce/z/uZhcMG - b = false: - select a, (select b, A, B), false => select a, B, false : https://alive2.llvm.org/ce/z/c2hJpV - and a, (select b, A, B) => select a, B, false : https://alive2.llvm.org/ce/z/5ggwMM If a = false implies… - b = true: - select a, true, (select b, A, B) => select a, true, A : https://alive2.llvm.org/ce/z/tidKvH - or a, (select b, A, B) => select a, true, A : https://alive2.llvm.org/ce/z/cC-uyb - b = false: - select a, true, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/ZXpJq9 - or a, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/hnDrJj Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101720 -
Juneyoung Lee authored
-