[llvm-bugs] [Bug 50196] New: Segmentation fault parsing parameter pack expansion
https://bugs.llvm.org/show_bug.cgi?id=50196 Bug ID: 50196 Summary: Segmentation fault parsing parameter pack expansion Product: clang Version: 10.0 Hardware: PC OS: FreeBSD Status: NEW Severity: enhancement Priority: P Component: Frontend Assignee: unassignedclangb...@nondot.org Reporter: serpent7...@gmail.com CC: llvm-bugs@lists.llvm.org, neeil...@live.com, richard-l...@metafoo.co.uk I got segfault compiling this code: #include template struct Ice> {}; I'm using clang 10.0.1, but I also reproduced the issue with clang 12 and trunk on godbolt https://godbolt.org/z/5eEsvWdxd The issue persists if I omit parameter pack expansion on line 4: #include template struct Ice> {}; -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50197] New: 128 bit arithmetic --- inefficient logic test
https://bugs.llvm.org/show_bug.cgi?id=50197 Bug ID: 50197 Summary: 128 bit arithmetic --- inefficient logic test Product: new-bugs Version: trunk Hardware: PC OS: All Status: NEW Severity: enhancement Priority: P Component: new bugs Assignee: unassignedb...@nondot.org Reporter: z...@smallinteger.com CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org Created attachment 24821 --> https://bugs.llvm.org/attachment.cgi?id=24821&action=edit Sample code See attached code, compiled with -O2. The condition inside the while () test is unnecessarily evaluated with a 128 bit shift instruction, square: # @square mov rax, rdi .LBB0_1:# =>This Inner Loop Header: Depth=1 add rax, 1 adc rsi, 0 mov rcx, rsi shldrcx, rax, 4 mov rdx, rsi shr rdx, 60 or rdx, rcx jne .LBB0_1 ret even though a 64 bit shift instruction suffices. However, changing || to | in the logic condition yields the more efficient code below. square: # @square mov rax, rdi .LBB0_1:# =>This Inner Loop Header: Depth=1 add rax, 1 adc rsi, 0 mov rcx, rax shr rcx, 60 or rcx, rsi jne .LBB0_1 ret Found with clang-10 on Ubuntu 20.04 LTS, verified for clang 10, 11, and trunk using godbolt. Note that gcc -O2 handles both of these cases emitting the more efficient code. -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50187] LLVM prefer lzcnt too strongly - extra computation required
https://bugs.llvm.org/show_bug.cgi?id=50187 David Bolvansky changed: What|Removed |Added Resolution|--- |WONTFIX Status|NEW |RESOLVED -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50198] New: [X86] long double to float128 conversion not working properly
https://bugs.llvm.org/show_bug.cgi?id=50198 Bug ID: 50198 Summary: [X86] long double to float128 conversion not working properly Product: libraries Version: trunk Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Backend: X86 Assignee: unassignedb...@nondot.org Reporter: har...@gigawatt.nl CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org, llvm-...@redking.me.uk, pengfei.w...@intel.com, spatel+l...@rotateright.com $ cat test.c int main(void) { long double ld = 0; __float128 f128 = ld; int i = f128; return i; } $ clang -m64 test.c && ./a.out && echo ok ok $ clang -mx32 test.c && ./a.out && echo ok ok $ clang -m32 test.c && ./a.out && echo ok Segmentation fault (core dumped) This is with clang 12.0.0. It does not seem to be a regression, godbolt.org shows this to segfault as far back as clang 7 (and also with current trunk). Before clang 7, the conversion was not supported and resulted in a compiler error. -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50199] New: Failed to remove cmp and merge identical blocks
https://bugs.llvm.org/show_bug.cgi?id=50199 Bug ID: 50199 Summary: Failed to remove cmp and merge identical blocks Product: libraries Version: trunk Hardware: PC OS: Linux Status: NEW Severity: enhancement Priority: P Component: Scalar Optimizations Assignee: unassignedb...@nondot.org Reporter: david.bolvan...@gmail.com CC: llvm-bugs@lists.llvm.org union any { any(any& x) { if (x.st < 4) { x.st = 0; } else { x.ex = nullptr; } } long st; void* ex; }; void f(any* b) { (any(*b)); } %union.any = type { i64 } define dso_local void @_Z1fP3any(%union.any* nocapture %0) local_unnamed_addr #0 { %2 = getelementptr inbounds %union.any, %union.any* %0, i64 0, i32 0 %3 = load i64, i64* %2, align 8, !tbaa !3 %4 = icmp slt i64 %3, 4 br i1 %4, label %5, label %6 5:; preds = %1 store i64 0, i64* %2, align 8, !tbaa !3 br label %8 6:; preds = %1 %7 = bitcast %union.any* %0 to i8** store i8* null, i8** %7, align 8, !tbaa !3 br label %8 8:; preds = %5, %6 ret void } f(any*): # @f(any*) cmp qword ptr [rdi], 3 mov qword ptr [rdi], 0 ret https://godbolt.org/z/b17vfY9eK It seems that backend already does a good job and merges the blocks. Middle-end should be able to simplify this even futher - remove condition, merge blocks & unify stores, .. -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50200] New: [Flang] [OpenMP] PARALLEL SECTIONS are unparsed incorrectly
https://bugs.llvm.org/show_bug.cgi?id=50200 Bug ID: 50200 Summary: [Flang] [OpenMP] PARALLEL SECTIONS are unparsed incorrectly Product: flang Version: trunk Hardware: PC OS: All Status: NEW Severity: enhancement Priority: P Component: Frontend Assignee: unassignedb...@nondot.org Reporter: sscalp...@nvidia.com CC: david.tr...@arm.com, jper...@nvidia.com, kirankuma...@gmail.com, llvm-bugs@lists.llvm.org, sscalp...@nvidia.com See the extra $OMP SECTION in the unparsed output. % cat b.f90 SUBROUTINE sect1 (x) INTEGER x(1_4) !$OMP PARALLEL SECTIONS DO i=1_4,1_4 x(int(i,kind=8))=0_4 END DO !$OMP END PARALLEL SECTIONS END SUBROUTINE % flang -fopenmp -funparse b.f90 > c.f90 % diff b.f90 c.f90 3a4 > !$OMP SECTION % cat c.f90 SUBROUTINE sect1 (x) INTEGER x(1_4) !$OMP PARALLEL SECTIONS !$OMP SECTION DO i=1_4,1_4 x(int(i,kind=8))=0_4 END DO !$OMP END PARALLEL SECTIONS END SUBROUTINE -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] Issue 33738 in oss-fuzz: llvm:clang-objc-fuzzer: Stack-overflow in ConvertDeclSpecToType
Updates: Labels: ClusterFuzz-Verified Status: Verified Comment #1 on issue 33738 by ClusterFuzz-External: llvm:clang-objc-fuzzer: Stack-overflow in ConvertDeclSpecToType https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33738#c1 ClusterFuzz testcase 5836468829421568 is verified as fixed in https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=202105010606:202105020605 If this is incorrect, please file a bug on https://github.com/google/oss-fuzz/issues/new -- You received this message because: 1. You were specifically CC'd on the issue You may adjust your notification preferences at: https://bugs.chromium.org/hosting/settings Reply to this email to add a comment.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50201] New: [Flang] [OpenMP] Variables in common blocks may not be inheriting data sharing attributes
https://bugs.llvm.org/show_bug.cgi?id=50201 Bug ID: 50201 Summary: [Flang] [OpenMP] Variables in common blocks may not be inheriting data sharing attributes Product: flang Version: trunk Hardware: PC OS: All Status: NEW Severity: enhancement Priority: P Component: Frontend Assignee: unassignedb...@nondot.org Reporter: sscalp...@nvidia.com CC: david.tr...@arm.com, jper...@nvidia.com, kirankuma...@gmail.com, llvm-bugs@lists.llvm.org, sscalp...@nvidia.com The variable 'a' ought to inherit threadprivate from the common block. % cat t.f90 integer(4) :: a common /c/ a !$OMP THREADPRIVATE(/c/) !$OMP PARALLEL DEFAULT(none) a = omp_get_thread_num() !$OMP END PARALLEL end % flang -c -fopenmp t.f90 ./t.f90:5:5: error: The DEFAULT(NONE) clause requires that 'a' must be listed in a data-sharing attribute clause a = omp_get_thread_num() ^ -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50202] New: `r7` incorrectly chosen for scratch register by `__builtin_longjmp` on ARM Linux
https://bugs.llvm.org/show_bug.cgi?id=50202 Bug ID: 50202 Summary: `r7` incorrectly chosen for scratch register by `__builtin_longjmp` on ARM Linux Product: new-bugs Version: 11.0 Hardware: PC OS: Linux Status: NEW Severity: enhancement Priority: P Component: new bugs Assignee: unassignedb...@nondot.org Reporter: xtk...@gmail.com CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org Created attachment 24822 --> https://bugs.llvm.org/attachment.cgi?id=24822&action=edit Preprocessd C source for reproduction To reproduce, gunzip the attached file and compile it with the following options: $ clang --target=armv7a-softfloat-linux-gnueabi -fdeclspec -O3 -fPIC -fstack-protector-strong ruby-vm-preprocessed.i -c Then $ llvm-objdump --print-imm-hex -d --disassemble-symbols=rb_f_catch ruby-vm-preprocessed.o gives the output which is attached at the bottom of this post. Note that at 0x13288 `r7` is chosen for the scratch register, which is then overwritten at 0x1328c with the frame pointer saved in the jump buffer. Consequently, at 0x13294 the `bx` instruction tries to branch to an address pointed to by the frame pointer, which is clearly incorrect, typically leading to an Illegal Instruction error. 000131cc : 131cc: f0 48 2d e9 push{r4, r5, r6, r7, r11, lr} 131d0: 10 d0 4d e2 sub sp, sp, #16 131d4: c0 50 9f e5 ldr r5, [pc, #0xc0] 131d8: 01 00 70 e3 cmn r0, #1 131dc: 05 50 9f e7 ldr r5, [pc, r5] 131e0: 00 20 95 e5 ldr r2, [r5] 131e4: 0c 20 8d e5 str r2, [sp, #0xc] 131e8: 1f 00 00 da ble #0x7c 131ec: 02 00 50 e3 cmp r0, #2 131f0: 1d 00 00 aa bge #0x74 131f4: 00 00 50 e3 cmp r0, #0 131f8: 01 00 00 0a beq #0x4 131fc: 00 40 91 e5 ldr r4, [r1] 13200: 04 00 00 ea b #0x10 13204: 94 00 9f e5 ldr r0, [pc, #0x94] 13208: 00 00 9f e7 ldr r0, [pc, r0] 1320c: 00 00 90 e5 ldr r0, [r0] 13210: fe ff ff eb bl #-0x8 13214: 00 40 a0 e1 mov r4, r0 13218: 78 00 9f e5 ldr r0, [pc, #0x78] 1321c: 00 00 8f e0 add r0, pc, r0 13220: fe ff ff eb bl #-0x8 13224: 78 10 9f e5 ldr r1, [pc, #0x78] 13228: 08 30 8d e2 add r3, sp, #8 1322c: 00 60 90 e5 ldr r6, [r0] 13230: 04 00 a0 e1 mov r0, r4 13234: 01 10 8f e0 add r1, pc, r1 13238: 00 20 a0 e3 mov r2, #0 1323c: 00 60 8d e5 str r6, [sp] 13240: 00 70 a0 e3 mov r7, #0 13244: fe ff ff eb bl #-0x8 13248: 08 10 9d e5 ldr r1, [sp, #0x8] 1324c: 00 00 51 e3 cmp r1, #0 13250: 08 00 00 1a bne #0x20 13254: 00 10 95 e5 ldr r1, [r5] 13258: 0c 20 9d e5 ldr r2, [sp, #0xc] 1325c: 02 00 51 e1 cmp r1, r2 13260: 10 d0 8d 02 addeq sp, sp, #16 13264: f0 88 bd 08 popeq {r4, r5, r6, r7, r11, pc} 13268: fe ff ff eb bl #-0x8 1326c: 00 10 a0 e3 mov r1, #0 13270: 01 20 a0 e3 mov r2, #1 13274: fe ff ff eb bl #-0x8 13278: 0c 00 96 e5 ldr r0, [r6, #0xc] 1327c: 20 10 80 e5 str r1, [r0, #0x20] 13280: 08 00 80 e2 add r0, r0, #8 13284: 08 d0 90 e5 ldr sp, [r0, #0x8] 13288: 04 70 90 e5 ldr r7, [r0, #0x4] 1328c: 00 70 90 e5 ldr r7, [r0] 13290: 00 b0 90 e5 ldr r11, [r0] 13294: 17 ff 2f e1 bx r7 -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50203] New: Incorrect code gen related to std::variant
https://bugs.llvm.org/show_bug.cgi?id=50203 Bug ID: 50203 Summary: Incorrect code gen related to std::variant Product: clang Version: trunk Hardware: PC OS: Linux Status: NEW Severity: enhancement Priority: P Component: CUDA Assignee: unassignedclangb...@nondot.org Reporter: ryan_greenbl...@brown.edu CC: llvm-bugs@lists.llvm.org ``` #include #include #include #include struct Items { bool needed; std::array also_needed; }; struct Value { std::variant item; template constexpr void get_first(F &&f) { return f(*std::get_if<0>(&item)); } }; constexpr Value get_variant() { return {.item = 0u}; } int main() { auto it = thrust::make_counting_iterator(0u); thrust::for_each(thrust::device, it, it + 1, [](auto) { get_variant().get_first( [](const auto &v) { printf("should be zero: %u\n", v); }); }); } ``` When built with `clang++ -O0 --cuda-gpu-arch=sm_75 --cuda-path=/opt/cuda -std=c++17 -pthread -lcudart_static -ldl -lrt -L/opt/cuda/lib64` (modify path as needed), this program prints out (seemingly) random values instead of always printing zero. This only happens when building with O0. I tried reducing the test case further, but I was unable to do so (launching the kernel without using thrust seems to remove the issue). -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] Issue 33914 in oss-fuzz: llvm:llvm-opt-fuzzer--x86_64-loop_vectorize: Abrt in llvm::LoopVectorizePass::processLoop
Status: New Owner: CC: k...@google.com, masc...@google.com, jdevl...@apple.com, igm...@gmail.com, d...@google.com, mit...@google.com, bigch...@gmail.com, eney...@google.com, llvm-...@lists.llvm.org, j...@chromium.org, v...@apple.com, mitch...@outlook.com, xpl...@gmail.com, akils...@apple.com Labels: ClusterFuzz Stability-Memory-AddressSanitizer Reproducible OS-Linux Proj-llvm Engine-honggfuzz Reported-2021-05-03 Type: Bug New issue 33914 by ClusterFuzz-External: llvm:llvm-opt-fuzzer--x86_64-loop_vectorize: Abrt in llvm::LoopVectorizePass::processLoop https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33914 Detailed Report: https://oss-fuzz.com/testcase?key=5025814782541824 Project: llvm Fuzzing Engine: honggfuzz Fuzz Target: llvm-opt-fuzzer--x86_64-loop_vectorize Job Type: honggfuzz_asan_llvm Platform Id: linux Crash Type: Abrt Crash Address: 0x053900027ee2 Crash State: llvm::LoopVectorizePass::processLoop llvm::LoopVectorizePass::runImpl llvm::LoopVectorizePass::run Sanitizer: address (ASAN) Regressed: https://oss-fuzz.com/revisions?job=honggfuzz_asan_llvm&range=202005181708:202005190249 Reproducer Testcase: https://oss-fuzz.com/download?testcase_id=5025814782541824 Issue filed automatically. See https://google.github.io/oss-fuzz/advanced-topics/reproducing for instructions to reproduce this bug locally. When you fix this bug, please * mention the fix revision(s). * state whether the bug was a short-lived regression or an old bug in any stable releases. * add any other useful information. This information can help downstream consumers. If you need to contact the OSS-Fuzz team with a question, concern, or any other feedback, please file an issue at https://github.com/google/oss-fuzz/issues. Comments on individual Monorail issues are not monitored. -- You received this message because: 1. You were specifically CC'd on the issue You may adjust your notification preferences at: https://bugs.chromium.org/hosting/settings Reply to this email to add a comment.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50204] New: libomptarget :: offloading/dynamic_module_load.c failing
https://bugs.llvm.org/show_bug.cgi?id=50204 Bug ID: 50204 Summary: libomptarget :: offloading/dynamic_module_load.c failing Product: OpenMP Version: unspecified Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Runtime Library Assignee: unassignedb...@nondot.org Reporter: bryan...@gmail.com CC: llvm-bugs@lists.llvm.org The test offloading/dynamic_module_load.c is a no-op if none of the offloading plugins is built. However, when I build LLVM 12 with OpenMP enabled, on a Ubuntu 20.04 system with libelf and libffi headers, the offloading plugins are built, and the test fails with a C++ exception. The CMake command I am using is: cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_C_COMPILER=gcc \ -DCMAKE_CXX_COMPILER=g++ \ -DLLVM_ENABLE_PROJECTS="clang;openmp" \ -DLLVM_ENABLE_ASSERTIONS=on \ -DLLVM_OPTIMIZED_TABLEGEN=on \ -DLLVM_TARGETS_TO_BUILD="X86" \ ../llvm The relevant lines of CMake output are: -- Found LIBOMPTARGET_DEP_LIBELF: /usr/lib/x86_64-linux-gnu/libelf.so -- Found LIBOMPTARGET_DEP_LIBFFI: /usr/lib/x86_64-linux-gnu/libffi.so -- Could NOT find LIBOMPTARGET_DEP_CUDA_DRIVER (missing: LIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES) -- Could NOT find LIBOMPTARGET_DEP_VEO (missing: LIBOMPTARGET_DEP_VEO_LIBRARIES LIBOMPTARGET_DEP_VEOSINFO_LIBRARIES LIBOMPTARGET_DEP_VEO_INCLUDE_DIRS) -- LIBOMPTARGET: Building offloading runtime library libomptarget. -- LIBOMPTARGET: Not building aarch64 offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building AMDGPU plugin: hsa-runtime64 not found -- LIBOMPTARGET: Building CUDA offloading plugin. -- LIBOMPTARGET: Building CUDA plugin for dlopened libcuda -- LIBOMPTARGET: Disabling tests using CUDA plugin as cuda may not be available -- LIBOMPTARGET: Not building PPC64 offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building PPC64le offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building nec-aurora plugin: libveo or libveosinfo not found. -- LIBOMPTARGET: Building x86_64 offloading plugin. -- LIBOMPTARGET: Not building NVPTX deviceRTL by default on CUDA free system. And the test fails like so: $ env LD_LIBRARY_PATH=lib:projects/openmp/libomptarget LIBOMPTARGET_DEBUG=1 \ projects/openmp/libomptarget/test/offloading/Output/dynamic_module_load.c.tmp-x86_64-pc-linux-gnu \ projects/openmp/libomptarget/test/offloading/Output/dynamic_module_load.c.tmp.so Libomptarget --> Init target library! Libomptarget --> Loading RTLs... Libomptarget --> Loading library 'libomptarget.rtl.ppc64.so'... Libomptarget --> Unable to load library 'libomptarget.rtl.ppc64.so': libomptarget.rtl.ppc64.so: cannot open shared object file: No such file or directory! Libomptarget --> Loading library 'libomptarget.rtl.x86_64.so'... Libomptarget --> Successfully loaded library 'libomptarget.rtl.x86_64.so'! Libomptarget --> Registering RTL libomptarget.rtl.x86_64.so supporting 4 devices! Libomptarget --> Loading library 'libomptarget.rtl.cuda.so'... terminate called after throwing an instance of 'std::system_error' what(): Unknown error -1 Aborted (core dumped) -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[llvm-bugs] [Bug 50204] libomptarget :: offloading/dynamic_module_load.c failing
https://bugs.llvm.org/show_bug.cgi?id=50204 Bryan Chan changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #2 from Bryan Chan --- This is already fixed in trunk by D93727. Sorry for the noise. -- You are receiving this mail because: You are on the CC list for the bug.___ llvm-bugs mailing list llvm-bugs@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs