- Sep 10, 2020
-
-
Nikita Popov authored
Adding these to ARM which has both FMINNUM and FMINIMUM.
-
Jonas Devlieghere authored
-
Amara Emerson authored
-
Amara Emerson authored
We weren't using this before, so none of the MachineFunction CFG edges had the branch probability information added. As a result, block placement later in the pipeline was flying blind. This is enabled only with optimizations enabled like SelectionDAG. Differential Revision: https://reviews.llvm.org/D86824
-
Nikita Popov authored
-
Amara Emerson authored
This is a port of the functionality from SelectionDAG, which tries to find a tree of conditions from compares that are then combined using OR or AND, before using that result as the input to a branch. Instead of naively lowering the code as is, this change converts that into a sequence of conditional branches on the sub-expressions of the tree. Like SelectionDAG, we re-use the case block codegen functionality from the switch lowering utils, which causes us to generate some different code. The result of which I've tried to mitigate in earlier combine patches. Differential Revision: https://reviews.llvm.org/D86665
-
Amara Emerson authored
This combine previously tried to take sequences like: %cond = G_ICMP pred, a, b G_BRCOND %cond, %truebb G_BR %falsebb %truebb: ... %falsebb: ... and by inverting the compare predicate and swapping branch targets, delete the G_BR and instead have a single conditional branch to the falsebb. Since in an earlier patch we have a combine to fold not(icmp) into just an inverted icmp, we don't need this combine to do as much. This patch instead generalizes the combine by just looking for: G_BRCOND %cond, %truebb G_BR %falsebb %truebb: ... %falsebb: ... and then inverting the condition using a not (xor). The xor can be folded away in a separate combine. This change also lets us avoid some optimization code in the IRTranslator. I also think that deleting G_BRs in the combiner is unnecessary. That's something that targets can decide to do at selection time and could simplify generic code in future. Differential Revision: https://reviews.llvm.org/D86664
-
Siva Chandra Reddy authored
Reviewed By: asteinhauser Differential Revision: https://reviews.llvm.org/D87412
-
Sean Silva authored
I was having a lot of trouble parsing the messages. In particular, the messages like: ``` <stdin>:3:8: error: 'scf.if' op along control flow edge from Region #0 to scf.if source #1 type '!npcomprt.tensor' should match input #1 type 'tensor<?xindex>' ``` In particular, one thing that kept catching me was parsing the "to scf.if source #1 type" as one thing, but really it is "to parent results: source type #1". Differential Revision: https://reviews.llvm.org/D87334
-
Hiroshi Yamauchi authored
Disabled by default behind an option. Differential Revision: https://reviews.llvm.org/D86883
-
Tony authored
- gfx1031 does not support XNACK. Differential Revision: https://reviews.llvm.org/D87198
-
Jian Cai authored
Try to resolve the difference of two symbols in consecutive MCDataFragments. This is important for an idiom like "foo:instr; .if . - foo; instr; .endif" (https://bugs.llvm.org/show_bug.cgi?id=43795). Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D69411
-
Fangrui Song authored
-
Krzysztof Parzyszek authored
Added missing selection patterns for vpackl.
-
Sanjay Patel authored
-
Fangrui Song authored
The entry block is split at the first instruction where `shouldKeepInEntry` returns false. The created basic block has a br jumping to the original entry block. The new basic block causes the function label line and the other entry block lines to be covered by different basic blocks, which can affect line counts with special control flows (fork/exec in the entry block requires heuristics in llvm-cov gcov to get consistent line counts). int main() { // BB0 return 0; // BB2 (due to entry block splitting) } // BB1 is the exit block (since gcov 4.8) This patch adds a synthetic entry block (like PGOInstrumentation and GCC) and inserts an edge from the synthetic entry block to the original entry block. We can thus remove the tricky `shouldKeepInEntry` and entry block splitting. The number of basic blocks does not change, but the emitted .gcno files will be smaller because we can save one GCOV_TAG_LINES tag. // BB0 is the synthetic entry block with a single edge to BB2 int main() { // BB2 return 0; // BB2 } // BB1 is the exit block (since gcov 4.8) -
Olivier Giroux authored
-
Guillaume Chatelet authored
This is preparatory work to unable storing alignment for AtomicCmpXchgInst. See D83136 for context and bug: https://bugs.llvm.org/show_bug.cgi?id=27168 This is the fixed version of D83375, which was submitted and reverted. Differential Revision: https://reviews.llvm.org/D87373
-
Mark de Wever authored
This is the initial part of the implementation of the C++20 likelihood attributes. It handles the attributes in an if statement. Differential Revision: https://reviews.llvm.org/D85091
-
Krzysztof Parzyszek authored
It fails for some reason, but it shouldn't stop switching to MSSA in DSE.
-
Dave Lee authored
Extract a function for turning `eLaunchFlavorDefault` into a concreate `eLaunchFlavor` value. This new function encapsulates the few compile time variables involved, and also prevents clang unused code diagnostics. Differential Revision: https://reviews.llvm.org/D87327
-
Krzysztof Parzyszek authored
-
Johannes Doerfert authored
The underlying issue is still there, just hides on most systems, even some Windows builds :( See: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/25479/steps/test-check-all/logs/FAIL%3A%20LLVM%3A%3Anoalias.ll This reverts commit 2600c9e2.
-
Eric Fiselier authored
The benchmarks expect to be built in C++17 or newer, but this isn't always how CMake configures the C++ dialect. Instead we need to explicitly set the CXX_STANDARD target property.
-
Dave Lee authored
Fix references to LLDB_ENABLE_TESTS. Differential Revision: https://reviews.llvm.org/D87345
-
Siva Chandra Reddy authored
-
Ulrich Weigand authored
During the main DAGCombine loop, whenever a node gets replaced, the new node and all its users are pushed onto the worklist. Omit this if the new node is the EntryToken (e.g. if a store managed to get optimized out), because re-visiting the EntryToken and its users will not uncover any additional opportunities, but there may be a large number of such users, potentially causing compile time explosion. This compile time explosion showed up in particular when building the SingleSource/UnitTests/matrix-types-spec.cpp test-suite case on any platform without SIMD vector support. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D86963
-
Olivier Giroux authored
Update atomic feature macros, synopsis, signatures to match C++20. Improve test coverage for non-lock-free atomics.
-
Mircea Trofin authored
Since the build bots have assertions enabled, this flew under the radar.
-
Siva Chandra Reddy authored
-
Joseph Huber authored
Summary: This patch starts adding support for adding information dumps to libomptarget and rtl plugins. The information printing is controlled by the LIBOMPTARGET_INFO environment variable introduced in D86483. The goal of this patch is to provide the user with additional information about the device during kernel execution and providing the user with information dumps in the case of failure. This patch added the ability to dump the pointer mapping table as well as printing the number of blocks and threads in the cuda RTL. Reviewers: jdoerfort gkistanova ye-luo Subscribers: guansong openmp-commits sstefan1 yaxunl ye-luo Tags: #OpenMP Differential Revision: https://reviews.llvm.org/D87165
-
- Sep 09, 2020
-
-
Simon Pilgrim authored
-
Krzysztof Parzyszek authored
-
Jakub Lichman authored
This commit specifies reduction dimensions for ConvOps. This prevents running reduction loops in parallel and enables easier detection of kernel dimensions which we will need later on. Differential Revision: https://reviews.llvm.org/D87288
-
Simon Pilgrim authored
Don't use auto for non-obvious types, and use const references.
-
Qiu Chaofan authored
In standard C library, both rint and nearbyint returns rounding result in current rounding mode. But nearbyint never raises inexact exception. On PowerPC, x(v|s)r(d|s)pic may modify FPSCR XX, raising inexact exception. So we can't select constrained fnearbyint into xvrdpic. One exception here is xsrqpi, which will not raise inexact exception, so fnearbyint f128 is okay here. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D87220
-
Jay Foad authored
NFC.
-
compinder authored
Fix of PR47339 Differential Revision: https://reviews.llvm.org/D87073/new/
-
Dmitry Preobrazhensky authored
Corrected parser to issue meaningful error messages for invalid and malformed registers. See bug 41303: https://bugs.llvm.org/show_bug.cgi?id=41303 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D87234
-
Alon Kom authored
II_setByPragma was not reset between 2 calls of the MachinePipleiner pass Reviewed By: bcahoon Differential Revision: https://reviews.llvm.org/D87088
-