- May 09, 2022
-
-
Rahul Anand R authored
This patch implements a for a target specific optimization that replaces the cmp and csel from cttz with an and mask. Differential Revision: https://reviews.llvm.org/D123782
-
Pavel Labath authored
This reverts commit b7d807db -- it breaks TestMultipleDebuggers.py.
-
Florian Hahn authored
-
Marek Kurdej authored
[clang-format] Fix WhitespaceSensitiveMacros not being honoured when macro closing parenthesis is followed by a newline. Fixes https://github.com/llvm/llvm-project/issues/54522. This fixes regression introduced in https://github.com/llvm/llvm-project/commit/5e5efd8a91f2e340e79a73bedbc6ab66ad4a4281. Before the culprit commit, macros in WhitespaceSensitiveMacros were correctly formatted even if their closing parenthesis weren't followed by semicolon (or, to be precise, when they were followed by a newline). That commit changed the type of the macro token type from TT_UntouchableMacroFunc to TT_FunctionLikeOrFreestandingMacro. Correct formatting (with `WhitespaceSensitiveMacros = ['FOO']`): ``` FOO(1+2) FOO(1+2); ``` Regressed formatting: ``` FOO(1 + 2) FOO(1+2); ``` Reviewed By: HazardyKnusperkeks, owenpan, ksyx Differential Revision: https://reviews.llvm.org/D123676
-
David Green authored
This prevents an infinite loop from D123801, where code trying to reduce the total number of bitcasts, but also handling constants, could create the opposite transform. Prevent the transform in these case to let the bitcast of a constant transform naturally. Fixes #55345
-
Ben Shi authored
Reviewed By: Patryk27 Differential Revision: https://reviews.llvm.org/D124913
-
Abinav Puthan Purayil authored
-
Jean Perier authored
When processing an entry-stmt in name resolution, attrs_ was reset before SetBindNameOn was called, causing the symbol to lose the binding label information. Differential Revision: https://reviews.llvm.org/D125097
-
Hongtao Yu authored
The per-callsite size threshold used today to drive preinline decision is based on hotness/coldness cutoff. The default setup is for callsites with a sample count above the hotness cutoff (99%), a 1500 size threshold is used. Any callsite below 99.99% coldness cutoff uses a zero threshold. This has a couple issues: 1. While both cutoffs and size thoresholds are configurable, different applications may need different setups, making a universal setup impractical. 2. The callsites between hotness cutoff and coldness cutoff are not considered as inline candidates, which could be a missing opportunity. 3. Hot callsites always use the same threshold. In reality we may want a bigger threshold for hotter callsites. In this change we are introducing a linear threshold regardless of hot/cold cutoffs. Given a sample space, a threshold is computed for a callsite based on the position of that callsite sample in the whole space. With that we no longer need to define what's hot or cold. Callsites with different hotness will get a different threshold. This should overcome the above three issues. I have seen good results with a universal default setup for two of our internal services. For one service, 0.2% to 0.5% perf improvement over a baseline with a previous default setup, on-par code size. For the second service, 0.5% to 0.8% perf improvement over a baseline with a previous default setup, 0.2% code size increase; on-par performance and code size with a baseline that is with a carefully tuned cutoff to cover enough hot functions. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D125023
-
Christopher Bate authored
Adds missing logic in the lowering from NvGPU to NVVM to support fp32 (in an accumulator operand) and tf32 (in multiplicand operand) types. Fixes logic in one of the helper functions for converting the result of a mma.sync operation with multiple 8x256bit output tiles, which is the case for f32 outputs. Differential Revision: https://reviews.llvm.org/D124533
-
Peixin-Qiao authored
As Fortran 2018 5.2.2 states, a program shall consist of exactly one main program. Add this semantic check. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D125186
-
Xiaodong Liu authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D125163
-
Alexander Yermolovich authored
Fixing a small bug where it would assert if CU does not modify .debug_addr section. Differential Revision: https://reviews.llvm.org/D125181
-
Simon Pilgrim authored
-
Tue Ly authored
-
Tue Ly authored
This is needed to prepare for adding FLAGS option. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D125055
-
Simon Pilgrim authored
-
- May 08, 2022
-
-
Groverkss authored
-
Simon Pilgrim authored
These are all microcoded/multi-pipe nightmares on Ryzen, but we shouldn't just be using the WriteMicrocoded class which is for REALLY bad microcoded nightmares - instead use the same approximate latencies as znver2 (Agner and uops.info both suggest similar values) - and make sure we use the FPU defs for both Fixes #53242
-
Simon Pilgrim authored
Fixes #51381
-
Simon Pilgrim authored
Also split AVX1/AVX2 test coverage
-
Luo, Yuanke authored
Extract test for zero tile configure into a small test case.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
D124284 should help us vectorize the sub-128-bit vector cases
-
Simon Pilgrim authored
D124284 should help us vectorize the sub-128-bit vector cases
-
Simon Pilgrim authored
-
Simon Pilgrim authored
First part of Issue #35297 - we want to enable Wdocumentation-pedantic as well, but need '\n' support first which Issue #55319 is addressing
-
Simon Pilgrim authored
\operation ... \endoperation are not valid doxygen commands and cause issues when -Wdocumentation is enabled (Issue #35297) This patch proposes to replace them with \code{.operation} ... \endcode blocks so that the pseudo-code is correctly retained in any documentation and downstream can use the ".operation" type for its own formatting. Differential Revision: https://reviews.llvm.org/D125170 -
David Green authored
Given a commutative reduction leading from a shuffle, the order of the lanes on the shuffle are not important for the result. This means we can reorder the shuffle to something simpler, which we try shuffling the first vector lanes first. This was D123494. The new shuffle may not be profitable though, and if it is not we can try the folding of select shuffles from D123911. This, with some adjustment as the output lane ordering is now unimportant, can allow the final shuffle to simplify given the inputs to the patterns from D123911. Where as each transformation on their own are not profitable, the combination is. We can only support a single shuffle when called from reductions, but we are able to sort the ReconstructMask, potentially allowing it to simplify to an identity or concat mask. Differential Revision: https://reviews.llvm.org/D125086
-
Simon Pilgrim authored
Another step toward enabling full -Wsystem-headers testing across all x86 headers Fix a number of cases where the arg / return value signedness doesn't match the C/C++ intrinsic. So far I've just added explicit casts as necessary, but we might want to address some of the mismatches directly Differential Revision: https://reviews.llvm.org/D125164
-
Vitaly Buka authored
Looks like different bots have them in a different order.
-
Vitaly Buka authored
-
Stella Laurenzo authored
While I think this is a performance improvement over the original, this actually fixes a correctness issue: For an appendable underlying stream, padToAlignment would fail if the additional padding would have caused the stream to grow since it was doing its own check on bounds. By deferring to the regular writeArray method this takes the same path as everything else, which does the correct bounds check in WritableBinaryStreamRef::checkOffsetForWrite (i.e. skips the extension check if BSF_Append is set). I had started to fix the existing bounds check in BinaryStreamWriter but deferred to this because it layered better and is more efficient/consistent. It didn't look like this method was tested at all, so I added a unit test. Differential Revision: https://reviews.llvm.org/D124746
-
Sam McCall authored
It's not trivially small, >10kb.
-
Amaury Séchet authored
-
Amaury Séchet authored
-
Andrew Litteken authored
[IROutliner] Accomodate blocks containing PHINodes with one entry outside the region and others inside the region. When a PHINode has an incoming block from outside the region, it must be handled specially when assigning a global value number to each incoming value. A PHINode has multiple predecessors, and we must handle this case rather than only the single predecessor case. Reviewer: paquette Differential Revision: https://reviews.llvm.org/D124777
-
Simon Pilgrim authored
Noticed in D124839
-
David Green authored
There were apparently some missing NVCAST patterns. This fills them in using foreach, as opposed to having the specify them individually. Fixes #55321
-