- Sep 16, 2021
-
-
Philip Reames authored
-
Philip Reames authored
-
Alina Sbirlea authored
Add two levels of verification for MemorySSA: Fast and Full. The defaults are kept the same. Full verification always occurs under EXPENSIVE_CHECKS, but now it can also be requested in a specific pass for debugging purposes.
-
Mehdi Amini authored
This fixes a compiler warning for some version of GCC.
-
Peyton, Jonathan L authored
GOMP depobjs are represented as a two intptr_t array. The first element is the base address of the dependency and the second element is the flag indicating the type the depobj represents. Differential Revision: https://reviews.llvm.org/D108790
-
Uday Bondhugula authored
Tighten the def of memref.global op to use the right kind of TypeAttr (of MemRefType). Differential Revision: https://reviews.llvm.org/D109822
-
Yaxun (Sam) Liu authored
Diagnose -fopenmp-targets for HIP programs since dual HIP and OpenMP offloading in the same compilation is currently not supported by HIP toolchain. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D109718
-
Fangrui Song authored
This makes the default build closer to a -DLLVM_ENABLE_RUNTIMES=all build. The layout is arguably superior because different libraries of target triples are in different directories, similar to GCC/Debian multiarch. When LLVM_DEFAULT_TARGET_TRIPLE is x86_64-unknown-linux-gnu, `lib/clang/14.0.0/lib/libclang_rt.asan-x86_64.a` is moved to `lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.asan.a`. In addition, if the host compiler supports -m32 (multilib), `lib/clang/14.0.0/lib/libclang_rt.asan-i386.a` is moved to `lib/clang/14.0.0/lib/i386-unknown-linux-gnu/libclang_rt.asan.a`. Clang has been detecting both paths for lib/Driver/ToolChains/Gnu.cpp since 2018 (D50547). --- Note: Darwin needs to be disabled. The hierarchy needs to be sorted out. The current -DLLVM_DEFAULT_TARGET_TRIPLE=off state is like: ``` lib/clang/14.0.0/lib/darwin/libclang_rt.profile_ios.a lib/clang/14.0.0/lib/darwin/libclang_rt.profile_iossim.a lib/clang/14.0.0/lib/darwin/libclang_rt.profile_osx.a ``` Windows needs to be disabled: https://reviews.llvm.org/D107799?id=368557#2963311 Differential Revision: https://reviews.llvm.org/D107799
-
Michał Górny authored
9ee64c37 has started using COMPILER_RT_HAS_OMIT_FRAME_POINTER_FLAG inside scudo. However, the relevant CMake check was performed in builtin-config-ix.cmake, so the definition was missing when builtins were not built. Move the check to config-ix.cmake, so that it runs unconditionally of the components being built. Fixes PR#51847 Differential Revision: https://reviews.llvm.org/D109812
-
Anna Thomas authored
Updated check lines. Tests precommitted from D109700.
-
Fangrui Song authored
On x86_64-unknown-linux-gnu, `-m32` tests set LD_LIBRARY_PATH to `config.compiler_rt_libdir` (`$build/lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu`) instead of i386-unknown-linux-gnu, so `-shared-libsan` executables cannot find their runtime (e.g. `TestCases/replaceable_new_delete.cpp`). Detect -m32 and -m64 in config.target_cflags, and adjust `config.compiler_rt_libdir`. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D108859
-
Matt Morehouse authored
-
- Sep 15, 2021
-
-
Max Kazantsev authored
-
Nicolas Vasilache authored
Summary: Reviewers: Subscribers: Differential revision: https://reviews.llvm.org/D109824
-
Alexey Bataev authored
same/alternate instructions.
-
Matt Morehouse authored
Some setjmp calls within libc cannot be intercepted while their matching longjmp calls can be. This causes problems if our setjmp/longjmp interceptors don't use the exact same format as libc for populating and reading the jmp_buf. We add a magic field to our jmp_buf and populate it in setjmp. This allows our longjmp interceptor to notice when a libc jmp_buf is passed to it. See discussion on https://reviews.llvm.org/D109699 and https://reviews.llvm.org/D69045. Fixes https://github.com/google/sanitizers/issues/1244. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D109787
-
David Tenty authored
This change adds the system libc++ header location to the driver. As well we define the `__LIBC_NO_CPP_MATH_OVERLOADS__` macro when using those headers, in order to suppress conflicting C++ overloads in the system libc headers that were used by XL C++. Reviewed By: ZarkoCA Differential Revision: https://reviews.llvm.org/D109078
-
Jessica Clarke authored
This was presumably copied from the RV32 implementation and not updated like the rest.
-
Corentin Jabot authored
\x{XXXX} \u{XXXX} and \o{OOOO} are accepted in all languages mode in characters and string literals. This is a feature proposed for both C++ (P2290R1) and C (N2785). The papers have been seen by both committees but are not yet adopted into either standard. However, they do have support from both committees. -
Jessica Clarke authored
This looks like it was copied from the RV32 version and not properly updated. This has no functional effect but is not good style.
-
Jessica Clarke authored
These got missed in D91717.
-
Filipp Zhinkin authored
Enabled mul folding optimization that was previously disabled by being incorrect. To preserve correctness, mul's operand that is not compared with zero in select's condition is now frozen. Related bug: https://bugs.llvm.org/show_bug.cgi?id=51286 Correctness: https://alive2.llvm.org/ce/z/bHef7J https://alive2.llvm.org/ce/z/QcR7sf https://alive2.llvm.org/ce/z/vvBLzt https://alive2.llvm.org/ce/z/jGDXgq https://alive2.llvm.org/ce/z/3Pe8Z4 https://alive2.llvm.org/ce/z/LGga8M https://alive2.llvm.org/ce/z/CTG5fs Differential Revision: https://reviews.llvm.org/D108408
-
Sanjay Patel authored
-
Simon Pilgrim authored
Based off the worse case numbers generated by D103695, the AVX2/512 bit reversing/counting costs were higher than necessary (based off instruction counts instead of actual throughput).
-
Martin Storsjö authored
This codepath hadn't been exercised in a build with asserts before. Differential Revision: https://reviews.llvm.org/D109778
-
Martin Storsjö authored
This was requested in D38253, but missed back then. Differential Revision: https://reviews.llvm.org/D109046
-
Nico Weber authored
-
Nicolas Vasilache authored
Summary: Making the late transformations opt-in results in less surprising behavior when composing multiple calls to the codegen strategy. Reviewers: Subscribers: Differential revision: https://reviews.llvm.org/D109820
-
Nicolas Vasilache authored
AliasInfo can now use union-find for a much more efficient implementation. This brings no functional changes but large performance gains on more complex examples. Differential Revision: https://reviews.llvm.org/D109819
-
David Green authored
Under some situations under Thumb1, we could be stuck in an infinite loop recombining the same instruction. This puts a limit on that, not combining SUBC with SUBE repeatedly.
-
Florian Hahn authored
Add a set of test cases where redundant stores may be removable, depending on whether a local allocation gets captured before performing a load.
-
David Green authored
This extends the reduction logic in the vectorizer to handle intrinsic versions of min and max, both the floating point variants already created by instcombine under fastmath and the integer variants from D98152. As a bonus this allows us to match a chain of min or max operations into a single reduction, similar to how add/mul/etc work. Differential Revision: https://reviews.llvm.org/D109645
-
Simon Pilgrim authored
When searching for hidden identity shuffles (added at rG41146bfe), only peek through bitcasts to the source operand if it is a vector type as well.
-
Simon Atanasyan authored
Identified in D109359.
-
Justas Janickas authored
Adds support for a feature macro `__opencl_c_images` in C++ for OpenCL 2021 enabling a respective optional core feature from OpenCL 3.0. This change aims to achieve compatibility between C++ for OpenCL 2021 and OpenCL 3.0. Differential Revision: https://reviews.llvm.org/D109002
-
Cullen Rhodes authored
Identified in D109359. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D109755
-
David Green authored
-
Matthias Springer authored
E.g.: ``` %2 = memref.alloc() {alignment = 128 : i64} : memref<256x256xf32> %3 = memref.alloc() {alignment = 128 : i64} : memref<256x256xf32> // ... (%3 is not written to) linalg.copy(%3, %2) : memref<256x256xf32>, memref<256x256xf32> vector.transfer_write %11, %2[%c0, %c0] {in_bounds = [true, true]} : vector<256x256xf32>, memref<256x256xf32> ``` Avoid copies of %3 if %3 came directly from an InitTensorOp. Differential Revision: https://reviews.llvm.org/D109742 -
Florian Hahn authored
This is a first step towards addressing the last remaining limitation of the VPlan version of sinkScalarOperands: the legacy version can partially sink operands. For example, if a GEP has uniform users outside the sink target block, then the legacy version will sink all scalar GEPs, other than the one for lane 0. This patch works towards addressing this case in the VPlan version by detecting such cases and duplicating the sink candidate. All users outside of the sink target will be updated to use the uniform clone. Note that this highlights an issue with VPValue naming. If we duplicate a replicate recipe, they will share the same underlying IR value and both VPValues will have the same name ir<%gep>. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D104254
-
Xiang1 Zhang authored
[X86][InlineAsm] Use mem size information (*word ptr) for "global variable + registers" memory expression in inline asm. Differential Revision: https://reviews.llvm.org/D109739
-