- Feb 14, 2021
-
-
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
-
David Green authored
-
Simon Pilgrim authored
Alive2: https://alive2.llvm.org/ce/z/FzcrpH
-
Shivam Gupta authored
It should fix following error: Undefined symbols for architecture x86_64: "llvm::outs()", referenced from: FindNamedClassVisitor::VisitCXXRecordDecl(clang::CXXRecordDecl*) in FindClassDecls.cpp.o -
Nathan James authored
In clangd-12 the ability to override what clang tidy checks should run was moved into config. For the 13 release its a wise progression to remove the command line option for this. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D96508
-
Stephen Kelly authored
The normalization of matchers means that this now works in all language modes. Differential Revision: https://reviews.llvm.org/D96139
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D96223
-
Simon Pilgrim authored
Alive2: https://alive2.llvm.org/ce/z/4nkNGh
-
Simon Pilgrim authored
As discussed on D96413, as long as the promoted bits of the args are zero we can use the basic ISD::USUBSAT pattern directly, without the shifting like we do for other ops. I think something similar should be possible for ISD::UADDSAT as well, which I'll look at later. Also, create a ISD::USUBSAT node directly - this will be expanded back by the legalizer later on if necessary. Differential Revision: https://reviews.llvm.org/D96622
-
Kadir Cetinkaya authored
-
Tyker authored
Instcombine will convert the nonnull and alignment assumption that use the boolean condtion to an assumption that uses the operand bundles when knowledge retention is enabled. Differential Revision: https://reviews.llvm.org/D82703
-
Simon Pilgrim authored
We lost this in D56387/rG69bc0990 - where I got the src/dst bitwidths mixed up and assumed getValidShiftAmountConstant would catch it. Patch by @craig.topper - confirmed by @Carrot that it fixes PR49162
-
Heejin Ahn authored
Previously we assumed `rethrow`'s argument was always 0, but it turned out `rethrow` follows the same rule with `br` or `delegate`: https://github.com/WebAssembly/exception-handling/pull/137 https://github.com/WebAssembly/exception-handling/issues/146#issuecomment-777349038 Currently `rethrow`s generated by our backend always rethrow the exception caught by the innermost enclosing catch, so this adds a function to compute that and replaces `rethrow`'s argument with its computed result. This also renames `EHPadStack` in `InstPrinter` to `TryStack`, because in CFGStackify we use `EHPadStack` to mean the range between `catch`~`end`, while in `InstPrinter` we used it to mean the range between `try`~`catch`, so choosing different names would look clearer. Doesn't contain any functional changes in `InstPrinter`. Reviewed By: dschuff Differential Revision: https://reviews.llvm.org/D96595
-
Simon Pilgrim authored
-
David Green authored
-
Valeriy Savchenko authored
When newer build has duplicate issues the script tried to remove it from the list more than once. The new approach changes the way we filter out matching issues. Differential Revision: https://reviews.llvm.org/D96611
-
Kristina Bessonova authored
Reviewed By: ldionne, compnerd Differential Revision: https://reviews.llvm.org/D96342
-