- Sep 22, 2020
-
-
Nicolas Vasilache authored
This revision allows representing a reduction at the level of linalg on tensors for generic ops by uniformizing with the named ops approach.
-
Eugene Zhulenev authored
[MLIR] Add subf and rsqrt EDSC intrinsics NOTE: Please merge it when ready. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D88039
-
Sam Parker authored
Remove the domain from the instructions and create a shouldInspect helper for LowOverheadLoops which queries it or a vpr operand. Differential Revision: https://reviews.llvm.org/D87900
-
Sam Parker authored
Mark all VPT instructions as valid. Differential Revision: https://reviews.llvm.org/D87759
-
David Spickett authored
The following should have unsigned return types but were signed: vceqd_s64 vceqzd_s64 vcged_s64 vcgezd_s64 vcgtd_s64 vcgtzd_s64 vcled_s64 vclezd_s64 vcltd_s64 vcltzd_s64 vtstd_s64 See https://developer.arm.com/documentation/ihi0073/latest Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D88009
-
Martin Storsjö authored
When cross compiling with clang-cl, clang splits the INCLUDE env variable around semicolons (clang/lib/Driver/ToolChains/MSVC.cpp, MSVCToolChain::AddClangSystemIncludeArgs) and lld splits the LIB variable similarly (lld/COFF/Driver.cpp, LinkerDriver::addLibSearchPaths). Therefore, the consensus for cross compilation with clang-cl and lld-link seems to be to use semicolons, despite path lists normally being separated by colons on unix and EnvPathSeparator being set to that. Therefore, handle the LIB variable similarly in Clang, when handling lib file arguments when driving linking via Clang. This fixes commands like "clang-cl test.c -Fetest.exe kernel32.lib" in a cross compilation setting. Normally, most users call (lld-)link directly, but meson happens to use this command syntax for has_function() tests. Reapply: Change Program.h to define procid_t as ::pid_t. When included in lldb/unittests/Host/NativeProcessProtocolTest.cpp, it is included after an lldb namespace containing an lldb::pid_t typedef, followed later by a "using namespace lldb;". Previously, Program.h wasn't included in this translation unit, but now it ends up included transitively from Process.h. Differential Revision: https://reviews.llvm.org/D88002
-
Petr Hosek authored
This reverts commit 247c4fc5 as it broke the runtime build.
-
LLVM GN Syncbot authored
-
Eduardo Caldas authored
* Introduce `TreeTest.cpp` to unit test `Tree.h` * Add `generateAllTreesWithShape` to generating test cases * Add tests for `findFirstLeaf` and `findLastLeaf` * Fix implementations of `findFirstLeaf` and `findLastLeaf` that had been broken when empty `Tree` were present. Differential Revision: https://reviews.llvm.org/D87779
-
Eduardo Caldas authored
I also assured that there are no other functions unnecessarily using std::vector as argument. Differential Revision: https://reviews.llvm.org/D88024
-
Petr Hosek authored
This ensures that required includes and libraries such as -lm that were added earlier aren't overwritten. Differential Revision: https://reviews.llvm.org/D88068
-
Petr Hosek authored
This prefered over find_package as find_dependency forwards the correct parameters for QUIET and REQUIRED to find_package. Differential Revision: https://reviews.llvm.org/D88069
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/496 Differential Revision: https://reviews.llvm.org/D87257
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/534 Differential Revision: https://reviews.llvm.org/D87979
-
Arthur Eubanks authored
To match the normal inliner in preparation for https://reviews.llvm.org/D86988. Also change a FIXME to an assert. Reviewed By: davidxl Differential Revision: https://reviews.llvm.org/D88067
-
Ahmed S. Taei authored
Change the indexing map to iterate over the (b, x0, x1, z0, z1, q, k) instead of (b, x0, x1, k, q, z0, z1) to evaluate the convolution expression: Y[b, x0, x1, k] = sum(W[z0, z1, q, k] * X[b, x0 + z0, x1 + z1, q], z0, z1, q) This allows llvm auto vectorize to work and has better locality resulting significant performance improvments Differential Revision: https://reviews.llvm.org/D87781
-
Dominic Chen authored
For relative symbols, add its offset when computing relocation value. Also, warn on unsupported absolute symbols. Differential Revision: https://reviews.llvm.org/D87407
-
Serguei Katkov authored
Non trivial loop unswitch can keep the dead condition instruction. CL adds trivial dead code elimination for unused condition. Reviewers: asbirlea, aqjune, fhahn, DaniilSuchkov, reames Reviewed By: asbirlea Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D88014
-
Fangrui Song authored
-
Mehdi Amini authored
Instead of performing a transformation, such pass yields a new pass pipeline to run on the currently visited operation. This feature can be used for example to implement a sub-pipeline that would run only on an operation with specific attributes. Another example would be to compute a cost model and dynamic schedule a pipeline based on the result of this analysis. Discussion: https://llvm.discourse.group/t/rfc-dynamic-pass-pipeline/1637 Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D86392
-
Fangrui Song authored
-
Arthur Eubanks authored
The pass is not used in tree, so no reason to port it. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D88058
-
Arthur Eubanks authored
Also make tests in Analysis/Delinearization work under NPM. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87741
-
Arthur Eubanks authored
NPM passes just use the normal versions of these analyses instead. Also pin any tests with -analyze to legacy PM. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87857
-
Fangrui Song authored
-
Louis Dionne authored
-
Jim Ingham authored
There was a little thinko which meant when stopped in a frame with debug information but whose CU didn't have any global variables we report: no debug info for frame <N> This patch fixes that error message to say the intended: no global variables in current compile unit <rdar://problem/69086361>
-
Fangrui Song authored
This reverts commit 11dccf8d. A bootstrapped clang crashes (due to ArrayRef::front called on an empty ArrayRef) when compiling some files. Very strangely, this only reproduces with modules. ``` 13 0x0000564d3349e968 llvm::ArrayRef<llvm::BasicBlock*>::front() const /proc/self/cwd/llvm/include/llvm/ADT/ArrayRef.h:160:7 14 0x0000564d3349e896 llvm::LoopBase<llvm::BasicBlock, llvm::Loop>::getHeader() const /proc/self/cwd/llvm/include/llvm/Analysis/LoopInfo.h:104:50 15 0x0000564d3349fd9d llvm::LoopBase<llvm::BasicBlock, llvm::Loop>::getLoopLatch() const /proc/self/cwd/llvm/include/llvm/Analysis/LoopInfoImpl.h:210:11 16 0x0000564d33593c8a llvm::ScalarEvolution::computeBackedgeTakenCount(llvm::Loop const*, bool) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:6933:15 17 0x0000564d33592ebc llvm::ScalarEvolution::getBackedgeTakenInfo(llvm::Loop const*) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:0:30 18 0x0000564d33593a54 llvm::ScalarEvolution::getBackedgeTakenCount(llvm::Loop const*, llvm::ScalarEvolution::ExitCountKind) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:6487:36 19 0x0000564d32be2402 llvm::ScalarEvolution::getConstantMaxBackedgeTakenCount(llvm::Loop const*) /proc/self/cwd/llvm/include/llvm/Analysis/ScalarEvolution.h:768:5 20 0x0000564d33590807 llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:5495:19 21 0x0000564d320abab7 llvm::ScalarEvolution::getSignedRange(llvm::SCEV const*) /proc/self/cwd/llvm/include/llvm/Analysis/ScalarEvolution.h:840:12 22 0x0000564d335a03aa llvm::ScalarEvolution::isKnownPredicateViaConstantRanges(llvm::CmpInst::Predicate, llvm::SCEV const*, llvm::SCEV const*) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:9239:60 23 0x0000564d33586a80 llvm::ScalarEvolution::isKnownViaNonRecursiveReasoning(llvm::CmpInst::Predicate, llvm::SCEV const*, llvm::SCEV const*) /proc/self/cwd/llvm/lib/Analysis/ScalarEvolution.cpp:10284:60 ```
-
Louis Dionne authored
-
Louis Dionne authored
-
Walter Erquinigo authored
This is the first in a series of patches that will adds a new processor trace plug-in to LLDB. The idea for this first patch to to add the plug-in interface with simple commands for the trace files that can "load" and "dump" the trace information. We can test the functionality and ensure people are happy with the way things are done and how things are organized before moving on to adding more functionality. Processor trace information can be view in a few different ways: - post mortem where a trace is saved off that can be viewed later in the debugger - gathered while a process is running and allow the user to step back in time (with no variables, memory or registers) to see how each thread arrived at where it is currently stopped. This patch attempts to start with the first solution of loading a trace file after the fact. The idea is that we will use a JSON file to load the trace information. JSON allows us to specify information about the trace like: - plug-in name in LLDB - path to trace file - shared library load information so we can re-create a target and symbolicate the information in the trace - any other info that the trace plug-in will need to be able to successfully parse the trace information - cpu type - version info - ??? A new "trace" command was added at the top level of the LLDB commmands: - "trace load" - "trace dump" I did this because if we load trace information we don't need to have a process and we might end up creating a new target for the trace information that will become active. If anyone has any input on where this would be better suited, please let me know. Walter Erquinigo will end up filling in the Intel PT specific plug-in so that it works and is tested once we can agree that the direction of this patch is the correct one, so please feel free to chime in with ideas on comments! Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D85705
-
antonio-cortes-perez authored
Updated file paths and function signatures in section "Adding a new type". Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D88049
-
Krzysztof Parzyszek authored
Extend the handling of memory intrinsics to also include non- target-specific intrinsics, in particular masked loads and stores. Invent "isHandledNonTargetIntrinsic" to distinguish between intrin- sics that should be handled natively from intrinsics that can be passed to TTI. Add code that handles masked loads and stores and update the testcase to reflect the results. Differential Revision: https://reviews.llvm.org/D87340
-
Arthur Eubanks authored
Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87932
-
Diego Caballero authored
This patch adds a utility based on SuperVectorizer to vectorize an affine loop nest using a given vectorization strategy. This strategy allows targeting specific loops for vectorization instead of relying of the SuperVectorizer analysis to choose the right loops to vectorize. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D85869
-
Arthur Eubanks authored
SimplifyCFG's options should always be overridden by command line flags, but they mistakenly weren't in the default constructor. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D87718
-
Evandro Menezes authored
Scheduling information is of little value when they may disrupt the pipeline. This patch allows omitting the scheduling information for CSR instructions while still setting `SchedMachineModel::CompleteModel`. For specific cases, any scheduling information added will be used by the scheduler. Differential revision: https://reviews.llvm.org/D85366
-
Kazu Hirata authored
-
Jordan Rupprecht authored
A few fixes while trying to figure out why tests are being skipped for arsenm: - We check `$compiler -v`, but `-v` is `--verbose`, not `--version`. Use the long flag name. - We check all lines matching `version ...`, but we should exit early for the first version string we see (which should be the main one). I'm not sure if this is the issue, but perhaps this is causing some users to skip some tests if another "version ..." is showing up later. - Having `\.` in a python string is triggering pylint warnings, because it should be escaped as a regex string, e.g. `r'\.' However, `.` in a character class does not need to be escaped, as it matches only a literal `.` in that context. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D88051
-
Kazu Hirata authored
-