- Apr 29, 2021
-
-
Dan Liew authored
This is post commit follow up based on discussions in https://reviews.llvm.org/D101122. Differential Revision: https://reviews.llvm.org/D101490 (cherry picked from commit f4c7e82d1b21e637c4e0c53125b126c407d8bdbf)
-
Mike Urbach authored
This adds a method to directly invoke `mlirOperationDestroy` on the MlirOperation wrapped by a PyOperation. Reviewed By: stellaraccident, mehdi_amini Differential Revision: https://reviews.llvm.org/D101422
-
Roland McGrath authored
Reviewed By: phosek, cryptoad, hctim Differential Revision: https://reviews.llvm.org/D101407
-
John Demme authored
This allows out-of-tree users to derive PyConcreteType to bind custom types. The Type version of https://reviews.llvm.org/D101063/new/ Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D101496
-
Alexander Shaposhnikov authored
Add support for LC_THREAD/LC_UNIXTHREAD (these load commands can be copied over without any modifications). Test plan: make check-all Differential revision: https://reviews.llvm.org/D101384
-
Craig Topper authored
After D100691, predicates should be cheap to compare again so we don't need to filter anymore. This is mostly just a revert of several patches going back to 2018. Reviewed By: kparzysz Differential Revision: https://reviews.llvm.org/D100695
-
Amanieu d'Antras authored
Fixes PR49932 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D100322
-
Roman Lebedev authored
As noticed in post-commit review. I've gone through several iterations of that name, and somehow managed to end up with an incorrect one.
-
Dávid Bolvanský authored
Solves regression mentioned in PR50143. As noted in D101440, proper modelling for calloc would require new attribute inaccessible_or_returned_memonly.
-
Denys Petrov authored
Summary: During pointer dereferencing CastRetrievedVal uses wrong type from the Store after type punning. Namely, the pointer casts to another type and then assigns with a value of one more another type. It produces NonLoc value when Loc is expected. Differential Revision: https://reviews.llvm.org/D89055 Fixes: https://bugs.llvm.org/show_bug.cgi?id=37503 https://bugs.llvm.org/show_bug.cgi?id=49007
-
Roman Lebedev authored
While we have a known profitability issue for sinking in presence of non-unconditional predecessors, there isn't any known issues for having multiple such non-unconditional predecessors, so said restriction appears to be artificial. Lift it.
-
Roman Lebedev authored
-
Roman Lebedev authored
Essentially, we can't promise that the instruction is sinkable without introducing PHI's until we know that it is profitable to sink.
-
Roman Lebedev authored
We can just eagerly pre-check all the instructions that we *could* sink that we'd actually want to sink them, clamping the number of instructions that we'll sink to stop just before the first unprofitable one.
-
Roman Lebedev authored
-
Vitaly Buka authored
D101031 added workaround for the bug.
-
Nathan James authored
Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D101461
-
Philip Reames authored
Follow up to D99912, specifically the revert, fix, and reapply thereof. This generalizes the invertible recurrence logic in two ways: * By allowing mismatching operand numbers of the phi, we can recurse through a pair of phi recurrences whose operand orders have not been canonicalized. * By allowing recurrences through operand 1, we can invert these odd (but legal) recurrence. Differential Revision: https://reviews.llvm.org/D100884
-
Nick Lewycky authored
-
Bardia Mahjour authored
This patch causes the loop vectorizer to not interleave loops that have nounroll loop hints (llvm.loop.unroll.disable and llvm.loop.unroll_count(1)). Note that if a particular interleave count is being requested (through llvm.loop.interleave_count), it will still be honoured, regardless of the presence of nounroll hints. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D101374
-
Petr Hosek authored
When using the per-target runtime build, it may be desirable to have different __config_site headers for each target where all targets cannot share a single configuration. The layout used for libc++ headers after this change is: ``` include/ c++/ v1/ <libc++ headers except for __config_site> <target1>/ c++/ v1/ __config_site <target2>/ c++/ v1/ __config_site <other targets> ``` This is the most optimal layout since it avoids duplication, the only headers that's per-target is __config_site, all other headers are shared across targets. This also means that we no need two -isystem flags: one for the target-agnostic headers and one for the target specific headers. Differential Revision: https://reviews.llvm.org/D89013 -
Sanjay Patel authored
I was investigating a seemingly unrelated improvement in demanded bits for shift-left, but that caused regressions on these tests because we were able to look through/eliminate the mask. https://alive2.llvm.org/ce/z/Ztdr22 define i8 @src(i32 %x, i32 %y, i32 %shift) { %and = and i32 %shift, 3 %conv = and i32 %x, 255 %shr = lshr i32 %conv, %and %sub = sub i32 8, %and %shl = shl i32 %y, %sub %or = or i32 %shr, %shl %conv2 = trunc i32 %or to i8 ret i8 %conv2 } define i8 @tgt(i32 %x, i32 %y, i32 %shift) { %x8 = trunc i32 %x to i8 %y8 = trunc i32 %y to i8 %shift8 = trunc i32 %shift to i8 %and = and i8 %shift8, 3 %conv2 = call i8 @llvm.fshr.i8(i8 %y8, i8 %x8, i8 %and) ret i8 %conv2 } declare i8 @llvm.fshr.i8(i8,i8,i8)
-
Sanjay Patel authored
-
Jessica Paquette authored
SelectionDAG has separate ISD opcodes for regular global values and thread-local global values, while GlobalISel does not. This combine was ported from SDAG directly without knowing that. As a result, it was running on TLS globals. This makes it so that `matchFoldGlobalOffset` doesn't match on TLS globals, and adds an assert to `selectTLSGlobalValue` to make sure that TLS globals never have offsets. Differential Revision: https://reviews.llvm.org/D101478
-
Philip Reames authored
-
Mike Urbach authored
Previously, this API would return the PyObjectRef, rather than the underlying PyOperation. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D101416
-
Duncan P. N. Exon Smith authored
3d4f3a0d (https://reviews.llvm.org/D20586) avoided rescheduling a global value that was materialized first through a regular value, and then again through an alias. This commit catches the dual, avoiding rescheduling when the global value is first materialized through an alias. Differential Revision: https://reviews.llvm.org/D101419 Radar-Id: rdar://75752728
-
Philip Reames authored
Addresses a review comment from D101181
-
Arthur Eubanks authored
This reverts commit 9b0501ab. False positives reported in D100581.
-
Anirudh Prasad authored
[AsmParser][SystemZ][z/OS] Use updated framework in AsmLexer to accept special tokens as Identifiers - Previously, https://reviews.llvm.org/D99889 changed the framework in the AsmLexer to treat special tokens, if they occur at the start of the string, as Identifiers. - These are used by the MASM Parser implementation in LLVM, and we can extend some of the changes made in the previous patch to SystemZ. - In SystemZ, the special "tokens" referred to here are "_", "$", "@", "#". [_|$|@|#] are already supported as "part" of an Identifier. - The changes in this patch ensure that these special tokens, when they occur at the start of the Identifier, are treated as Identifiers. Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D100959
-
Philip Reames authored
Straight forward extension to the recently added infrastructure which was pioneered with shl. This was originally posted as part of D99687, but split off for ease of review. (I also decided to exclude the unknown start sign case explicitly for simplicity of understanding.) Differential Revision: https://reviews.llvm.org/D101181
-
Louis Dionne authored
This might have helped align static_asserts originally, but it doesn't anymore since we use LIBCPP_STATIC_ASSERT.
-
Florian Hahn authored
SCEV does not look through non-header PHIs inside the loop. Such phis can be analyzed by adding separate accesses for each incoming pointer value. This results in 2 more loops vectorized in SPEC2000/186.crafty and avoids regressions when sinking instructions before vectorizing. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D101286
-
Craig Topper authored
This uses to be how predicates were handled prior to HwMode being added. When the Predicates were converted to a std::vector it significantly increased the cost of a compare in GenerateVariants. Since ListInit's are uniquified by tablegen, we can use a simple pointer comparison to check for identical lists. In order to store the HwMode, we now add a separate string to PatternToMatch. This will be appended separately to the predicate string in getPredicateCheck. A new getPredicateRecords is added to allow GlobalISel and getPredicateCheck to both get the sorted list of Records. GlobalISel was ignoring any HwMode predicates before and still is. There is one slight change here, ListInits with different predicate orders aren't sorted so the filtering in GenerateVariants might fail to detect two isomorphic patterns with different predicate orders. This doesn't seem to be happening in tree today. My hope is this will allow us to remove all the BitVector tracking in GenerateVariants that was making up for predicates beeing expensive to compare. There's a decent amount of heap allocations there on large targets like X86, AMDGPU, and RISCV. Differential Revision: https://reviews.llvm.org/D100691
-
Sanjay Patel authored
-
Martin Storsjö authored
The buildbots now have bash available in the path from the start. Differential Revision: https://reviews.llvm.org/D101436
-
Ryan Santhirarajan authored
The Neon vadd intrinsics were added to the ARMSIMD intrinsic map, however due to being defined under an AArch64 guard in arm_neon.td, were not previously useable on ARM. This change rectifies that. It is important to note that poly128 is not valid on ARM, thus it was extracted out of the original arm_neon.td definition and separated for the sake of AArch64. Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D100772
-
MaheshRavishankar authored
Canonicalizations for subtensor operations defaulted to use the rank-reduced version of the operation, but the cast inserted to get back the original type would be illegal if the rank was actually reduced. Instead make the canonicalization not reduce the rank of the operation. Differential Revision: https://reviews.llvm.org/D101258
-
Jonas Devlieghere authored
Add a flag to change dsymutil's behavior and force a static variable to keep its enclosing function. The test shows a situation where that could be useful. I'm not convinced this behavior makes sense as a default, which is why it's behind a flag. rdar://74918374 Differential revision: https://reviews.llvm.org/D101337
-
-