- Dec 22, 2020
-
-
Zakk Chen authored
Define vleff intrinsics and lower to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Zakk Chen <zakk.chen@sifive.com> Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D93516
-
Bing1 Yu authored
[LegalizeType] When LegalizeType procedure widens a masked_gather, set MemoryType's EltNum equal to Result's EltNum When LegalizeType procedure widens a masked_gather, set MemoryType's EltNum equal to Result's EltNum. As I mentioned in https://reviews.llvm.org/D91092, in previous code, If we have a v17i32's masked_gather in avx512, we widen it to a v32i32's masked_gather with a v17i32's MemoryType. When the SplitVecRes_MGATHER process this v32i32's masked_gather, GetSplitDestVTs will assert fail since what you are going to split is v17i32. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D93610
-
Zi Xuan Wu authored
Add basis of CSKY MCTargetDesc and it's enough to compile and link but doesn't yet do anything particularly useful. Once an ASM parser and printer are added in the next two patches, the whole thing can be usefully tested. Differential Revision: https://reviews.llvm.org/D93372
-
Tom Stellard authored
I'm not exactly sure what this is, but it appears to be a tool for reporting internal issues at Apple. These files haven't been meaningfully updated in 12 years, and it doesn't seem like there is any reason to keep them in tree. Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D93565
-
Nico Weber authored
Private extern symbols are used for things scoped to the linkage unit. They cause duplicate symbol errors (so they're in the symbol table, unlike TU-scoped truly local symbols), but they don't make it into the export trie. They are created e.g. by compiling with -fvisibility=hidden. If two weak symbols have differing privateness, the combined symbol is non-private external. (Example: inline functions and some TUs that include the header defining it were built with -fvisibility-inlines-hidden and some weren't). A weak private external symbol implicitly has its "weak" dropped and behaves like a regular strong private external symbol: Weak is an export trie concept, and private symbols are not in the export trie. If a weak and a strong symbol have different privateness, the strong symbol wins. If two common symbols have differing privateness, the larger symbol wins. If they have the same size, the privateness of the symbol seen later during the link wins (!) -- this is a bit lame, but it matches ld64 and this behavior takes 2 lines less to implement than the less surprising "result is non-private external), so match ld64. (Example: `int a` in two .c files, both built with -fcommon, one built with -fvisibility=hidden and one without.) This also makes `__dyld_private` a true TU-local symbol, matching ld64. To make this work, make the `const char*` StringRefZ ctor to correctly set `size` (without this, writing the string table crashed when calling getName() on the __dyld_private symbol). Mention in CommonSymbol's comment that common symbols are now disabled by default in clang. Mention in -keep_private_externs's HelpText that the flag only has an effect with `-r` (which we don't implement yet -- so this patch here doesn't regress any behavior around -r + -keep_private_externs)). ld64 doesn't explicitly document it, but the commit text of http://reviews.llvm.org/rL216146 does, and ld64's OutputFile::buildSymbolTable() checks `_options.outputKind() == Options::kObjectFile` before calling `_options.keepPrivateExterns()` (the only reference to that function). Fixes PR48536. Differential Revision: https://reviews.llvm.org/D93609
-
ShihPo Hung authored
This defines vmadd, vmacc, vnmsub, and vnmsac intrinsics and lower to V instructions. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
ShihPo Hung <shihpo.hung@sifive.com> Differential Revision: https://reviews.llvm.org/D93632
-
Fangrui Song authored
Delete tests which are covered by others.
-
Ta-Wei Tu authored
This is a follow-up patch of D87045. The patch implements "loop-nest mode" for `LPMUpdater` and `FunctionToLoopPassAdaptor` in which only top-level loops are operated. `createFunctionToLoopPassAdaptor` decides whether the returned adaptor is in loop-nest mode or not based on the given pass. If the pass is a loop-nest pass or the pass is a `LoopPassManager` which contains only loop-nest passes, the loop-nest version of adaptor is returned; otherwise, the normal (loop) version of adaptor is returned. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D87531
-
Craig Topper authored
We can infer the input type from the result type. For vmv.v.v its the same. For vmv.v.x its the element type.
-
Craig Topper authored
These were accidentally identical to the vmv.v.x tests. I must have fumbled when I copied them from our downstream repo.
-
Tres Popp authored
This is a temporary fix until figuring out how to correct the forward declare in mlir/include/mlir/Support/LLVM.h Differential Revision: https://reviews.llvm.org/D93666
-
Congzhe Cao authored
When doing select-to-zext/sext transformations, we should not handle TrueVal and FalseVal of i1 type otherwise it would result in zext/sext i1 to i1. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D93272
-
Fangrui Song authored
GCC made the switch on 2018-04-10 ("rs6000: Enable -fasynchronous-unwind-tables by default"). In Clang, FreeBSD/NetBSD powerpc have already defaulted to -fasynchronous-unwind-tables. This patch defaults Generic_GCC powerpc (which affects Linux) to use -fasynchronous-unwind-tables. Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D92054 -
Tom Stellard authored
Change Summary: * Clarify that release manager can commit without code owner approval (but are still highly encouraged to get approval). * Clarify that there is no official release criteria. * Document what types of changes are allowed in each release phase. This is update is based on the RFC submitted here: http://lists.llvm.org/pipermail/llvm-dev/2020-May/141730.html Reviewed By: hans Differential Revision: https://reviews.llvm.org/D93493
-
Tom Stellard authored
I am experimenting with turning backends into loadable modules and in that scenario, target specific command line arguments won't be available until after the targets are initialized. Also, most other tools initialize targets before parsing arguments. Reviewed By: wlei Differential Revision: https://reviews.llvm.org/D93348
-
George Mitenkov authored
This patch adds documentation for the `mlir-spirv-cpu-runner`. It provides an overview of applied transformations and passes, as well as an example walk-through. Some typos in the documentation have been fixed as well. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D93620
-
Arthur Eubanks authored
-
Evandro Menezes authored
Define the `vand`, `vor` and `vxor` IR intrinsics for the respective V instructions. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Evandro Menezes <evandro.menezes@sifive.com> Differential Revision: https://reviews.llvm.org/D93574
-
Aart Bik authored
Fixes a merge conflict with previous two CLs. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D93664
-
Fangrui Song authored
CanBeUnnamed is rarely false. Splitting to a createNamedTempSymbol makes the intention clearer and matches the direction of reverted r240130 (to drop the unneeded parameters). No behavior change.
-
Fangrui Song authored
Most call sites set AlwaysAddSuffix to true. The two use cases do not really need false and can be more consistent with other temporary symbol usage.
-
Arthur Eubanks authored
AMDGPUTargetMachine::adjustPassManager() adds some alias analyses to the legacy PM. We need a way to do the same for the new PM in order to port AMDGPUTargetMachine::adjustPassManager() to the new PM. Currently the new PM adds alias analyses by creating an AAManager via PassBuilder and overriding the AAManager a PassManager uses via FunctionAnalysisManager::registerPass(). We will continue to respect a custom AA pipeline that specifies an exact AA pipeline to use, but for "default" we will now add alias analyses that backends specify. Most uses of PassManager use the "default" AAManager created by PassBuilder::buildDefaultAAPipeline(). Backends can override the newly added TargetMachine::registerAliasAnalyses() to add custom alias analyses. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D93261
-
Scott Linder authored
This reverts commit c4d10e7e. Differential Revision: https://reviews.llvm.org/D93648
-
Thomas Raoux authored
Extend unroll to support all element-wise ops and allow unrolling for ops with vector operands of with the same shape as the destination but different element type (like Cmp or Select). Differential Revision: https://reviews.llvm.org/D93121
-
ergawy authored
Just fixes a tiny typo in a link between 2 pages. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D93616
-
Michał Górny authored
-
nicolasvasilache authored
This revision drops init_tensor arguments from Linalg on tensors and instead uniformizes the output buffers and output tensors to be consistent. This significantly simplifies the usage of Linalg on tensors and is a stepping stone for its evolution towards a mixed tensor and shape abstraction discussed in https://llvm.discourse.group/t/linalg-and-shapes/2421/19. Differential Revision: https://reviews.llvm.org/D93469
-
Valentin Clement authored
Use the TableGen feature to have enum values for clauses. Next step will be to extend the MLIR part used currently by OpenMP to use the same enum on the dialect side. This patch also add function that convert the enum to StringRef to be used on the dump-parse-tree from flang. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D93576
-
Jez Ng authored
The llvm-lit docs indicate that it is deprecated. Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D93605
-
Jez Ng authored
* Migrate most of our tests to use `split-file` instead of `echo` * Remove individual `rm -f %t/libfoo.a` commands in favor of a top-level `rm -rf %t` * Remove unused `Inputs/libfunction.s` Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D93604
-
Pavel Labath authored
Use "static" instead.
-
Quentin Chateau authored
clangd actions have various naming schemes, the most common being PascalCase. This commit applies PascalCase to all clangd actions, and fix the status rendering in `renderTUAction` to look more consistent. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D93546
-
Nikita Popov authored
byval arguments should mostly get the same treatment as noalias arguments in alias analysis. This was not the case for the isIdentifiedFunctionLocal() function. Marking byval arguments as identified function local means that they cannot alias with other arguments, which I believe is correct. Differential Revision: https://reviews.llvm.org/D93602
-
Hafiz Abid Qadeer authored
This commit replace 'master' with 'main' in llvm/docs. Reviewed By: sammccall, kristof.beyls Differential Revision: https://reviews.llvm.org/D92831
-
Peter Collingbourne authored
Kernel support for MTE has been released in Linux 5.10. This means that it is a stable API and we no longer need to make the support conditional on a macro. We do need to provide conditional definitions of the new macros though in order to avoid a dependency on new kernel headers. Differential Revision: https://reviews.llvm.org/D93513
-
Michael Liao authored
-
Dmitry Preobrazhensky authored
Corrected to fix sanitizer error introduced by 8ab5770a
-
Dmitry Preobrazhensky authored
See bug 48515 (https://bugs.llvm.org/show_bug.cgi?id=48515) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D93548
-
Dmitry Preobrazhensky authored
See bug 48513 Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D93550
-