- May 13, 2020
-
-
Alina Sbirlea authored
Summary: Update check to include the check for unreachable. Basic blocks ending in unreachable are special cased, as these blocks may be already unswitched. Before this patch this check is only done for the default destination. The condition for the exit cases and the default case must be the same, because we should never leave edges from the switch instruction to a basic block that we are unswitching. In PR45355 we still have a remaining edge (that we're attempting to remove from the DT) because its the default edge to an unreachable-terminated block where we unswitch a case edge to that block. Resolves PR45355. Reviewers: chandlerc Subscribers: hiraditya, uabelho, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78279
-
Matt Arsenault authored
-
Craig Topper authored
It was previously trying to use the 64-bit class, but 80 isn't evenly divisible by 64 so it will trigger a crash.
-
Craig Topper authored
[X86] Make the if statement structure for inline assembly constraints 'l', 'r', 'q', 'Q', and 'R' the same. These did similar things but had slight differences. For example 'Q' didn't allow f64, but the others did.
-
Douglas Yung authored
Reviewers: probinson Subscribers: #sanitizers llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D79839
-
Pete Steinfeld authored
Summary: Before making this change, whenever I ran "check-flang", I'd get an error message like: llvm-lit: /mnt/c/GitHub/f18/c751/flang/build/bin/../../../llvm/utils/lit/lit/main.py:252: warning: Failed to delete temp directory '/tmp/lit_tmp_gOKUIh' With this change, there's no such message in the output, and the temp directory is successfully removed. Note that my working environment is on Windows 10 running Windows Subsystem for Linux using the Ubuntu app. I'm running Python version 2.7.1. Earlier versions of Python do not contain `shutil`. It may be that this module was available on Windows systems later than other platforms. Upgrading my version of Python made the problem go away I don't believe that timing was a problem since inserting a long delay didn't fix things. So I added some text to the error message recommending that the user upgrade their version of Python if they run into this problem. Reviewers: yln, DavidTruby Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79861
-
Erik Pilkington authored
rdar://27527445
-
Eli Friedman authored
Use Align instead of using MaybeAlign; all the operations in question have known alignment. For getSliceAlign() in particular, in the cases where we used to return None, it would be converted back to an Align by IRBuilder, so there's no functional change there. Split off from D77454. Differential Revision: https://reviews.llvm.org/D79205
-
Kirstóf Umann authored
The comment in Checkers.td explains whats going on. As StreamChecker grows, expect a need to have smaller checkers out of it, but let that be a worry for later. Differential Revision: https://reviews.llvm.org/D78120
-
Craig Topper authored
I'm hoping this will restore some compile time lost by D75936 and D75937. Differential Revision: https://reviews.llvm.org/D79813
-
Sylvain Audi authored
In D49466, sys::path::replace_path_prefix was used instead startswith for -f[macro/debug/file]-prefix-map options. However those were reverted later (commit rG3bb24bf25767ef5bbcef958b484e7a06d8689204) due to broken Windows tests. This patch restores those replace_path_prefix calls. It also modifies the prefix matching to be case-insensitive under Windows. Differential Revision : https://reviews.llvm.org/D76869
-
Simon Pilgrim authored
-
Lei Zhang authored
The Vulkan runtime wrapper will be compiled to a shared library that are loaded by the JIT runner. Depending on LLVM libraries means that LLVM symbols will be compiled into the shared library. That can cause problems if we are using it with other shared libraries depending on LLVM, notably Mesa, the open-source graphics driver framework. The Vulkan API wrappers invoked by the JIT runner links to the system libvulkan.so. If it's Mesa providing the implementation, Mesa will normally try to load the system libLLVM.so for its shader compilation. That causes issues because the JIT runner already loaded the Vulkan runtime wrapper which has LLVM sybmols compiled in. So system linker will instruct Mesa to use those symbols instead. Differential Revision: https://reviews.llvm.org/D79860
-
Stephen Neuendorffer authored
The CMake structure of the toy example is non-standard. encourage people to copy the standalone example instead. Differential Revision: https://reviews.llvm.org/D79889
-
Stephen Neuendorffer authored
Introduce add_mlir_interface to avoid lots of boilerplate Differential Revision: https://reviews.llvm.org/D79841
-
mydeveloperday authored
Summary: Follow on from {D78879} to handle the more obscure to prevent spaces between operators ``` operator void *&(); operator void *&&(); operator void &*(); operator void &&*(); ``` Reviewers: sylvestre.ledru, sammccall, krasimir, Abpostelnicu Reviewed By: sammccall, Abpostelnicu Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D79201
-
mydeveloperday authored
Summary: Currently the 'AlignConsecutive*' options incorrectly align across elif and else statements, even if they are very far away and across unrelated preprocessor macros. This failed since on preprocessor run 2+, there is not enough context about the #ifdefs to actually differentiate one block from another, causing them to align across different blocks or even large sections of the file. Eg, with AlignConsecutiveAssignments: ``` \#if FOO // Run 1 \#else // Run 1 int a = 1; // Run 2, wrong \#endif // Run 1 \#if FOO // Run 1 \#else // Run 1 int bar = 1; // Run 2 \#endif // Run 1 ``` is read as ``` int a = 1; // Run 2, wrong int bar = 1; // Run 2 ``` The approach taken to fix this was to add a new flag to Token that forces breaking alignment across groups of lines (MustBreakAlignBefore) in a similar manner to the existing flag that forces a line break (MustBreakBefore). This flag is set for the first Token after a preprocessor statement or diff conflict marker. Fixes #25167,#31281 Patch By: JakeMerdichAMD Reviewed By: MyDeveloperDay Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D79388
-
Anna Thomas authored
Updated the comments on the code as well to reflect what the preconditions on VFABI::getVectorVariantNames are.
-
Sam Clegg authored
This is a followup to https://reviews.llvm.org/D78779. When signatures mismatch we create set of variant symbols. Some of the fields in these symbols were not be initialized correct. Specifically we were seeing isUsedInRegularObj not being set correctly, leading to the symbol not getting included in the symbol table and a crash writing relections in --reloctable mode. There is larger refactor due here, but this is a minimal change the fixes the bug at hand. Differential Revision: https://reviews.llvm.org/D79756
-
Huber, Joseph authored
Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D79359
-
Alex Zinenko authored
All ops of the SCF dialect now use the `scf.` prefix instead of `loop.`. This is a part of dialect renaming. Differential Revision: https://reviews.llvm.org/D79844
-
MaheshRavishankar authored
Differential Revision: https://reviews.llvm.org/D79884
-
Siva Chandra Reddy authored
A typo which was caught has also been fixed. Reviewers: abrachet Differential Revision: https://reviews.llvm.org/D79826
-
Amy Huang authored
Summary: This implements searching for function symbols and public symbols by address. More specifically, -Implements NativeSession::findSymbolByAddress for function symbols and public symbols. I think data symbols are also searched for, but isn't implemented in this patch. -Adds classes for NativeFunctionSymbol and NativePublicSymbol -Adds a '-use-native-pdb-reader' option to llvm-symbolizer, for testing purposes. Reviewers: rnk, amccarth, labath Subscribers: mgorny, hiraditya, MaskRay, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79269
-
Benjamin Kramer authored
Fixes a -Wunused-variable warning in Release builds.
-
Jonas Devlieghere authored
The reproducers' working directory is set to the current working directory when they are initialized. While this is not optimal, as the cwd can change during a debug session, it has been sufficient so far. The current approach doesn't work for the API test suite however because dotest temporarily changes the directory to where the test's Python file lives. This patch adds an API to tell the reproducers what to set the CWD to. This is a NO-OP in every mode but capture. Differential revision: https://reviews.llvm.org/D79825
-
Yaxun (Sam) Liu authored
Differential Revision: https://reviews.llvm.org/D79565
-
Joel E. Denny authored
Sometimes you want to disable a FileCheck directive without removing it entirely, or you want to write comments that mention a directive by name. The `COM:` directive makes it easy to do this. For example, you might have: ``` ; X32: pinsrd_1: ; X32: pinsrd $1, 4(%esp), %xmm0 ; COM: FIXME: X64 isn't working correctly yet for this part of codegen, but ; COM: X64 will have something similar to X32: ; COM: ; COM: X64: pinsrd_1: ; COM: X64: pinsrd $1, %edi, %xmm0 ``` Without this patch, you need to use some combination of rewording and directive syntax mangling to prevent FileCheck from recognizing the commented occurrences of `X32:` and `X64:` above as directives. Moreover, FileCheck diagnostics have been proposed that might complain about the occurrences of `X64` that don't have the trailing `:` because they look like directive typos: <http://lists.llvm.org/pipermail/llvm-dev/2020-April/140610.html> I think dodging all these problems can prove tedious for test authors, and directive syntax mangling already makes the purpose of existing test code unclear. `COM:` can avoid all these problems. This patch also updates the small set of existing tests that define `COM` as a check prefix: - clang/test/CodeGen/default-address-space.c - clang/test/CodeGenOpenCL/addr-space-struct-arg.cl - clang/test/Driver/hip-device-libs.hip - llvm/test/Assembler/drop-debug-info-nonzero-alloca.ll I think lit should support `COM:` as well. Perhaps `clang -verify` should too. Reviewed By: jhenderson, thopre Differential Revision: https://reviews.llvm.org/D79276
-
Reid Kleckner authored
This reverts commit eef95f27. The new assertion about branch propability sums does not hold.
-
Raphael Isemann authored
Also removed the unnecessary element-by-element copy of the std::vector hand_imported_modules to modules_for_macros.
-
Manuel Klimek authored
This enables us to intercept changes to the token type via setType(), which is a precondition for being able to use multi-pass formatting for macro arguments. Differential Revision: https://reviews.llvm.org/D67405
-
Ronald Wampler authored
Summary: This allows for suppressing warnings about the conversion function never being called if it overrides a virtual function in a base class. Differential Revision: https://reviews.llvm.org/D78444
-
Russell Gallop authored
Was failing here: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/32320
-
David Green authored
Under MVE a vdup will always take a gpr register, not a floating point value. During DAG combine we convert the types to a bitcast to an integer in an attempt to fold the bitcast into other instructions. This is OK, but only works inside the same basic block. To do the same trick across a basic block boundary we need to convert the type in codegenprepare, before the splat is sunk into the loop. This adds a convertSplatType function to codegenprepare to do that, putting bitcasts around the splat to force the type to an integer. There is then some adjustment to the code in shouldSinkOperands to handle the extra bitcasts. Differential Revision: https://reviews.llvm.org/D78728
-
Pierre Oechsel authored
Differential Revision: https://reviews.llvm.org/D79858
-
Nicolas Vasilache authored
The existing implementation of SubViewOp::getRanges relies on all offsets/sizes/strides to be dynamic values and does not work in combination with canonicalization. This revision adds a SubViewOp::getOrCreateRanges to create the missing constants in the canonicalized case. This allows reactivating the fused pass with staged pattern applications. However another issue surfaces that the SubViewOp verifier is now too strict to allow folding. The existing folding pattern is turned into a canonicalization pattern which rewrites memref_cast + subview into subview + memref_cast. The transform-patterns-matmul-to-vector can then be reactivated. Differential Revision: https://reviews.llvm.org/D79759
-
Carl Ritson authored
Summary: When removing barrier edges on exports then dependencies need to be propagated. Reviewers: foad Reviewed By: foad Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79855
-
David Green authored
Similar to fmul/fadd, we can sink a splat into a loop containing a fma in order to use more register instruction variants. For that there are also adjustments to the sinking code to handle more than 2 arguments. Differential Revision: https://reviews.llvm.org/D78386
-
Raphael Isemann authored
-
Michael Schellenberger Costa authored
This resolves the NB comment about the construction of a fixed-size span from a dynamic range. Differential Revision: https://reviews.llvm.org/D74577
-