- Nov 26, 2020
-
-
Simon Pilgrim authored
-
David Green authored
This strips out a lot of the code that should no longer be needed from the MVETailPredictionPass, leaving the important part - find active lane mask instructions and convert them to VCTP operations. Differential Revision: https://reviews.llvm.org/D91866
-
Simon Pilgrim authored
Revert rG12d59b69 "[DAG] Legalize umin(x,y) -> sub(x,usubsat(x,y)) and umax(x,y) -> add(x,usubsat(y,x)) iff usubsat is legal" This reverts commit 12d59b69. Prematurely pushed this to trunk
-
Simon Pilgrim authored
[DAG] Legalize umin(x,y) -> sub(x,usubsat(x,y)) and umax(x,y) -> add(x,usubsat(y,x)) iff usubsat is legal If usubsat() is legal, this is likely to result in smaller codegen expansion than the default cmp+select codegen expansion. Allows us to move the x86-specific lowering to the generic expansion code.
-
Benjamin Kramer authored
-
Jan Svoboda authored
Depends on D83697 Original patch by Daniel Grumberg. Differential Revision: https://reviews.llvm.org/D83698
-
Robert Lougher authored
A crash/assertion failure in the greedy register allocator was tracked down to a debug instr being passed to LiveIntervals::getInstructionIndex. Normally this should not occur as debug instructions are collected and removed by LiveDebugVariables before RA, and reinserted afterwards. However, when a function has no debug info, LiveDebugVariables simply strips any debug values that are present as they're not needed (this situation will occur when a function with debug info is inlined into a nodebug function). The problem is, it only removes DBG_VALUE instructions, leaving DBG_LABELs (the cause of the crash). This patch updates the LiveDebugVariables nodebug path to remove all debug instructions. The test case verifies that DBG_VALUE/DBG_LABEL instructions are present, and that they are stripped. When -experimental-debug-variable-locations is enabled, certain variable locations are represented by DBG_INSTR_REF instead of DBG_VALUE. The test case verifies that a DBG_INSTR_REF is emitted by the option, and that it is also stripped. Differential Revision: https://reviews.llvm.org/D92127
-
Raphael Isemann authored
Same idea as in D92103 and D92106, but I realised after creating those reviews that there are also TemplateTemplateParmDecls that can have default arguments, so here's hopefully the last patch for default template arguments. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D92119
-
Florian Hahn authored
Update VPReplicateRecipe to inherit from VPValue. This still does not update scalarizeInstruction to set the result for the VPValue of VPReplicateRecipe, because this first requires tracking scalar values in VPTransformState. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D91500
-
Stephan Herhut authored
This change is required so that bufferization can properly identify the linalg.yield as a terminator with an associated parent op. Differential Revision: https://reviews.llvm.org/D92173
-
David Stenberg authored
When bailing out in rewriteLoopExitValues() you could be left with PHI nodes in the DeadInsts vector. Those would be not handled by the use of RecursivelyDeleteTriviallyDeadInstructions() in IndVarSimplify. This resulted in the IndVarSimplify pass returning an incorrect modified status. This was caught by the expensive check introduced in D86589. This patches changes IndVarSimplify so that it deletes those PHI nodes, using RecursivelyDeleteDeadPHINode(). This fixes PR47486. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D91153
-
Sjoerd Meijer authored
The cost-model is not getting the cost right for a mul with <2 x i64> operands, i.e. we don't have a MUL.2d, and this is precommitting some tests before adjusting this.
-
Kazushi (Jam) Marukawa authored
Add comprehensive stackframe regression tests as a preparation of VEFrameLowering.cpp optimizations. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D92170
-
Stephan Herhut authored
This enables partial bufferization that includes function signatures. To test this, this change also makes the func-bufferize partial and adds a dedicated finalizing-bufferize pass. Differential Revision: https://reviews.llvm.org/D92032
-
Aleksandr Platonov authored
In some cases system includes extractions is not enough, we also need target specific defines. The problems appears when clang default target is not the same as toolchain's one (GCC cross-compiler, MinGW on Windows). After this patch `query-driver` also extracts target and adds `--target=<extracted target>` compile option. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D92012
-
Simon Pilgrim authored
Add 32-bit tests and test i8/i16/i32/i64/i128 like we do for abs.ll
-
Florian Hahn authored
Add a basic implementation of getGatherScatterOpCost to BasicTTIImpl. The implementation estimates the cost of scalarizing the loads/stores, the cost of packing/extracting the individual lanes and the cost of only selecting enabled lanes. This more accurately reflects the current cost on targets like AArch64. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D91984
-
Hafiz Abid Qadeer authored
I am working on a baremetal riscv toolchain using LLVM runtime and LLD linker. Baremetal.cpp provides most of the things needed for such toolchain. So I have modified it to also handle riscv64/32-unknown-elf targets alongside arm-none-eabi. Currently, targets like riscv64-unknown-elf are handled by RISCVToolChain which mostly expects a gcc toolchain to be present. If you dont want the dependency on gcc-toolchain/libgloss or want to use LLD, then RISCVToolChain is not a good fit. So in the toolchain selection code, I have made this dependency of RISCVToolChain on gcc toolchain explicit. It is created if gcc-toolchain option is present. Otherwise Baremetal toolchain is created. I will be happy to hear if there is a better way to choose between these two toolchains. Reviewed By: jroelofs Differential Revision: https://reviews.llvm.org/D91442
-
Marek Kurdej authored
This will fix remaining failures on gcc-9 buildbot: http://lab.llvm.org:8011/#/builders/101. gcc-8 and gcc-9 do not support constexpr destructors nor constexpr allocation. Fix gcc warnings: -Wconversion, -Wpragmas.
-
Kerry McLaughlin authored
Updated the affected scalable_of_scalable tests in sve-gep.ll, as isConstantSplatValue now returns true in DAGCombiner::visitMUL and folds `(mul x, 1) -> x` Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D91363
-
Max Kazantsev authored
This reverts commit f690986f. Compile time then and again...
-
Simon Pilgrim authored
Differential Revision: https://reviews.llvm.org/D91339
-
Max Kazantsev authored
Reverted because the compile time impact is still too high. isKnownViaNonRecursiveReasoning is used twice, we can do it just once. Differential Revision: https://reviews.llvm.org/D92152
-
Max Kazantsev authored
This reverts commit 3d4c0460. Compile time impact is still high. Need to understand why. Differential Revision: https://reviews.llvm.org/D92153
-
Georgii Rymar authored
We report an error for unknown `DT_PLTREL` values. This switches the error to warning. Differential revision: https://reviews.llvm.org/D92087
-
Max Kazantsev authored
Previously we tried to using isKnownPredicateAt, but it makes an extra query to isKnownPredicate, which has negative impact on compile time. Let's try to use more lightweight isBasicBlockEntryGuardedByCond. Differential Revision: https://reviews.llvm.org/D92152
-
Craig Topper authored
This handles cases were the input isn't known to be sign extended.
-
Craig Topper authored
[RISCV] Add test cases for missed opportunities to use sbsetw/sbclrw/sbinvw when the result isn't known to be sign extended. If the input isn't sign extended, but the output of the or/xor/and is used by a sign_inreg we can still use sbsetw/sbclrw/sbinvw.
-
Marek Kurdej authored
-
Max Kazantsev authored
This reverts commit 14f2ad0e. Reverting to investigate compile time drop. Differential Revision: https://reviews.llvm.org/D92152
-
Mark de Wever authored
I recalled Marshall had already made this change. The change is committed in e3f89a98.
-
Marek Kurdej authored
-
Marek Kurdej authored
[libc++] [P0966] [C++20] Fix bug PR45368 by correctly implementing P0966: string::reserve should not shrink. This patch fixes the implementation as well as the tests that didn't actually test the wanted behaviour. You'll find all the details in the bug report. It adds as well deprecation warning for reserve() (without argument) and adds a test. http://wg21.link/P0966R1 https://bugs.llvm.org/show_bug.cgi?id=45368 https://reviews.llvm.org/D54992 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D91778
-
Jay Foad authored
It's more future-proof to use isGFX10Plus from the start, on the assumption that future architectures will be based on current architectures. Also make use of the existing isGFX9Plus in a few places. Differential Revision: https://reviews.llvm.org/D92092
-
Marek Kurdej authored
Currently, papers and issues are in separate .csv files (that is easier to update), but I can put them inline.Transforming current html tables into rst are done by the script (attached to the patch FYI but I'll remove it before committing). I'll of course update RST files before committing to match any modifications that may happen in master branch. This patch moves the status pages in www/ to RST format in docs/. It also does some other minor changes: fix copyright year and broken comment end, adds substitutions for coherence (and add colors, but that can be removed easily). It adds as well redirects from old to new status pages. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D92076
-
Raphael Isemann authored
After cf1c774d, Clang seems to generate code that is more similar to icc/Clang, so we can use the same line numbers for all compilers in this test.
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/602 Differential Revision: https://reviews.llvm.org/D92148
-
Zhengyang Liu authored
Differential Revision: https://reviews.llvm.org/D71126
-
Marek Kurdej authored
Needed for a future automatic update to RST.
-
Martin Storsjö authored
-