- May 22, 2020
-
-
Nemanja Ivanovic authored
We currently emit incorrect codegen for this constraint because we set it as a constraint that allows registers. This will cause the value to be copied to the stack and that address to be passed as the address. This is not what we want. Fixes: https://bugs.llvm.org/show_bug.cgi?id=42762 Differential revision: https://reviews.llvm.org/D77542
-
Nemanja Ivanovic authored
The fix for PR39865 took care of some of the handling for half precision but it missed a number of issues that still exist. This patch fixes the remaining issues that cause crashes in the PPC back end. Fixes: https://bugs.llvm.org/show_bug.cgi?id=45776 Differential revision: https://reviews.llvm.org/D79283
-
Marek Kurdej authored
-
Marek Kurdej authored
-
Matt Arsenault authored
This really belongs in InstructionSimplify since it doesn't introduce new instructions. Put it in instcombine to avoid increasing the number of passes considering target intrinsics. I also noticed that we seem to now be interpreting strictfp attributes on call sites, so try to handle that.
-
Jon Roelofs authored
This reverts commit 183d6af0. Revert pending further consensus building: https://reviews.llvm.org/D79963#2050521
-
Simon Pilgrim authored
D77207 changed the bounds checks resulting in tests for positive unsigned values - dropping the superfluous check to fix gcc+Werror "error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]" warning.
-
Dmitry Preobrazhensky authored
See bug 45925: https://bugs.llvm.org/show_bug.cgi?id=45925 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80287
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
QingShan Zhang authored
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D80427
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D80426
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D80424
-
Valeriy Savchenko authored
Summary: SATest scripts should be more python-style than they are now. This includes better architecture, type annotations, naming convesions, and up-to-date language features. This commit starts with two scripts SATestBuild and SATestAdd. Differential Revision: https://reviews.llvm.org/D80423
-
Pavel Labath authored
200 microseconds is not enough time for any expression to execute reliably. On linux, calling pthread_exit can result in call to dlopen, which cannot complete in that time, particularly when running under a debugger. On linux, this test failed all the time, on macos, about two thirds of runs were failing. This patch increases the timeout to 100ms, which is enough to get it passing reliably on linux, though I wouldn't be surprised if an even bigger timeout would be needed for remote test runs.
-
Alexey Bader authored
Summary: This change enables OpenCL diagnostics for the pointers annotated with address space attribute SYCL mode. Move `isAddressSpaceOverlapping` method from PointerType to QualType. Reviewers: Anastasia, rjmccall Reviewed By: rjmccall Subscribers: rjmccall, jeroen.dobbelaere, Fznamznon, yaxunl, ebevhan, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80317
-
Victor Campos authored
This reverts commit 8a125532. A bug has been found when generating code for Thumb2. In some very specific cases, the prologue/epilogue emitter generates erroneous stack offsets for the new LDRD instructions that access the stack. This bug does not seem to be caused by the reverted patch though. Likely the latter has made an undiscovered issue emerge in the prologue/epilogue emission pass. Nevertheless, this reversion is necessary since it is blocking users of the ARM backend.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Stripped out the switch statement, but kept case labels as comments for future reference.
-
Simon Pilgrim authored
Remove duplicates in MILexer.cpp that are already included in MILexer.h.
-
Raphael Isemann authored
Summary: Currently we never enable C++14 in the expression evaluator. This enables it when the language of the program is C++14. It seems C++17 and so on isn't yet in any of the language enums (and the DWARF standard it seems), so C++17 support will be a follow up patch. Reviewers: labath, JDevlieghere Reviewed By: labath, JDevlieghere Subscribers: aprantl Differential Revision: https://reviews.llvm.org/D80308
-
Raphael Isemann authored
Summary: We are not doing this very often, but sometimes it's convenient when I can just << ConstStrings into llvm::errs() during testing. Reviewers: labath, JDevlieghere Reviewed By: labath, JDevlieghere Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D80310
-
Roman Lebedev authored
-
Max Kazantsev authored
If the only user of `Instr` is in a return or unreachable block, we can sink `Instr` to the`User` safely (unless it reads/writes memory). Return or unreachable blocks are guaranteed to execute zero or one time, and `Instr` always dominates `User`, so they either will be executed together (execution of `User` always implies execution of `Instr`) or not executed at all. Differential Revision: https://reviews.llvm.org/D80120 Reviewed By: asbirlea, jdoerfert
-
Jonas Devlieghere authored
Fix warning: enumeration value 'eExpressionThreadVanished' not handled in switch [-Wswitch]
-
LLVM GN Syncbot authored
-
Craig Topper authored
compiler-rt and trunk libgcc support this now.
-
Craig Topper authored
-
Lang Hames authored
This initial implementation supports section and symbol parsing, but no relocation support. It enables JITLink to link and execute ELF relocatable objects that do not require relocations. Patch by Jared Wyles. Thanks Jared! Differential Revision: https://reviews.llvm.org/D79832
-
ISHIGURO, Hiroshi authored
Fixes PR45753 When a program that contains a loop to which both `omp parallel for` pragma and `clang loop` pragma are associated is compiled with the -fopenmp option, `clang loop` pragma did not take effect. The example below should not be vectorized by the `clang loop` pragma but it was actually vectorized. The cause is that `llvm.loop.vectorize.width` was not output to the IR when -fopenmp is specified. The fix attaches attributes if they exist for the loop. [example.c] ``` int a[100], b[100]; void foo() { #pragma omp parallel for #pragma clang loop vectorize(disable) for (int i = 0; i < 100; i++) a[i] += b[i] * i; } ``` [compile] ``` $ clang -O2 -fopenmp example.c -c -Rpass=vect example.c:3:11: remark: vectorized loop (vectorization width: 4, interleaved count: 2) [-Rpass=loop-vectorize] #pragma omp parallel for ^ ``` [IR with -fopenmp] ``` $ clang -O2 exmaple.c -S -emit-llvm -mllvm -disable-llvm-optzns -o - -fopenmp | grep 'vectorize\.width' ``` [IR with -fno-openmp] ``` $ clang -O2 example.c -S -emit-llvm -mllvm -disable-llvm-optzns -o - -fno-openmp | grep 'vectorize\.width' !7 = !{!"llvm.loop.vectorize.width", i32 1} ``` Differential Revision: https://reviews.llvm.org/D79921 -
Jinsong Ji authored
llvm-extract get serveral new options, but we forgot to update doc. This patch update the doc. Reviewed By: volkan Differential Revision: https://reviews.llvm.org/D80413
-
Jonas Devlieghere authored
The VFS is a snapshot and cannot capture changes to the file system.
-
Jonas Devlieghere authored
The reproducers only track the creation of objects and not their destruction. Therefore it keeps all objects alive indefinitely.
-
Nico Weber authored
-
Jessica Paquette authored
(This patch is by Jessica, I'm just committing it on her behalf because I need a post-legalizer combiner for something else). This supersedes D77250, which did equivalent work in the selector. This can be done pre-legalization or post-legalization. Post-legalization is more likely to hit, since G_IMPLICIT_DEFs tend to appear during legalization. There's no reason to not do it pre-legalization though-- if it can be caught earlier, great. (I also think that it might be worth reimplementing D78769 using a target-specific post-legalization combine too after thinking about it for a while.) Differential Revision: https://reviews.llvm.org/D78852
-
Paula Toth authored
Summary: When building llvm-libc with linting enabled, clang-tidy would use the resource dir of the monorepo rather then the host compiler's resource dir. This presented issues when including headers from the host compiler e.g. for sanitizers. Therefore this patch explicitly tells clang-tidy to use the host compiler's resource dir. Reviewers: sivachandra Reviewed By: sivachandra Subscribers: mgorny, tschuett, ecnelises, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D80265
-
Jim Ingham authored
-
Jim Ingham authored
undefined reference to pthread_create I skipped the test till I can figure out why this didn't build.
-
Dominic Chen authored
Summary: When I try to extract a basic block using llvm-extract, it erroneously reports that the named basic block doesn't exist. After digging into the code, it appears to be iterating over an unmaterialized function, which will fail to match any basic blocks. Reviewers: volkan, qcolombet Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80346
-