- Jul 23, 2020
-
-
Shinji Okumura authored
Summary: This is the next patch of [[ https://reviews.llvm.org/D76210 | D76210 ]]. This patch made a map in `InformationCache` for caching results. Reviewers: jdoerfert, sstefan1, uenoku, homerdin, baziotis Reviewed By: jdoerfert Subscribers: hiraditya, uenoku, kuter, bbn, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83246
-
Konstantin Schwarz authored
Summary: We do this already for output operands, but missed it for (non-tied) input operands. Reviewers: arsenm, Petar.Avramovic Reviewed By: arsenm Subscribers: jvesely, wdng, nhaehnle, rovka, hiraditya, llvm-commits, kerbowa Tags: #llvm Differential Revision: https://reviews.llvm.org/D83763
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Med Ismail Bennani authored
This patch fixes a test failure in TestHistoryRecall caused by the move of the `history` subcommand to the `session` command. This change was introduced by commit 85fbb08f . Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Simon Pilgrim authored
-
Med Ismail Bennani authored
This patch moves the `history` subcommand from the `command` to `session` command. I think it makes more sense to have it there because as the `command` usage suggests, it should be used to manage custom LLDB commands. However, `history` is essentially tied to a debugging session and holds all the commands (not specifically custom ones). This also makes it more discoverable by adding an alias for it (mimicking the shell builtin). Differential Revision: https://reviews.llvm.org/D84307 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Simon Pilgrim authored
-
Florian Hahn authored
On systems where size() doesn't return unsigned long, this leads to an overloading mismatch. Convert the constant to whatever type is used for Q.size() on the system.
-
Florian Hahn authored
Currently popFromQueueImpl iterates over all candidates to find the best one. While the candidate queue is small, this is not a problem. But it becomes a problem once the queue gets larger. For example, the snippet below takes 330s to compile with llc -O0, but completes in 3s with this patch. define void @test(i4000000* %ptr) { entry: store i4000000 0, i4000000* %ptr, align 4 ret void } This patch limits the number of candidates to check to 1000. This limit ensures that it never triggers for test-suite/SPEC2000/SPEC2006 on X86 and AArch64 with -O3, while still drastically limiting the compile-time in case of very large queues. It would be even better to use a binary heap to manage to queue (D83335), but some heuristics change the score of a node in the queue after another node has been scheduled. I plan to address this for backends that use the MachineScheduler in the future, but that requires a more careful evaluation. In the meantime, the limit should help users impacted by this issue. The patch includes a slightly smaller version of the motivating example as test case, to guard against the issue. Reviewers: efriedma, paquette, niravd Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D84328 -
Jakub Lichman authored
Right now there is a branching for 2 functions based on whether target map has symbols or not. In this commit these functions are merged into one. Furthermore, emitting does not require inverse and map applying as it computes the correct Range in a single step and thus reduces unnecessary overhead. Differential Revision: https://reviews.llvm.org/D83756
-
Jakub Lichman authored
linalg.conv does not support memrefs with rank smaller than 3 as stated here: https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/nn/convolution However it does not verify it and thus crashes with "LLVM ERROR: out of memory" error for 1D case and "nWin > 0 && "expected at least one window dimension"" assertion for 2D case. This commit adds check for that in the verification method. Differential Revision: https://reviews.llvm.org/D84317
-
Alex Richardson authored
The time= attribute can also be used for the testsuites tag. While this attribute appears to be ignored by Jenkins (https://github.com/jenkinsci/junit-plugin/blob/bab34bcc96154a494f8c371953efe06d45813f67/src/main/java/hudson/tasks/junit/SuiteResult.java#L202), it is still useful if you manually inspect the xml file. Reviewed By: yln Differential Revision: https://reviews.llvm.org/D84230
-
Alex Richardson authored
The lambda being used to check whether locales are supported was always passing the value of alts from the last loop iteration due to the way that python lambda captures work. Fix this by using a default argument capture. To help debug future similar issues I also added a prefix to the config test binary indicating which locale is being tested. I originally found this issue when implementing a new executor that simply collects test binaries in a given directory and was surprised to see many additional executables other than the expected test binaries. I therefore added the locale prefix to the test binaries and noticed that they were all checking for cs_CZ.ISO8859-2. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D84040
-
Georgii Rymar authored
It is used for printing section headers in the GNU style and the implementation can be simplified. Differential revision: https://reviews.llvm.org/D84330
-
Balázs Kéri authored
Summary: Use the built-in functionality BugType::SuppressOnSink instead of a manual solution in StreamChecker. Differential Revision: https://reviews.llvm.org/D83120
-
Sourabh Singh Tomar authored
Test case `test/CodeGen/WebAssembly/stackified-debug.ll` was failing due to malformed DwarfExpression. This failure has been seen in lot of bots, for instance in: http://lab.llvm.org:8011/builders/lld-x86_64-ubuntu-fast/builds/18794 : 'RUN: at line 1' /home/buildbot/as-builder-4/lld-x86_64-ubuntu-fast/build/bin/llc /home/buildbot/as-builder-4/lld-x86_64-ubuntu-fast/build/bin/FileCheck /home/buildbot/as-builder-4/lld-x86_64-ubuntu-fast/llvm-project/llvm/test/CodeGen/WebAssembly/stackified-debug.ll home/buildbot/as-builder-4/lld-x86_64-ubuntu-fast/llvm-project/llvm/test/CodeGen/WebAssembly/stackified-debug.ll:26:10: error: CHECK: expected string not found in input CHECK: .int16 4 # Loc expr size ^ <stdin>:34:2: note: scanning from here .int16 3 # Loc expr size Differential Revision: https://reviews.llvm.org/D83560
-
Jakub Lichman authored
Loop bound inference is right now very limited as it supports only permutation maps and thus it is impossible to implement convolution with linalg.generic as it requires more advanced loop bound inference. This commits solves it for the convolution case. Depends On D83158 Differential Revision: https://reviews.llvm.org/D83191
-
Sourabh Singh Tomar authored
This patch was reverted in 9d2da675 due to assertion failure seen in `test/DebugInfo/Sparc/subreg.ll`. Assertion failure was happening due to malformed/unhandeled DwarfExpression. Differential Revision: https://reviews.llvm.org/D83560
-
Roman Lebedev authored
Summary: If there was a single target to begin with, because a single target can only occupy a single chunk, we couldn't increase granularity. and would immediately give up. Likewise, if we had multiple targets, if by the end we'd end up with a single target, we wouldn't finish reducing it, it would always end up being "interesting" Reviewers: dblaikie, nickdesaulniers, diegotf Reviewed By: dblaikie Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84318
-
Eric Christopher authored
as it breaks bots with due to m_valid being an unused class member except in assert builds. This reverts commit 074b1216.
-
Rainer Orth authored
A last-minute silent change in D84046 <https://reviews.llvm.org/D84046> broke the Solaris buildbots (Solaris/sparcv9 <http://lab.llvm.org:8014/builders/clang-solaris11-sparcv9/builds/6772>, Solaris/amd64 <http://lab.llvm.org:8014/builders/clang-solaris11-amd64/builds/5434>): [2/3679] Building CXX object projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.sparc.dir/sanitizer_posix_libcdep.cpp.o FAILED: projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.sparc.dir/sanitizer_posix_libcdep.cpp.o /opt/llvm-buildbot/bin/c++ -DHAVE_RPC_XDR_H=1 -D_DEBUG -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iprojects/compiler-rt/lib/sanitizer_common -I/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/compiler-rt/lib/sanitizer_common -Iinclude -I/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include -I/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/Support/Solaris -I/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/compiler-rt/lib/sanitizer_common/.. -fPIC -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -std=c++14 -Wno-unused-parameter -O3 -m32 -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-lto -O3 -g -Wno-variadic-macros -Wno-non-virtual-dtor -fno-rtti -Wframe-larger-than=570 -UNDEBUG -std=c++14 -MD -MT projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.sparc.dir/sanitizer_posix_libcdep.cpp.o -MF projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.sparc.dir/sanitizer_posix_libcdep.cpp.o.d -o projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.sparc.dir/sanitizer_posix_libcdep.cpp.o -c /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp:50:16: error: conflicting declaration of C function ‘int madvise(caddr_t, std::size_t, int)’ extern "C" int madvise(caddr_t, size_t, int); ^~~~~~~ In file included from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp:32:0: /usr/include/sys/mman.h:232:12: note: previous declaration ‘int madvise(void*, std::size_t, int)’ extern int madvise(void *, size_t, int); ^~~~~~~ This patch undoes that change. Tested on `amd64-pc-solaris2.11` (Solaris 11.4 and OpenIndiana). Differential Revision: https://reviews.llvm.org/D84388
-
aartbik authored
Replaced the linearized address with the proper LLVM way of defining vector of base + indices in SIMD style. This yields much better code. Some prototype results with microbencmarking sparse matrix x vector with 50% sparsity (about 2-3x faster): LINEARIZED IMPROVED GFLOPS sdot saxpy sdot saxpy 16x16 1.6 1.4 4.4 2.1 32x32 1.7 1.6 5.8 5.9 64x64 1.7 1.7 6.4 6.4 128x128 1.7 1.7 5.9 5.9 256x256 1.6 1.6 6.1 6.0 512x512 1.4 1.4 4.9 4.7 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D84368 -
Serge Pavlov authored
This reapplies commit d4020ef7, reverted in ac0edc55 because it broke build of LLDB. This commit contains appropriate changes for LLDB. The original commit message is below. Documentation on CreateProcessW states that maximal size of command line is 32767 characters including ternimation null character. In the function llvm::sys::commandLineFitsWithinSystemLimits this limit was set to 32768. As a result if command line was exactly 32768 characters long, a response file was not created and CreateProcessW was called with too long command line. Differential Revision: https://reviews.llvm.org/D83772
-
Hiroshi Yamauchi authored
The revert was a misfire. Remove the temporary flag PGSOIRPassOrTestOnly and the guard code which was used for the staged rollout. This is a cleanup (NFC) as it's now false by default. Differential Revision: https://reviews.llvm.org/D84057
-
Sourabh Singh Tomar authored
This reverts commit 6b55a958. Temporal revert due to a failing/assertion in test case in Sparc backend. `test/DebugInfo/Sparc/subreg.ll` Seen in lot of bots, for instance in: `http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/24679`
-
Shilei Tian authored
This reverts commit 9b2832c0.
-
Shilei Tian authored
Summary: In the function `target`, memory deallocation and `target_data_end` is called immediately returning from launching kernel. This might cause a race condition that the corresponding memory is still being used by the kernel and a potential issue that when the kernel starts to execute, its required data have already been deallocated, especially when multiple kernels running concurrently. Since nevertheless, we will block the thread issuing the target offloading at the end of the target, we just move the synchronization ahead a little bit to make sure the correctness. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: yaxunl, guansong, sstefan1, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D84381
-
Xing GUO authored
This patch refactors the range list table to hold both the range list table and the location list table. Reviewed By: jhenderson, labath Differential Revision: https://reviews.llvm.org/D84239
-
Sourabh Singh Tomar authored
Summary: llvm is missing support for DW_OP_implicit_value operation. DW_OP_implicit_value op is indispensable for cases such as optimized out long double variables. For intro refer: DWARFv5 Spec Pg: 40 2.6.1.1.4 Implicit Location Descriptions Consider the following example: ``` int main() { long double ld = 3.14; printf("dummy\n"); ld *= ld; return 0; } ``` when compiled with tunk `clang` as `clang test.c -g -O1` produces following location description of variable `ld`: ``` DW_AT_location (0x00000000: [0x0000000000201691, 0x000000000020169b): DW_OP_constu 0xc8f5c28f5c28f800, DW_OP_stack_value, DW_OP_piece 0x8, DW_OP_constu 0x4000, DW_OP_stack_value, DW_OP_bit_piece 0x10 0x40, DW_OP_stack_value) DW_AT_name ("ld") ``` Here one may notice that this representation is incorrect(DWARF4 stack could only hold integers(and only up to the size of address)). Here the variable size itself is `128` bit. GDB and LLDB confirms this: ``` (gdb) p ld $1 = <invalid float value> (lldb) frame variable ld (long double) ld = <extracting data from value failed> ``` GCC represents/uses DW_OP_implicit_value in these sort of situations. Based on the discussion with Jakub Jelinek regarding GCC's motivation for using this, I concluded that DW_OP_implicit_value is most appropriate in this case. Link: https://gcc.gnu.org/pipermail/gcc/2020-July/233057.html GDB seems happy after this patch:(LLDB doesn't have support for DW_OP_implicit_value) ``` (gdb) p ld p ld $1 = 3.14000000000000012434 ``` Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D83560 -
Fangrui Song authored
A malloc implementation may return a pointer to some allocated space. It is undefined for libclang_rt.profile- to access the object - which actually happens in instrumentTargetValueImpl, where ValueCounters[CounterIndex] may access a ValueProfNode (from another allocated object) and crashes when the code accesses the object referenced by CurVNode->Next.
-
Sourabh Singh Tomar authored
Summary: This patch lower `!OMP TASKYIELD` construct from PFT to OpenMPDialect operations. Construct is lowered with conformance to OpenMP 5.0 spec. Patch is carved out of following merged PR: https://github.com/flang-compiler/f18-llvm-project/pull/297 Reviewed: kiranchandramohan Differential Revision: https://reviews.llvm.org/D84350
-
Valentin Clement authored
Summary: This patch introduce the basic infrastructure to be able to lower OpenACC constructs to the future OpenACC dialect. Reviewers: schweitz, kiranchandramohan, DavidTruby, sscalpone, jdoerfert, ichoyjx Reviewed By: ichoyjx Subscribers: ichoyjx, SouraVX, mgorny, jfb, sstefan1, llvm-commits Tags: #llvm, #flang Differential Revision: https://reviews.llvm.org/D84195
-
Valentin Clement authored
Summary: This patch fix a problem where clause needed to be in the allowed set even they were in the required set. A required clause is allowed obvisouly. This allow to remove the duplicate in OMP.td Reviewers: kiranchandramohan, DavidTruby, richard.barton.arm, jdoerfert, sscalpone, kiranktp, ichoyjx Reviewed By: kiranchandramohan Subscribers: yaxunl, guansong, sstefan1, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84353
-
Hamilton Tobon Mosquera authored
-
peter klausler authored
It turns out that COMPLEX formatted input needs its own runtime APIs so that null values in list-directed input skip the entire COMPLEX datum rather than just a real or imaginary part thereof. Reviewed By: sscalpone Differential Revision: https://reviews.llvm.org/D84370
-
Logan Smith authored
Reapply "Try enabling -Wsuggest-override again, using add_compile_options instead of add_compile_definitions for disabling it in unittests/ directories." add_compile_options is more sensitive to its location in the file than add_definitions--it only takes effect for sources that are added after it. This updated patch ensures that the add_compile_options is done before adding any source files that depend on it. Using add_definitions caused the flag to be passed to rc.exe on Windows and thus broke Windows builds.
-
Craig Topper authored
We deprecated mpx feature in 10.0. I left this feature flag in case someone still had IR files containing the feature in a target-feature attribute. At the time I think I thought it would fail the test if the feature couldn't be found. Further review suggests that at worst it prints a message to stderr about ignoring the feature.
-
Amy Huang authored
Since native PDB reading has been implemented for symbolizing, switch to using the native PDB reader by default, unless LLVM_ENABLE_DIA_SDK is on. Bug: https://bugs.llvm.org/show_bug.cgi?id=41795 Differential Revision: https://reviews.llvm.org/D84286
-
Jonas Devlieghere authored
LLVM_TARGET_ARCH is not exported by LLVM so we can't use it from standalone builds. Default to the architecture in LLVM_HOST_TRIPLE when no LLDB_DEFAULT_TEST_ARCH was specified.
-