This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Feb 15, 2021
-
-
Björn Schäpers authored
This allows the define BasedOnStyle: InheritParentConfig and then clang-format looks into the parent directories for their .clang-format and takes that as a basis. Differential Revision: https://reviews.llvm.org/D93844
-
David Green authored
-
Florian Hahn authored
Re-using the matched variable in the pattern does not work as expected. This patch fixes that by introducing a new variable for the 2nd level match.
-
Nikita Popov authored
At this point, we can treat the case of GEP/GEP aliasing and GEP/non-GEP aliasing in essentially the same way. The only differences are that we need to do an additional negative GEP base check, and that we perform a bailout on unknown sizes for the GEP/non-GEP case (the latter exists only to limit compile-time). This change is not quite NFC due to the peculiar effect that the DecomposedGEP for V2 can actually be non-trivial even if V2 is not a GEP. The reason for this is that getUnderlyingObject() can look through LCSSA phi nodes, while stripPointerCasts() doesn't. This can lead to slightly better results if single-entry phi nodes occur inside a loop, where looking through the phi node via aliasPhi() would subject it to phi cycle equivalence restrictions. It would probably make sense to adjust pointer cast stripping (for AA) to handle this case, and ensure consistent results.
-
Nikita Popov authored
-
David Green authored
Also added a PhaseOrdering test, to make sure they are not broken by VectorCombine cost changes.
-
Tony Tye authored
Changes for AMD GPU SIMemoryLegalizer: - Limit the memory scope to maximum supported by the scratch, LDS and GDS address spaces. - Improve assertion checking. - Correct toSIAtomicScope argument name. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D96643
-
Kazu Hirata authored
-
David Green authored
-
Kazu Hirata authored
-
Kazu Hirata authored
Identified with llvm-header-guard.
-
Kazu Hirata authored
-
Nikita Popov authored
For two GEPs with identical offsets, we currently first perform a base address query without size information, and then if it is MayAlias, perform another with size information. This is pointless, as the latter query should produce strictly better results. This was not quite true historically due to the way that NoAlias assumptions were handled, but that issue has since been resolved.
-
Nikita Popov authored
We currently detect GEPs that have exactly the same indexes by comparing the Offsets and VarIndices. However, the latter implicitly performs equality comparisons between two values, which is not generally legal inside BasicAA, due to the possibility of comparisons across phi cycles. I believe that in this particular instance this actually ends up being unproblematic, at least I wasn't able to come up with any cases that could result in an incorrect root query result. In the interest of being defensive, compute GetIndexDifference earlier (which knows how to handle phi cycles properly) and use the result of that to determine whether the offsets are identical.
-
- Feb 14, 2021
-
-
Nicolas Vasilache authored
-
aqjune authored
This is a follow-up of D95238's LangRef update. This patch updates `programUndefinedIfUndefOrPoison(V)` to return true if `V` is used by any memory-accessing instruction. Interestingly, this affected many tests in Attributors, mainly about adding noundefs. The tests are updated using llvm/utils/update_test_checks.py. I checked that the diffs are about updating noundefs. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D96642
-
Stephen Kelly authored
-
Sanjay Patel authored
This is unusual in the general (non-reciprocal) case because we need an extra instruction, but that should be better for general FP reassociation and codegen. We conservatively check for "arcp" FMF here as we do with existing fdiv folds, but it is not strictly necessary to have that. This is part of solving: https://llvm.org/PR49147 (The powi variant potentially has a different constraint.) Differential Revision: https://reviews.llvm.org/D96648
-
Juneyoung Lee authored
-
Juneyoung Lee authored
This patch fixes pr48832 by correctly generating the mask when a poison value is involved. Consider this CFG (which is a part of the input): ``` for.body: ; preds = %for.cond br i1 true, label %cond.false, label %land.rhs land.rhs: ; preds = %for.body br i1 poison, label %cond.end, label %cond.false cond.false: ; preds = %for.body, %land.rhs br label %cond.end cond.end: ; preds = %land.rhs, %cond.false %cond = phi i32 [ 0, %cond.false ], [ 1, %land.rhs ] ``` The path for.body -> land.rhs -> cond.end should be taken when 'select i1 false, i1 poison, i1 false' holds (which means it's never taken); but VPRecipeBuilder::createEdgeMask was emitting 'and i1 false, poison' instead. The former one successfully blocks poison propagation whereas the latter one doesn't, making the condition poison and thus causing the miscompilation. SimplifyCFG has a similar bug (which didn't expose a real-world bug yet), and a patch for this is also ongoing (see https://reviews.llvm.org/D95026). Reviewed By: bjope Differential Revision: https://reviews.llvm.org/D95217
-
Michael Kruse authored
-
Kazu Hirata authored
-
Kazu Hirata authored
Identified with readability-const-return-type.
-
Kazu Hirata authored
-
Ben Shi authored
Reviewed By: aykevl Differential Revision: https://reviews.llvm.org/D96590
-
Teresa Johnson authored
The new tests added by 1487747e for lld and gold plugin were largely equivalent, but the gold one was missing one of the cases added to lld. Add that test to the gold plugin version.
-
Teresa Johnson authored
The test added in 1487747e had a few cases that were out of order compared to the comments. Reordered to match.
-
Teresa Johnson authored
Implement some post-review cleanup suggestions for D96083.
-
Malhar authored
This patch ensures that vector predication and vectorization width pragmas work together correctly/as expected. Specifically, this patch fixes the issue that when vectorization_width > 1, the vector predication behaviour (this would matter if it has NOT been disabled explicitly by a pragma) was getting ignored, which was incorrect. The fix here removes the dependence of vector predication on the vectorization width. The loop metadata corresponding to clang loop pragma vectorize_predicate is always emitted, if the pragma is specified, even if vectorization is disabled by vectorize_width(1) or vectorize(disable) since the option is also used for interleaving by the LoopVectorize pass. Reviewed By: dmgreen, Meinersbur Differential Revision: https://reviews.llvm.org/D94779
-
Fangrui Song authored
* Delete unused ELFSymbolData::operator< * Inline createStringTable * Fix a comment * Change align to return uint64_t
-
Fangrui Song authored
-
Craig Topper authored
[RISCV] Rename the RVVBaseAddr ComplexPattern to just BaseAddr and use it to merge some scalar load/store patterns too.
-
Fangrui Song authored
MCELFStreamer::changeSection has registered the group signature symbol.
-
daquexian authored
Signed-off-by:
daquexian <daquexian566@gmail.com> Reviewed By: vinograd47 Differential Revision: https://reviews.llvm.org/D96645
-
Fangrui Song authored
-
Fangrui Song authored
As we don't sort local symbols, don't sort non-local symbols. This makes non-local symbols appear in their register order, which matches GNU as. The register order is nice in that you can write tests with interleaved CHECK prefixes, e.g. ``` // CHECK: something about foo .globl foo foo: // CHECK: something about bar .globl bar bar: ``` With the lexicographical order, the user needs to place lexicographical smallest symbol first or keep CHECK prefixes in one place.
-
Sanjay Patel authored
-
Mikhail Dvorskiy authored
[pstl] Iterator types renaming: ForwardIterator -> RandomAccessIterator; for parallel patterns/bricks https://reviews.llvm.org/D96266
-
- Feb 13, 2021
-
-
Nikita Popov authored
This removes IRBuilder methods accepting unsigned alignments in favor of their Align/MaybeAlign variants. These methods have been deprecated for more than a year at this point, so they should be safe to remove.
-
David Green authored
-