- Apr 14, 2020
-
-
Sjoerd Meijer authored
D77635 added support to recognise primary induction variables for counting-down loops. This allows us to fold the scalar tail loop into the main vector body, which we need for MVE tail-predication. This adds some ARM tail-folding test cases that we want to support. This test was extracted from D76838, which implemented a different approach to reverse and thus find a primary induction variable.
-
Sander de Smalen authored
Summary: This issue was introduced when reworking D75861. The bug isn't actually hit with current unit tests because the contiguous loads/stores infer the EltType and the MemEltType from the pointer and result, rather than using the flags. But it will be needed for other intrinsics, such as gather/scatter. Reviewers: SjoerdMeijer, Andrzej Reviewed By: SjoerdMeijer Subscribers: andwar, tschuett, cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76617
-
Sander de Smalen authored
This adds builtins for all contiguous loads/stores, including non-temporal, first-faulting and non-faulting. Reviewers: efriedma, SjoerdMeijer Reviewed By: SjoerdMeijer Tags: #clang Differential Revision: https://reviews.llvm.org/D76238
-
LLVM GN Syncbot authored
-
Pierre-vh authored
The pass was incorrectly reverting back to a "T" when something wrote to VPR inside a "E" block. This is not the correct behaviour, the predicate should stay the same. Differential Revision: https://reviews.llvm.org/D77798
-
Pierre-vh authored
Differential Revision: https://reviews.llvm.org/D76709
-
Sam McCall authored
Summary: We want to be sure they don't cause AST rebuilds or evict items from the cache. D77847 is going to start sending spurious no-op changes (in case the preamble was invalidated), this is cheap enough but we shouldn't regress that in future. Reviewers: kadircet Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, jfb, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78048
-
Daniel Stone authored
This is required for using the Ninja backend on Windows, as it passes commands directly to CreateProcess, and does not allow the shell to interpret them: https://ninja-build.org/manual.html#ref_rule_command Using the Visual Studio backend is not possible as attempting to create a static library target comprised entirely of novel languages not known to the Visual Studio backend built in to CMake's C++ source will generate nothing at all. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77165
-
Daniel Stone authored
We don't want the regular linker flags for these invocations, since we're not compiling to the target machine anyway. This fixes things like '/machine:x64' being unknown when invoked under Windows. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77164
-
Daniel Stone authored
When providing a fake compiler, libclc currently uses 'true' which does not exist on Windows. Use echo instead as the no-op. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77163
-
Daniel Stone authored
CMake requires library lists on Windows to be split by semi-colons, rather than the spaces we get from llvm-config. Fix this by a substitution on Windows. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77162
-
Pavel Labath authored
Summary: Without that we could be silently reading zeroes, as that's the default DataExtractor behavior. The entire parse would still most likely fail, but it would do that with a seemingly unrelated/nonsensical error message. Reviewers: dblaikie, probinson, jhenderson Subscribers: hiraditya, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77554
-
Max Kazantsev authored
This patch fixes 2 related bugs in ADCE: - `performDeadCodeElimination` does not report changes if it did ONLY CFG changes (affects both old and new pass managers); - When control flow removal is enabled, new pass manager does not drop CFG analyses. Both can lead to incorrect loop info after ADCE that does only CFG changes. Differential Revision: https://reviews.llvm.org/D78103 Reviewed By: Denis Antrushin
-
Simon Pilgrim authored
The (supposedly superfluous) LLVMFuzzerInitialize function was removed when this file was copied from clang-fuzzer, but this is causing link errors on some targets. @morehouse confirmed on D69171 that it was OK to add back.
-
Louis Dionne authored
Instead of spamming a bunch of available features that are not actually used anywhere, only set those that are actually used in the test suite. In the future, this should probably be based on the target triple only, with the ability to have wildcards in the triple.
-
Louis Dionne authored
Remove mentions of the ValgrindExecutor, which doesn't exist. That executor is literally nowhere in the code base, so this is dead code as far as we're concerned. Also, inline a one-liner function that was called exactly once.
-
Simon Pilgrim authored
This is a currently just a wrapper to the base type, I'll be adding ISD::BUILD_VECTOR costs in a future patch.
-
Med Ismail Bennani authored
Summary: [lldb/test] Fix TestLoadUnload failure introduced in e0dbd025 It seems that `env_cmd_string` is declared and used few lines under this self.runCmd expression. I guess this is some left-over from an older version. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com> Reviewers: labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D78094
-
Max Kazantsev authored
ADCE messes up with loop info (proved for new pass manager only) by making some loop blocks unreachable, without making proper updates to the loop.
-
Aaron Puchert authored
Reviewed By: fhahn, echristo Differential Revision: https://reviews.llvm.org/D78061
-
Muhammad Omair Javaid authored
test_step_over_load_with_svr4 and test_step_over_load now pass on aarch64 linux. Fixed by change-id: e0dbd025 Differential Revision: https://reviews.llvm.org/D77662
-
Georgii Rymar authored
It can be used to avoid passing the begin and end of a range. This makes the code shorter and it is consistent with another wrappers we already have. Differential revision: https://reviews.llvm.org/D78016
-
Tres Popp authored
Summary: This operation occurs during collapseParallelLoops, so we constant fold them also to allow more situations of determining a loop invariant upper bound when lowering to the GPU dialect from the Loop dialect. Differential Revision: https://reviews.llvm.org/D77723
-
Haojian Wu authored
Summary: This patch would cause clang emit more diagnostics, but it is much better than https://reviews.llvm.org/D76831 ```cpp struct A { A(int); ~A() = delete; }; void k() { A a; } ``` before the patch: /tmp/t3.cpp:24:5: error: no matching constructor for initialization of 'A' A a; ^ /tmp/t3.cpp:20:3: note: candidate constructor not viable: requires 1 argument, but 0 were provided A(int); ^ /tmp/t3.cpp:19:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided struct A { After the patch: /tmp/t3.cpp:24:5: error: no matching constructor for initialization of 'A' A a; ^ /tmp/t3.cpp:20:3: note: candidate constructor not viable: requires 1 argument, but 0 were provided A(int); ^ /tmp/t3.cpp:19:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided struct A { ^ /tmp/t3.cpp:24:5: err...
-
Florian Hahn authored
This includes a fix reported with simplifications in the presence of NaN. This reverts the revert commit 06408451.
-
Tyker authored
Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77403
-
Tyker authored
Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77404
-
Tyker authored
Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: Prazek, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77406
-
Tyker authored
Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, asbirlea, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77407
-
Tyker authored
Summary: prevent GVN from removing assume bundles make GVN preserve information from removed instructions Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77405
-
Balázs Kéri authored
Summary: Function `fseek` is now evaluated with setting error return value and error flags. Reviewers: Szelethus, NoQ, xazax.hun, rnkovacs, dcoughlin, baloghadamsoftware, martong Reviewed By: Szelethus Subscribers: ASDenysPetrov, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75851
-
Georgii Rymar authored
There was no ":" after "SEC", hence the check was disabled. Found with the use of D78024.
-
LLVM GN Syncbot authored
-
Kerry McLaughlin authored
Summary: Creates the SVEIntrinsicOpts pass. In this patch, the pass tries to remove unnecessary reinterpret intrinsics which convert to and from svbool_t (llvm.aarch64.sve.convert.[to|from].svbool) For example, the reinterprets below are redundant: %1 = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> %a) %2 = call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> %1) The pass also looks for ptest intrinsics and phi instructions where the operands are being needlessly converted to and from svbool_t. Reviewers: sdesmalen, andwar, efriedma, cameron.mcinally, c-rhodes, rengolin Reviewed By: efriedma Subscribers: mgorny, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76078
-
Peter Smith authored
The _GLOBAL_OFFSET_TABLE_ in SysVr4 ELF is conventionally the base of the .got or .got.prel sections. Expressions such as _GLOBAL_OFFSET_TABLE_ - (.L1 +8) are used in assembler code to calculate offsets into the .got. At present MC outputs a R_ARM_REL32 with respect to the _GLOBAL_OFFSET_TABLE_ symbol, whereas gas outputs a R_ARM_BASE_PREL relocation with respect to the _GLOBAL_OFFSET_TABLE_ symbol. While both are correct the R_ARM_REL32 depends on the value of the _GLOBAL_OFFSET_TABLE_ symbol, wheras te R_ARM_BASE_PREL relocation is idependent of the symbol. The R_ARM_BASE_PREL is therefore slightly more robust to linker's that may not follow the conventional placement of _GLOBAL_OFFSET_TABLE_; for example LLD for some time defined _GLOBAL_OFFSET_TABLE_ to 0. Differential Revision: https://reviews.llvm.org/D46319
-
Pavel Labath authored
Summary: This patch introduces a header "dylib.h" which can be used in tests to handle shared libraries semi-portably. The shared library APIs on windows and posix systems look very different, but their underlying functionality is relatively similar, so the mapping is not difficult. It also introduces two new macros to wrap the functinality necessary to export/import function across the dll boundary on windows. Previously we had the LLDB_TEST_API macro for this purpose, which automagically changed meaning depending on whether we were building the shared library or the executable. While convenient for simple cases, this approach was not sufficient for the more complicated setups where one deals with multiple shared libraries. Lastly it rewrites TestLoadUnload, to make use of the new APIs. The trickiest aspect there is the handling of DYLD_LIBRARY_PATH on macos -- previously setting this variable was not needed as the test used @executable_path-relative dlopens, but the new generic api does not support that. Other systems do not support such dlopens either so the test already contained support for setting the appropriate path variable, and this patch just makes that logic more generic. In doesn't seem that the purpose of this test was to exercise @executable_path imports, so this should not be a problem. These changes are sufficient to make some of the TestLoadUnload tests pass on windows. Two other tests will start to pass once D77287 lands. Reviewers: amccarth, jingham, JDevlieghere, compnerd Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77662
-
Pratyai Mazumder authored
[SanitizerCoverage] The section name for inline-bool-flag was too long for darwin builds, so shortening it. Summary: Following up on the comments on D77638. Not undoing rGd6525eff here at the moment, since I don't know how to test mac builds. Please let me know if I should include that here too. Reviewers: vitalybuka Reviewed By: vitalybuka Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77889
-
Balázs Kéri authored
Summary: Check the size constraints for every (variable) dimension of the array. Try to compute array size by multiplying size for every dimension. Reviewers: Szelethus, martong, baloghadamsoftware, gamesh411 Reviewed By: Szelethus, martong Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77305
-
Alex Brachet authored
Summary: This patch adds a very basic `FILE` type and basic `fwrite`. It also removes `snprintf` from `StdIO`'s function spec because `VarArgType` was causing the generation to fail. Reviewers: sivachandra, PaulkaToast Reviewed By: sivachandra Subscribers: mgorny, MaskRay, tschuett, libc-commits Differential Revision: https://reviews.llvm.org/D77626
-
Alex Brachet authored
Summary: Create self contained functional header which has a type similar to `std::function` Reviewers: sivachandra, PaulkaToast Reviewed By: sivachandra Subscribers: mgorny, tschuett, libc-commits Differential Revision: https://reviews.llvm.org/D77948
-