- Aug 10, 2022
-
-
Adrian Vogelsgesang authored
The corresponding _LIBCPP_HAS_NO_SPACESHIP_OPERATOR macro was already removed in commit c0f87e83 Differential Revision: https://reviews.llvm.org/D131215
-
Kazu Hirata authored
This patch teaches llvm-profdata to output the sample profile in the JSON format. The new option is intended to be used for research and development purposes. For example, one can write a Python script to take a JSON file and analyze how similar different inline instances of a given function are to each other. I've chosen JSON because Python can parse it reasonably fast, and it just takes a couple of lines to read the whole data: import json with open ('profile.json') as f: profile = json.load(f) Differential Revision: https://reviews.llvm.org/D130944 -
Adrian Vogelsgesang authored
As shown in P2544R0 [1] and the accompanying benchmark [2], the current unwinding logic does not scale for multi-threaded programs. This is because `dl_iterate_phdr` takes a global lock. glibc 2.35 added `_dl_find_object` which directly returns the unwind info for a given target address. `_dl_find_object` is fully lock-free and hence allows parallel exception unwinding on multiple threads. With this commit, libunwind now takes advantage of `_dl_find_object`. Thereby, this commit improves libunwind's performance on benchmark [2] for unwinding exception on 20 threads from 1103ms to 78ms. (measured on Intel Xeon Silver 4114 with 20 physical cores) [1] https://isocpp.org/files/papers/P2544R0.html [2] https://github.com/neumannt/exceptionperformance Detailed performance numbers from the benchmark: Before: > Testing unwinding performance: sqrt computation with occasional errors > > testing baseline using 1 2 4 8 16 20 threads > failure rate 0%: 34 35 34 35 35 36 > testing exceptions using 1 2 4 8 16 20 threads > failure rate 0%: 16 32 33 34 35 36 > failure rate 0.1%: 16 32 34 36 35 36 > failure rate 1%: 20 40 40 43 90 113 > failure rate 10%: 59 92 140 304 880 1103 > [...] > > Testing invocation overhead: recursive fib with occasional errors > > testing exceptions using 1 2 4 8 16 20 threads > failure rate 0%: 19 32 37 38 39 36 > failure rate 0.1%: 22 32 40 40 39 34 > failure rate 1%: 20 28 38 39 48 40 > failure rate 10%: 25 39 44 50 92 113 After: > Testing unwinding performance: sqrt computation with occasional errors > > testing baseline using 1 2 4 8 16 20 threads > failure rate 0%: 19 30 35 38 39 35 > testing baseline using 1 2 4 8 16 20 threads > failure rate 0%: 32 35 33 34 34 36 > testing exceptions using 1 2 4 8 16 20 threads > failure rate 0%: 16 35 33 37 35 35 > failure rate 0.1%: 16 32 36 33 34 37 > failure rate 1%: 21 37 39 40 40 41 > failure rate 10%: 72 75 76 80 80 78 > [...] > > Testing invocation overhead: recursive fib with occasional errors > > testing baseline using 1 2 4 8 16 20 threads > failure rate 0%: 18 35 37 34 38 37 > testing exceptions using 1 2 4 8 16 20 threads > failure rate 0%: 19 33 40 40 41 39 > failure rate 0.1%: 21 33 39 38 39 38 > failure rate 1%: 20 36 39 40 41 40 > failure rate 10%: 25 45 41 42 44 43 Differential Revision: https://reviews.llvm.org/D130668
-
alex-t authored
This change finalizes the series of patches aiming to replace old strategy of VGPR to SGPR copies loweriong. Following the https://reviews.llvm.org/D128252 and https://reviews.llvm.org/D130367 code parts that are no longer used were removed. Pass main loop is no longer used for the MIR changes but collect information for further analysis. Actual MIR lowering happens further according the analysys result in the set of separate functions. Another important change concerns the order of lowering: VGPR to SGPR copies lowering is done first to have priority on the rest of the MIR changes. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D131246
-
Evgenii Stepanov authored
-
Siva Chandra Reddy authored
-
Philip Reames authored
This is currently exercising scalarization code path; with vectors enabled, we hit a different code path. Explicitly exercise both so that both configurations have testing.
-
Pengxuan Zheng authored
ROPI/RWPI are not supported with LOAD_STACK_GUARD currently. Reviewed By: nickdesaulniers, rengolin Differential Revision: https://reviews.llvm.org/D131427
-
Jim Ingham authored
These two tests were each of them too long when running under ASAN, so we have to skip both to get a clean ASAN bot run.
-
Siva Chandra Reddy authored
Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D131219
-
Siva Chandra Reddy authored
This data structure uses a backing cpp::array object and supports a vector like push_back API. In comparison with a traditional vector data structure, it is of a fixed capacity and cannot be resized. Differential Revision: https://reviews.llvm.org/D131377
-
Dinar Temirbulatov authored
After D121595 was commited, I noticed regressions assosicated with small trip count numbersvectorisation by tail folding with scalable vectors. As a solution for those issues I propose to introduce the minimal trip count threshold value. Differential Revision: https://reviews.llvm.org/D130755
-
Jeff Niu authored
-
Jeff Niu authored
-
Jim Ingham authored
bot. This happens because they are building a long result into a Python string, and the asan checker is making that very slow. The last two tests here are both slow, but the 'test_command' is the really slow one. I'm going to start disabling just that one and see if that gets the ASAN bots clean.
-
Haojian Wu authored
It should be `sizeof(*this)`.
-
Jeff Niu authored
This patch cleans up the definition of `DenseArrayAttrBase` by relying more on ODS-generated methods. It also exposes an API for using the raw data of a dense array, similar to `DenseIntOrFPElementsAttr::getRaw`. Reviewed By: lattner, mehdi_amini Differential Revision: https://reviews.llvm.org/D131450
-
yundiqian authored
To move from TF C API to TFLite, we found that the argmax op in TFLite does not work for int64 inputs, so cast the int64 inputs to int32 inputs to make TFLite argmax op work Differential Revision: https://reviews.llvm.org/D131462
-
Jeff Niu authored
And clean up some of the user code
-
Pengxuan Zheng authored
With D26647, we can already identify input object files compiled by cl.exe with /GL. It seems to be helpful to do the same and print an error message for those object files compiled with /GL but are inside libraries/archives too. Reviewed By: rnk, thieta Differential Revision: https://reviews.llvm.org/D131458
-
Dylan Fleming authored
Adds support for reduction of multiplcation by extending OpenMP.cpp::genOpenMPReduction() and altering the identity constant emitted in OpenMP.cpp::createReductionDelc() This patch builds D130077 and as such, only supports reductions for interger types in worksharping loops. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D130767
-
Peter Klausler authored
Procedure bindings with explicit interfaces don't work when the interface is shadowed by a generic interface of the same name, and can produce spurious semantic error messages. Extend the characterization and checking code for such things, and the utility functionns on which they depend, to dig through generics when they occlude interface-defining subprograms. This is done on demand in checking code, not once during name resolution, because the procedures in question may also be forward-referenced. Differential Revision: https://reviews.llvm.org/D131105 diff --git a/flang/include/flang/Semantics/symbol.h b/flang/include/flang/Semantics/symbol.h index e79f8ab6503e..0b03bf06eb73 100644 --- a/flang/include/flang/Semantics/symbol.h
-
Aart Bik authored
They appeared at the wrong place in the switch, treating them as unary op rather than binary op. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D131509
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D131513
-
Lei Zhang authored
This makes it easier to use as a utility function to query the mappings, including the reverse. This commit also drops some storage classes that aren't needed for now. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D131411
-
Lei Zhang authored
This commit moves MemRef memory space to SPIR-V storage class conversion out of the main SPIR-V type converter. Now the mapping should happen as a prelimiary step before performing the final conversion to SPIR-V. Flows are expect to write their own memory space mappings like the `MapMemRefStorageClassPass` to handle memory space mappings according to their needs. This is needed because SPIR-V is serving multiple client APIs, including Vulkan and OpenCL. Different client APIs might want to use different storage classes for buffers in a particular memory space, e.g., `StorageBuffer` for Vulkan vs. `CrossWorkgroup` for OpenCL when converting the default 0 memory space. Hardcoding a specific mapping makes that hard. While it's possible to embed selection logic further inside the main type converter, it will make the main type converter even complicated. So it's better to separate the concerns, as mapping the memory space is really concretizing the meaning of those numeric memory spaces in the particular context of SPIR-V lowering. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D131410
-
Philip Reames authored
-
Lei Zhang authored
* Avoid restricting the pass to to builtin module ops. The pass should be able to run on any region ops. * Avoid hardcoding func FuncOp when handling functions. Instead, use the function op interface. * Assigns the default mapping in the constructor. So for cases where we are using the pass in a pipeline, we still have a meaningful default. Along the way, dropped uncessary unrealized conversion casts and use full conversion. The pass should be able to convert all sorts of ops; there is really no need to have such bridages. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D131409
-
Jerry Wu authored
In addition to memref, accept ranked tensor as the base operand of vector.gather, similar to vector.trasnfer_read. This will allow us to vectorize noncontiguous tensor.extract into vector.gather. Full discussion can be found here: https://github.com/iree-org/iree/issues/9198 Reviewed By: hanchung, dcaballe Differential Revision: https://reviews.llvm.org/D130097
-
Jerry Wu authored
Previously we can only lower arith.index_cast with 1-D vectors to LLVM. This change added the support for n-D vectors. Reviewed By: ftynse, hanchung Differential Revision: https://reviews.llvm.org/D129907
-
Lei Zhang authored
Previously we are using IntegerAttr to back all SPIR-V enum attributes. Therefore we all such attributes are showed like IntegerAttr in IRs, which is barely readable and breaks roundtripability of the IR. This commit changes to use `EnumAttr` as the base directly so that we can have separate attribute definitions and better IR printing. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D131311
-
Aart Bik authored
Spell out SparseVector instead of just using SparseVec Reviewed By: jim22k, bixia Differential Revision: https://reviews.llvm.org/D131511
-
Filipp Zhinkin authored
Baseline tests for D131189.
-
Jorge Gorbe Moya authored
This removes some error-prone repetition in FormatManager::GetPossibleMatches, where the same three boolean flags are passed in a row multiple times as arguments to recursive calls to GetPossibleMatches. Instead of: ``` // same flags, but with did_strip_typedef set to true. GetPossibleMatches(..., did_strip_ptr, did_strip_ref, true); ``` we can now say ``` GetPossibleMatches(..., current_flags.WithStrippedTypedef()); ``` which hopefully makes the intent clearer, and more readable in case we add another flag. Reviewed by: DavidSpickett, labath Differential Revision: https://reviews.llvm.org/D131459
-
Archibald Elliott authored
This patch adds the names of the Arm Architecture Reference Manual (ARM) features to the corresponding Subtarget Features in the AArch64 backend and target parser. The aim of this is to make it clearer what architectural features a subtarget feature might enable (so, which features a CPU must provide to support that subtarget feature), and so make it easier to add new CPUs in the future. Differential Revision: https://reviews.llvm.org/D131257
-
Adrian Prantl authored
This is a follow-up patch to D130999. In the test, the MIR contains an unreachable MBB but the code attempts to look it up in MLocs. This patch fixes this issue by checking for the default-constructed value. rdar://97226240 Differential Revision: https://reviews.llvm.org/D131453
-
Sanjay Patel authored
https://alive2.llvm.org/ce/z/UE48FH This is part of solving issue #56926.
-
Philip Reames authored
In an upcoming change to enable fixed length vector lowering via vector registers, the codepath exercised would change. Pin this to the old lowering.
-
Simon Pilgrim authored
This is already in sse2-intrinsics-fast-isel.ll Noticed in D104790
-
Peter Klausler authored
Remove a lambda capture of "[this]" in two cases where it is no longer required. Will be pushed without waiting for review if CI is successful in order to resolve a sad build bot. Differential Revision: https://reviews.llvm.org/D131506
-