- Jul 23, 2020
-
-
Diego Caballero authored
This patch refactors a small part of the Super Vectorizer code to a utility so that it can be used independently from the pass. This aligns vectorization with other utilities that we already have for loop transformations, such as fusion, interchange, tiling, etc. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D84289
-
Fangrui Song authored
This reverts commit e64afefd. It caused a PGO bootstrapped clang to crash on many source files. `__llvm_profile_instrument_range` seems to trigger a null pointer dereference. Call stack: __llvm_profile_instrument_range llvm::APInt::udiv(llvm::APInt const&) const getRangeForAffineARHelper
-
Christopher Tetreault authored
Summary: These should have half float as the element type Reviewers: cameron.mcinally, efriedma, sdesmalen, paulwalker-arm Reviewed By: paulwalker-arm Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84211
-
Logan Smith authored
Try enabling -Wsuggest-override again, using add_compile_options instead of add_compile_definitions for disabling it in unittests/ directories. Using add_compile_definitions caused the flag to be passed to rc.exe on Windows and thus broke Windows builds.
-
David Blaikie authored
This is an alternative proposal to D81476 (and D82084) - the details were sufficiently confusing to me it seemed easier to write some code and see how it looks. Reviewers: SouraVX Differential Revision: https://reviews.llvm.org/D84278
-
Jonas Devlieghere authored
Eliminates value parameter for types that are not trivially copyable.
-
Michael Kruse authored
-
Richard Smith authored
glibc's implementation of the CMPLX macro uses it (with -fgnuc-version set to 4.7 or later).
-
Nico Weber authored
-
Fangrui Song authored
`__llvm_profile_instrument_memop` transitively calls calloc, thus calloc should not be instrumented. I saw a `calloc -> __llvm_profile_instrument_memop -> calloc -> __llvm_profile_instrument_memop -> ...` infinite loop leading to stack overflow when the malloc implementation (e.g. tcmalloc) is built and instrumented along with the application. We should figure out the library calls which may be instrumented and disable their instrumentation before rolling out this change. Reviewed By: yamauchi Differential Revision: https://reviews.llvm.org/D84358
-
David Blaikie authored
-
Nikita Popov authored
-
Nikita Popov authored
And adjust the indbrtest4 test to actually test what it's supposed to. BB1 is supposed to be eliminated here, but isn't, because BB0 still branches to it. This was lost due to the incomplete CHECK lines.
-
Louis Dionne authored
When the compiler is Clang, _GNUC_VER_NEW is 0, which messes up the logic.
-
Mircea Trofin authored
-
Andrew Grieve authored
Summary: Came up in Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1103108#c21 Reviewers: eugenis Reviewed By: eugenis Subscribers: #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D84237
-
David Blaikie authored
I was trying to pick this up a bit when reviewing D48426 (& perhaps D69778) - in any case, looks like D48426 added a module level flag that might not be needed. The D48426 implementation worked by setting a module level flag, then code generating contents from the PCH a special case in ASTContext::DeclMustBeEmitted would be used to delay emitting the definition of these functions if they came from a Module with this flag. This strategy is similar to the one initially implemented for modular codegen that was removed in D29901 in favor of the modular decls list and a bit on each decl to specify whether it's homed to a module. One major difference between PCH object support and modular code generation, other than the specific list of decls that are homed, is the compilation model: MSVC PCH modules are built into the object file for some other source file (when compiling that source file /Yc is specified to say "this compilation is where the PCH is homed"), whereas modular code generation invokes a separate compilation for the PCH alone. So the current modular code generation test of to decide if a decl should be emitted "is the module where this decl is serialized the current main file" has to be extended (as Lubos did in D69778) to also test the command line flag -building-pch-with-obj. Otherwise the whole thing is basically streamlined down to the modular code generation path. This even offers one extra material improvement compared to the existing divergent implementation: Homed functions are not emitted into object files that use the pch. Instead at -O0 they are not emitted into the IR at all, and at -O1 they are emitted using available_externally (existing functionality implemented for modular code generation). The pch-codegen test has been updated to reflect this new behavior. [If possible: I'd love it if we could not have the extra MSVC-style way of accessing dllexport-pch-homing, and just do it the modular codegen way, but I understand that it might be a limitation of existing build systems. @hans / @thakis: Do either of you know if it'd be practical to move to something more similar to .pcm handling, where the pch itself is passed to the compilation, rather than homed as a side effect of compiling some other source file?] Reviewers: llunak, hans Differential Revision: https://reviews.llvm.org/D83652
-
David Green authored
This was missed out of 1030e825, but hopefully fixes the issues reported with NEON accidentally generating MVE instructions.
-
Thomas Raoux authored
CopyOp get vectorized to vector.transfer_read followed by vector.transfer_write Differential Revision: https://reviews.llvm.org/D83739
-
Louis Dionne authored
-
Pete Steinfeld authored
Summary: When a constant array of empty strings goes through contant folding, the result is something that contains no bytes. If this array is passed to the intrinsic function `RESHAPE()`, we were not handling things correctly. I fixed this by checking for an empty destination when calling the function `CopyFrom()` on an array of strings. I also added a test with a couple of different examples that trigger the problem. Reviewers: klausler, tskeith, DavidTruby Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84352
-
Andrew Litteken authored
Add pass dependecies: - TargetTransformInfoWrapperPass - TargetPassConfig - LoopInfoWrapperPass - TargetLibraryInfoWrapperPass To fix inconsistencies when passes are added to the pipeline. Reviewers: efriedma, kmclaughlin, paquette Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D84346
-
Louis Dionne authored
We want to be sure that atomic<size_t> is always lock-free, or the code will be much slower than expected (and could even conceivably fail if the lock implementation somehow calls back into libc++abi).
-
Louis Dionne authored
This allows simplifying the implementation of barriers. This is a re-commit of 1ac403bd, which had to be reverted in 64a9c944 because the minimum CMake version wasn't high enough. Now that we've upgraded, we can do this. Differential Revision: https://reviews.llvm.org/D75243
-
LLVM GN Syncbot authored
-
Jonas Devlieghere authored
-
Nikita Popov authored
-
Amy Kwan authored
The implementation of the xvtlsbb builtins/intrinsics were not correct as the intrinsics previously used i1 as an argument type. This patch changes the i1 argument type used in these intrinsics to be i32 instead, as having the second as an i1 can lead to issues in the backend. Differential Revision: https://reviews.llvm.org/D84291
-
Simon Pilgrim authored
Also remove DIE.h include from DwarfCompileUnit.h and replace with forward declarations.
-
Simon Pilgrim authored
-
Louis Dionne authored
This upgrade should be friction-less because we've already been ensuring that CMake >= 3.13.4 is used. This is part of the effort discussed on llvm-dev here: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140578.html Differential Revision: https://reviews.llvm.org/D78648
-
Hans Wennborg authored
After lots of follow-up fixes, there are still problems, such as -Wno-suggest-override getting passed to the Windows Resource Compiler because it was added with add_definitions in the CMake file. Rather than piling on another fix, let's revert so this can be re-landed when there's a proper fix. This reverts commit 21c0b4c1. This reverts commit 81d68ad2. This reverts commit a361aa52. This reverts commit fa42b7cf. This reverts commit 955f87f9. This reverts commit 8b16e45f. This reverts commit 308a127a. This reverts commit 274b6b0c. This reverts commit 1c7037a2.
-
Mircea Trofin authored
We can just use the definition from config.h. This means we need to move a few lines around in CMakeLists.txt - the TF_AOT detection needs to be before the spot we process the config.h.cmake files. Differential Revision: https://reviews.llvm.org/D84349
-
Matt Arsenault authored
-
Matt Arsenault authored
There's no reason to involve the hassle of a virtual method targets have to override for a simple boolean. Not sure exactly what's going on with Mips, but it seems to define its own totally separate handler classes.
-
Nico Weber authored
-
Joel E. Denny authored
This implements OpenMP runtime support for the OpenMP TR8 `present` map type modifier. The previous patch in this series implements Clang front end support. See that patch summary for behaviors that are not yet supported. Reviewed By: grokos, jdoerfert Differential Revision: https://reviews.llvm.org/D83062
-
Adrian Prantl authored
-
Matt Arsenault authored
v_cvt_f32_f16 can still accept this value as a literal constant. This showed up in GlobalISel since it doesn't have constant folding for G_FPEXT.
-
Logan Smith authored
-