- Jun 16, 2020
-
-
Daniel Sanders authored
Summary: Adds the ability to add members to a generated combiner via a State base class. In the current AArch64PreLegalizerCombiner this is used to make Helper available without having to provide it to every call. As part of this, split the command line processing into a separate object so that it still only runs once even though the generated combiner is constructed more frequently. Depends on D81862 Reviewers: aditya_nandakumar, bogner, volkan, aemerson, paquette, arsenm Reviewed By: arsenm Subscribers: jvesely, wdng, nhaehnle, kristof.beyls, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81863
-
Christopher Tetreault authored
Summary: Most of these operations are reasonable for scalable vectors. Due to this, we have decided not to change the interface to specifically take FixedVectorType despite the fact that the current implementations make fixed width assumptions. Instead, we cast to FixedVectorType and assert in the body. If a developer makes some change in the future that causes one of these asserts to fire, they should either change their code or make the function they are trying to call handle scalable vectors. Reviewers: efriedma, samparker, RKSimon, craig.topper, sdesmalen, c-rhodes Reviewed By: efriedma Subscribers: tschuett, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81495
-
Kirill Naumov authored
This patch introduces the heat coloring of the Call Printer which is based on the relative "hotness" of each function. The patch is a part of sequence of three patches, related to graphs Heat Coloring. Another feature added is the flag similar to "-cfg-dot-filename-prefix", which allows to write the graph into a named .pdf Reviewers: rcorcs, apilipenko, davidxl, sfertile, fedor.sergeev, eraman, bollu Differential Revision: https://reviews.llvm.org/D77172
-
Fangrui Song authored
Between gcov 4.9~8, `gcov -i $file` prints coverage information to $file.gcov in an intermediate text format (single file, instead of $source.gcov for each source file). lcov newer than 2019-05-24 detects -i support and uses it to increase processing speed. gcov 9 (GCC r265587) removed --intermediate-format and -i was changed to mean --json-format. However, we consider this format still useful and support it. geninfo (part of lcov) supports this format even if we announce that we are compatible with gcov 9.0.0
-
Fangrui Song authored
-
Daniel Sanders authored
Summary: This allows combiners to delegate to other helpers or depend on additional information. It's not great as an overall solution though as callers must provide the argument on every call, even for static data like an additional helper. Another patch will follow to support additional members of the generated combiner. Reviewers: aditya_nandakumar, bogner, aemerson, paquette, volkan, arsenm Reviewed By: aditya_nandakumar Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81862
-
Frederik Gossen authored
The value may be a function argument in which case `getDefiningOp` will return a `nullptr`. Differential Revision: https://reviews.llvm.org/D81965
-
Davide Italiano authored
-
Alexey Bataev authored
This reverts commit 6e78a308 to solve the problem with mem leak.
-
Frederik Gossen authored
Implement the missing lowering from `std.dim` to the LLVM dialect in case of a dynamic dimension. Differential Revision: https://reviews.llvm.org/D81834
-
Jonas Devlieghere authored
Otherwise LIT can't find the lldb-repro script in standalone builds.
-
Christopher Tetreault authored
Reviewers: efriedma, c-rhodes, david-arm, samparker, greened Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81518
-
Christopher Tetreault authored
Summary: Move the bail out logic to before constructing the Result and Lane vectors. This is both potentially faster, and avoids calling getNumElements on a potentially scalable vector Reviewers: efriedma, sunfish, chandlerc, c-rhodes, fpetrogalli Reviewed By: fpetrogalli Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81619
-
Christopher Tetreault authored
Summary: simplifyDivRem attempts to walk a VectorType elementwise. Ensure that it only does so for FixedVectorType Reviewers: efriedma, spatel, lebedev.ri, david-arm, kmclaughlin Reviewed By: spatel, david-arm Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81856
-
Alexey Bataev authored
Summary: Added codegen for scan directives in parallel for regions. Emits the code for the directive with inscan reductions. Original code: ``` #pragma omp for simd reduction(inscan, op : ...) for(...) { <input phase>; #pragma omp scan (in)exclusive(...) <scan phase> } ``` is transformed to something: ``` size num_iters = <num_iters>; <type> buffer[num_iters]; #pragma omp for simd for (i: 0..<num_iters>) { <input phase>; buffer[i] = red; } #pragma omp barrier for (int k = 0; k != ceil(log2(num_iters)); ++k) for (size cnt = last_iter; cnt >= pow(2, k); --k) buffer[i] op= buffer[i-pow(2,k)]; #pragma omp for simd for (0..<num_iters>) { red = InclusiveScan ? buffer[i] : buffer[i-1]; <scan phase>; } ``` Reviewers: jdoerfert Subscribers: yaxunl, guansong, sstefan1, cfe-commits, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D81658
-
Yuanfang Chen authored
This reverts commit 719c87ed. Checked in by accident. Sorry.
-
Yuanfang Chen authored
For PR46336.
-
Yuanfang Chen authored
-
Alexey Bataev authored
Summary: According to OpenMP, During execution of an iteration of a worksharing-loop or a loop nest within a worksharing-loop, simd, or worksharing-loop SIMD region, a thread must not execute more than one ordered region corresponding to an ordered construct without a depend clause. Need to report an error in this case. Reviewers: jdoerfert Subscribers: yaxunl, guansong, sstefan1, cfe-commits, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D81951
-
Christopher Tetreault authored
Reviewers: efriedma, fhahn, spatel, sdesmalen, kmclaughlin Reviewed By: efriedma Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81521
-
Matt Arsenault authored
This doesn't actually handled type idx 0, but was reporting Legalized on it. No test changes because nothing was trying to use this.
-
Ahsan Saghir authored
Summary: This patch adds command line option for enabling power10-vector support. Reviewers: hfinkel, nemanjai, lei, amyk, #powerpc Reviewed By: lei, amyk, #powerpc Subscribers: wuzish, kbarton, hiraditya, shchenz, cfe-commits, llvm-commits Tags: #llvm, #clang, #powerpc Differential Revision: https://reviews.llvm.org/D80758
-
Florian Hahn authored
Some tests were missing alignment info. Subsequent changes properly preserve the set alignment. Set it properly beforehand, to avoid unnecessary test changes.
-
Julian Lettner authored
Before this change we showed all result groups with a code that was not explicitly hard-coded set. This set missed the FLAKYPASS result code. Let's generalize the code to always show failures and the additionally requested result codes.
-
Tom Stellard authored
Summary: We're trying to use the --config options to pass distro specific options for Fedora via the CFLAGS variable. However, some projects end up using the CFLAGS variable multiple times in their command line, which leads to an error when --config is used. This patch resolves this issue by allowing more than one --config option on the command line as long as the file names are the same. Reviewers: sepavloff, hfinkel Reviewed By: sepavloff Subscribers: cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81424
-
Alex Zinenko authored
Recent work has introduced support for constructing loops via `::build` with callbacks that construct loop bodies using only the core OpBuilder. This is now supported on all loop types that Linalg lowers to. Refactor LoopNestBuilder in Linalg to rely on this functionality instead of using a custom EDSC-based approach to creating loop nests. The specialization targeting parallel loops is also simplified by factoring out the recursive call into a separate static function and considering only two alternatives: top-level loop is parallel or sequential. This removes the last remaining in-tree use of edsc::LoopBuilder, which is now deprecated and will be removed soon. Differential Revision: https://reviews.llvm.org/D81873
-
Alex Zinenko authored
Similarly to `scf::ForOp`, introduce additional `function_ref` arguments to `::build` functions of SCF `ParallelOp` and `ReduceOp`. The provided functions will be called to construct the body of the respective operations while constructing the operation itself. Exercise them in LoopUtils. Differential Revision: https://reviews.llvm.org/D81872
-
Matt Arsenault authored
-
Tim Shen authored
-
Matt Arsenault authored
The special case here is really G_UNMERGE_VALUES, not G_EXTRACT. The other opcodes can hardcode index 1 like G_EXTRACT.
-
Matt Arsenault authored
-
Tim Shen authored
-
Tim Shen authored
Summary: This patch adds --source flag to indicate the source file. Then it tries to find insert points in the source file and insert corresponding checks at those places. Example output from Tensorflow XLA: // ----- // CHECK-LABEL: func @main.3( // CHECK-SAME: %[[VAL_0:.*]]: memref<2x2xf32> {xla_lhlo.params = 0 : index}, // CHECK-SAME: %[[VAL_1:.*]]: memref<16xi8> {xla_lhlo.alloc = 0 : index, xla_lhlo.liveout = true}) { // CHECK: %[[VAL_2:.*]] = constant 0 : index // CHECK: %[[VAL_3:.*]] = constant 0 : index // CHECK: %[[VAL_4:.*]] = std.view %[[VAL_1]]{{\[}}%[[VAL_3]]][] : memref<16xi8> to memref<2x2xf32> // CHECK: "xla_lhlo.tanh"(%[[VAL_0]], %[[VAL_4]]) : (memref<2x2xf32>, memref<2x2xf32>) -> () // CHECK: return // CHECK: } func @main(%value0: tensor<2x2xf32>) -> tensor<2x2xf32> { %res = "xla_hlo.tanh"(%value0) : (tensor<2x2xf32>) -> tensor<2x2xf32> return %res : tensor<2x2xf32> } Differential Revision: https://reviews.llvm.org/D81903
-
Stanislav Mekhanoshin authored
UBSAN complains when tblgen performs SHL of a negative value. Differential Revision: https://reviews.llvm.org/D81952
-
Hiroshi Yamauchi authored
Summary: delete(void*, unsigned int, align_val_t) delete(void*, unsigned long, align_val_t) delete[](void*, unsigned int, align_val_t) delete[](void*, unsigned long, align_val_t) Differential Revision: https://reviews.llvm.org/D81853
-
David Tenty authored
Summary: we use the alias attribute, similar to what is done for ELF. Reviewers: ZarkoCA, jasonliu, hubert.reinterpretcast, sfertile Reviewed By: jasonliu Subscribers: dberris, aheejin, mstorsjo, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D81120
-
Jonas Devlieghere authored
Executing commands below will get you bombarded by a wall of Python command prompts (>>> ). $ echo 'foo' | ./bin/lldb -o script $ cat /tmp/script script print("foo") $ lldb --source /tmp/script The issue is that our custom input reader doesn't handle EOF. According to the Python documentation, file.readline always includes a trailing newline character unless the file ends with an incomplete line. An empty string signals EOF. This patch raises an EOFError when that happens. [1] https://docs.python.org/2/library/stdtypes.html#file.readline Differential revision: https://reviews.llvm.org/D81898
-
Sanjay Patel authored
Generalize scalarization (recently enhanced with D80885) to allow compares as well as binops. Similar to binops, we are avoiding scalarization of a loaded value because that could avoid a register transfer in codegen. This requires 1 extra predicate that I am aware of: we do not want to scalarize the condition value of a vector select. That might also invert a transform that we do in instcombine that prefers a vector condition operand for a vector select. I think this is the final step in solving PR37463: https://bugs.llvm.org/show_bug.cgi?id=37463 Differential Revision: https://reviews.llvm.org/D81661
-
Louis Dionne authored
The Standard documents the signature of std::advance as template <class Iter, class Distance> constexpr void advance(Iter& i, Distance n); Furthermore, it does not appear to put any restriction on what the type of Distance should be. While it is understood that it should usually be std::iterator_traits::difference_type, I couldn't find any wording that mandates that. Similarly, I couldn't find wording that forces the distance to be a signed type. This patch changes std::advance to accept any type in the second argument, which appears to be what the Standard mandates. We then coerce it to the iterator's difference type, but that's an implementation detail. Differential Revision: https://reviews.llvm.org/D81425
-
Yuanfang Chen authored
the range start is already set The range start could be set already in some invalid cases. Fixes PR46336.
-