- Sep 04, 2021
-
-
Shivam Gupta authored
The current inconsistency confuse contributors which coding guidlines to follow. It would be better to have it consistent using clang-format tool. Reviewed By: mhjacobson Differential Revision: https://reviews.llvm.org/D109270
-
Simon Pilgrim authored
-
Simon Pilgrim authored
The xmm variant have half the throughput (and +1cy latency) of the mmx variants, but are still 1uop. I still need to do more thorough testing of SLM on test-suite before fixing the obvious bad numbers for WritePMULLD. But this helps the D103695 helper script get to more accurate numbers for vXi32 multiplies of extended operands (i.e. we can use PMADDWD, PMULLW/PMULHW etc). Matches what Intel AoM / Agner / llvm-exegesis reports.
-
Simon Pilgrim authored
Revert rG994da657 "[X86][SLM] WriteVecIMul instructions only take 1uop" This changed some codegen tests that I forgot about in my rebase, I'll recommit shortly with a fix.
-
Dávid Bolvanský authored
-
Simon Pilgrim authored
The xmm variant have half the throughput (and +1cy latency) of the mmx variants, but are still 1uop. I still need to do more thorough testing of SLM on test-suite before fixing the obvious bad numbers for WritePMULLD. But this helps the D103695 helper script get to more accurate numbers for vXi32 multiplies of extended operands (i.e. we can use PMADDWD, PMULLW/PMULHW etc). Matches what Intel AoM / Agner / llvm-exegesis reports.
-
Simon Pilgrim authored
For RMW instructions, the load and store hold the MEC for an extra cycle, but within the same single uop. This is alluded to in the Intel AOM: "The MEC also owns the MEC RSV, which is responsible for scheduling of all loads and stores. Load and store instructions go through addresses generation phase in program order to avoid on-the-fly memory ordering later in the pipeline. Therefore, an unknown address will stall younger memory instructions." Noticed while trying to get a cheap SLM test box up and running with llvm-exegesis - RMW arithmetic is always 1uop - and matches what Agner / InstLatX64 report as well.
-
Simon Pilgrim authored
These were all set to the same best case mul i32 values (which seems to be the only version of MUL that SLM actually performs well with). Noticed while trying to improve multiplication costs for vectorization via the D103695 helper script. Confirmed with Intel AoM / Agner / InstLatX64.
-
Eugene Zhulenev authored
Previously only await inside the async function (coroutine after lowering to async runtime) would check the error state Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D109229
-
David Carlier authored
-
Mark de Wever authored
Marked the entries solely depending on D103357 or D96664 as complete. Initial work on implementing P2216 has started.
-
Simon Pilgrim authored
Noticed while trying to improve multiplication costs for vectorization via the D103695 helper script. Confirmed with Intel AoM.
-
Simon Pilgrim authored
Make it easier to describe microcoded instructions.
-
David Carlier authored
-
Mark de Wever authored
This option is used to select between the format headers output column width option. This option should be independent of the locale setting. It's encouraged to default to Unicode unless the platform doesn't offer that option. [format.string.std]/10 ``` For the purposes of width computation, a string is assumed to be in a locale-independent, implementation-defined encoding. Implementations should use a Unicode encoding on platforms capable of displaying Unicode ``` Reviewed By: #libc, ldionne, vitaut Differential Revision: https://reviews.llvm.org/D103379
-
LLVM GN Syncbot authored
-
Mark de Wever authored
This implements the initial version of the `std::formatter` class and its specializations. It also implements the following formatting functions: - `format` - `vformat` - `format_to` - `vformat_to` - `format_to_n` - `formatted_size` All functions have a `char` and `wchar_t` version. Parsing the format-spec and using the parsed format-spec hasn't been implemented. The code isn't optimized, neither for speed, nor for size. The goal is to have the rudimentary basics working, which can be used as a basis to improve upon. The formatters used in this commit are simple stubs that will be replaced by real formatters in later commits. The formatters that are slated to be replaced in this patch series don't have an availability macro to avoid merge conflicts. Note the formatter for `bool` uses `0` and `1` instead of "false" and "true". This will be fixed when the stub is replaced with a real formatter. Implements parts of: - P0645 Text Formatting Completes: - LWG3539 for...
-
Nikita Popov authored
The change here is basically the same as in D108880: Rather than looking at bitcasts, look at calls and their function type. We still need to look through bitcasts to find those calls. The change in llvm/test/CodeGen/WebAssembly/add-prototypes-conflict.ll is due to different visitation order. add-prototypes-opaque-ptrs.ll is a copy of add-prototypes.ll with -force-opaque-pointers. Differential Revision: https://reviews.llvm.org/D109256
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
Kazuaki Ishizaki authored
Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77457
-
Balazs Benics authored
Thank you @martong for acquiring a suitable test case! Reviewed By: shafik, martong Differential Revision: https://reviews.llvm.org/D109237
-
Balazs Benics authored
`SVB.getStateManager().getOwningEngine().getAnalysisManager().getAnalyzerOptions()` is quite a mouthful and might involve a few pointer indirections to get such a simple thing like an analyzer option. This patch introduces an `AnalyzerOptions` reference to the `SValBuilder` abstract class, while refactors a few cases to use this /simpler/ accessor. Reviewed By: martong, Szelethus Differential Revision: https://reviews.llvm.org/D108824
-
Balazs Benics authored
Quoting https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html: > In the absence of the zero-length array extension, in ISO C90 the contents > array in the example above would typically be declared to have a single > element. We should not assume that the size of the //flexible array member// field has a single element, because in some cases they use it as a fallback for not having the //zero-length array// language extension. In this case, the analyzer should return `Unknown` as the extent of the field instead. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D108230
-
Kazuaki Ishizaki authored
`the the` -> `the` Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77470
-
Loren Maggiore authored
Create a gpu memset op and corresponding CUDA and ROCm wrappers. Reviewed By: herhut, lorenrose1013 Differential Revision: https://reviews.llvm.org/D107548
-
Kazu Hirata authored
-
Brad Smith authored
-
Brad Smith authored
-
Kevin Athey authored
This reverts commit 095bea23. Broke buildbot: https://lab.llvm.org/buildbot/#/builders/5/builds/11411
-
William S. Moses authored
FuncOp always lowers to an LLVM external linkage presently. This makes it impossible to define functions in mlir which are local to the current module. Until MLIR FuncOps have a more formal linkage specification, this commit allows funcop's to have an optionally specified llvm.linkage attribute, whose value will be used as the linkage of the llvm funcop when lowered. Differential Revision: https://reviews.llvm.org/D108524 Support LLVM linkage
-
Brad Smith authored
-
Ben Shi authored
Prevent the folding if it leads to worse code. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D108871
-
Lang Hames authored
-
Richard Smith authored
-
Med Ismail Bennani authored
This patch should fix the build failure that surfaced when build llvm with GCC: https://lab.llvm.org/staging/#/builders/16/builds/10450 GCC complained that I explicitely specialized `ScriptedPythonInterface::ExtractValueFromPythonObject` in a in non-namespace scope, which is tolerated by Clang. To solve this issue, the specialization were declared out of the class and implemented in the source file. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Brad Smith authored
-
Mehdi Amini authored
This makes the IR more readable, in particular when this will be used on the builtin func outside of the LLVM dialect. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D109209
-
Frederic Cambus authored
Differential Revision: https://reviews.llvm.org/D109244
-
David Blaikie authored
-