- Jun 02, 2021
-
-
David Goldman authored
When completing an Objective-C method declaration by name, we need to preserve the leading text as a `qualifier` so we insert it properly before the first typed text chunk. Differential Revision: https://reviews.llvm.org/D100798
-
Guozhi Wei authored
This patch transforms the sequence lea (reg1, reg2), reg3 sub reg3, reg4 to two sub instructions sub reg1, reg4 sub reg2, reg4 Similar optimization can also be applied to LEA/ADD sequence. The modifications to TwoAddressInstructionPass is to ensure the operands of ADD instruction has expected order (the dest register of LEA should be src register of ADD). Differential Revision: https://reviews.llvm.org/D101970 -
Nikita Popov authored
Since fd7e309e this is no longer pulled in indirectly through DenseMapInfo.h.
-
Jonas Paulsson authored
This is currently NFC on benchmarks and tests. Review: Ulrich Weigand
-
Eli Friedman authored
When we're remapping an AddRec, the AddRec constructed by a partial rewrite might not make sense. This triggers an assertion complaining it's not loop-invariant. Instead of constructing the partially rewritten AddRec, just skip straight to calling evaluateAtIteration. Testcase was automatically reduced using llvm-reduce, so it's a little messy, but hopefully makes sense. Differential Revision: https://reviews.llvm.org/D102959
-
Nikita Popov authored
As suggested in https://bugs.llvm.org/show_bug.cgi?id=50527, this moves the DenseMapInfo for APInt and APSInt into the respective headers, removing the need to include APInt.h and APSInt.h from DenseMapInfo.h. We could probably do the same from StringRef and ArrayRef as well. Differential Revision: https://reviews.llvm.org/D103422
-
Craig Topper authored
[RISCV] Remove earlyclobber from vnsrl/vnsra/vnclip(u) when the source and dest are a single vector register. This guarantees they meet this overlap exception: "The destination EEW is smaller than the source EEW and the overlap is in the lowest-numbered part of the source register group" Being a single register guarantees the overlap is always in the lowerst-number part of the group. Reviewed By: frasercrmck, khchen Differential Revision: https://reviews.llvm.org/D103351
-
Craig Topper authored
Compares are considered a narrowing operation for register overlap. I believe for LMUL<=1 they meet this exception to allow overlap "The destination EEW is smaller than the source EEW and the overlap is in the lowest-numbered part of the source register group" Both the result and the sources will occupy a single register for LMUL<=1 so the overlap would always be in the "lowest-numbered part". Reviewed By: frasercrmck, HsiangKai Differential Revision: https://reviews.llvm.org/D103336
-
Raphael Isemann authored
This removes the direct dependency to the ObjC and C++ plugins. Reviewed By: bulbazord Differential Revision: https://reviews.llvm.org/D103158
-
- Jun 01, 2021
-
-
Raphael Isemann authored
This function was added in D67589 and returns an internal CommandReturnObject which isn't allowed in the SB API. This patch just makes it private as all uses of this function are inside SBCommandReturnObject. Reviewed By: jankratochvil Differential Revision: https://reviews.llvm.org/D103390
-
Sanjay Patel authored
-
Xun Li authored
D101841 added this test. It appears to generate different outcome on different platforms. Make it to only call -coro-split instead of entire O2 pipeline to simplify the test flow. Hope this will make the test more robust. Reviewed By: djtodoro Differential Revision: https://reviews.llvm.org/D103418
-
Alexey Bataev authored
Implemented better scheme for perfect/shuffled matches of the gather nodes which allows to fix the performance regressions introduced by earlier patches. Starting detecting matches for broadcast nodes and extractelement gathering. Differential Revision: https://reviews.llvm.org/D102920
-
gbreynoo authored
This change adds tests specifically for --parent-recurse-depth, --quiet and -o. The test for -o found a typo in an error message which is also fixed in this change. Differential Revision: https://reviews.llvm.org/D103250
-
Louis Dionne authored
This is a re-application of dc672999 which was reverted in f63adf5b because it broke the build. The issue should now be fixed. Attribution note: The original author of this patch is Erik Pilkington. I'm only trying to land it after rebasing. Differential Revision: https://reviews.llvm.org/D91630
-
Ole Strohm authored
Because half is limited to the `cl_khr_fp16` extension being enabled, `DefaultLvalueConversion` can fail when it's not enabled. The original assumption that it will never fail is therefore wrong now. Fixes: PR47976 Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D103175
-
Pushpinder Singh authored
Turns out the only purpose of this class was verify if device ID was in range or not which could be done easily by using g_atl_machine. Still getting rid of g_atl_machine is pending which would be done in a later patch. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D103443
-
Daniil Seredkin authored
InstCombine didn't perform the transformations when fmul's operands were the same instruction because it required to have one use for each of them which is false in the case. This patch fixes this + adds tests for them and introduces a new function isOnlyUserOfAnyOperand to check these cases in a single place. This patch is a result of discussion in D102574. Differential Revision: https://reviews.llvm.org/D102698
-
Evgeny Leviant authored
When toolchain can supports all of arm, armhf and armv6m architectures compiler-rt libraries won't compile because architecture specific flags are appended to single BUILTIN_CFLAGS variable. Differential revision: https://reviews.llvm.org/D103363
-
Florian Hahn authored
The current loop or any of its sub-loops may be infinite. Unless the function or the loops are marked as mustprogress, this in itself makes the loop *not* dead. This patch moves the logic to check whether the current loop is finite or mustprogress to `isLoopDead` and also extends it to check the sub-loops. This should fix PR50511. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D103382
-
Sanjay Patel authored
Try to make this easier to read as noted in D103280
-
Tres Popp authored
Previously, this assumed use of ModuleOp and FuncOp. There is no need to restrict this, and using interfaces allows these patterns to be used during dialect conversion to LLVM. Some assertions were removed due to inconsistent implementation of FunctionLikeOps. Differential Revision: https://reviews.llvm.org/D103447
-
Tobias Gysi authored
Fix signedness warnings in Utils.cpp and LinalgInterfaces.cpp.
-
Florian Hahn authored
If the index itself is already poison, the poison propagates through instructions clamping the index to a valid range. This still causes introducing a load of poison, as flagged by Alive2 and pointed out at 575e2aff. This patch updates the code to freeze the index, unless it is proven to not be poison. Reviewed By: nlopes Differential Revision: https://reviews.llvm.org/D103378
-
Fraser Cormack authored
This patch extends the RISC-V lowering of the 'fastcc' calling convention to vector types, both fixed-length and scalable. Without this patch, any function passing or returning vector types by value would throw a compiler error. Vectors are handled in 'fastcc' much as they are in the default calling convention, the noticeable difference being the extended set of scalar GPR registers that can be used to pass vectors indirectly. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D102505
-
Andy Wingo authored
This patch adds TargetStackID::WasmLocal. This stack holds locations of values that are only addressable by name -- not via a pointer to memory. For the WebAssembly target, these objects are lowered to WebAssembly local variables, which are managed by the WebAssembly run-time and are not addressable by linear memory. For the WebAssembly target IR indicates that an AllocaInst should be put on TargetStackID::WasmLocal by putting it in the non-integral address space WASM_ADDRESS_SPACE_WASM_VAR, with value 1. SROA will mostly lift these allocations to SSA locals, but any alloca that reaches instruction selection (usually in non-optimized builds) will be assigned the new TargetStackID there. Loads and stores to those values are transformed to new WebAssemblyISD::LOCAL_GET / WebAssemblyISD::LOCAL_SET nodes, which then lower to the type-specific LOCAL_GET_I32 etc instructions via tablegen patterns. Differential Revision: https://reviews.llvm.org/D101140
-
Florian Hahn authored
-
Douglas Yung authored
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in DependenceAnalysis.cpp and DependenceAnalysis.h. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103411
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Fusion.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103437
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Tiling.cpp and Utils.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103438
-
Yang Fan authored
GCC warning: ``` /llvm-project/clang-tools-extra/clangd/InlayHints.cpp: In member function ‘bool clang::clangd::InlayHintVisitor::VisitVarDecl(clang::VarDecl*)’: /llvm-project/clang-tools-extra/clangd/InlayHints.cpp:81:15: warning: unused variable ‘AT’ [-Wunused-variable] 81 | if (auto *AT = D->getType()->getContainedAutoType()) { | ^~ ``` -
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Vectorization.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103410
-
Roman Lebedev authored
... but lane-crossing shuffles are slow.
-
Roman Lebedev authored
Currently, X86 backend only has a global one-size-fits-all `FeatureFastVariableShuffle` feature, which controls profitability of both the cross-lane and per-lane variable shuffles. I guess, this has been fine so far. But at least on AMD Zen 3, while per-line variable shuffles (e.g. `VPSHUFB`) are as fast as as shuffles with fixed/immediate mask, while lane-crossing shuffles, e.g. `VPERMPS` is performing worse. So to get the benefits of variable-mask shuffles, but not the drawbacks of lane-crossing shuffles, as suggested by @RKSimon, split the feature flag into two. Differential Revision: https://reviews.llvm.org/D103274
-
Martin Storsjö authored
The pipes.quote function quotes using single quotes, the same goes for the newer shlex.quote (which is the preferred form in Python 3). This isn't suitable for quoting in command lines on Windows (and the documentation for shlex.quote even says it's only usable for Unix shells). In general, the python subprocess.list2cmdline function should do proper quoting for the platform's current shell. However, it doesn't quote the ';' char, which we pass within some arguments to run.py. Therefore use the custom reimplementation from lit.TestRunner which is amended to quote ';' too. The fact that arguemnts were quoted with single quotes didn't matter for command lines that were executed by either bash or the lit internal shell, but if executing things directly using subprocess.call, as in _supportsVerify, the quoted path to %{cxx} fails to be resolved by the Windows shell. This unlocks 114 tests that previously were skipped on Windows. Differential Revision: https://reviews.llvm.org/D103310 -
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D102148
-
Serge Pavlov authored
The test CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll checks code generation for constrained floating point intrinsics. Many test cases in it were implemented using operations on constants. Constant folding of constrained intrinsics would make these test cases almost useless, because they would check only constant loading. To keep the tests useful, operations on constants were replaced with operations on function parameters. Differential Revision: https://reviews.llvm.org/D103259
-
Max Kazantsev authored
-
Lewuathe authored
A single backslash is not properly escaped in the web documentation. We can make sure to escape for rendering subscripts. Additionally, it also fixed the mal-formed equations in //"Affine to fixed point"// and //"Fixed point to affine"// sections. With this fix, the page is rendered as follows. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D101252
-