- Jan 19, 2021
-
-
Siva Chandra Reddy authored
-
Lang Hames authored
OrcShared is the correct home for this header since Orc was split in 1d0676b5. (It should have been moved in that commit, but was overlooked).
-
Richard Smith authored
to dependent declarations. Treat an id-expression that names a local variable in a templated function as being instantiation-dependent. This addresses a language defect whereby a reference to a dependent declaration can be formed without any construct being value-dependent. Fixing that through value-dependence turns out to be problematic, so instead this patch takes the approach (proposed on the core reflector) of allowing the use of pointers or references to (but not values of) dependent declarations inside value-dependent expressions, and instead treating template arguments as dependent if they evaluate to a constant involving such dependent declarations. This ends up affecting a bunch of OpenMP tests, due to OpenMP imprecisely handling instantiation-dependent constructs, bailing out early instead of processing dependent constructs to the extent possible when handling the template. Previously committed as 8c1f2d15, and reverted because a dependency commit was reverted.
-
Richard Smith authored
the nested-name-specifier when determining whether a qualified type is instantiation-dependent. Previously reverted in 25a02c3d due to causing us to reject some code. It turns out that the rejected code was ill-formed (no diagnostic required).
-
Richard Smith authored
if E is merely instantiation-dependent. Previously reverted in 34e72a14; re-committed with a fix to an issue that caused name mangling to assert.
-
Luo, Yuanke authored
Add nounwind attribute to avoid generating cfi instructions. Also make global buffer 64 bytes align in lit test case. Differential Revision: https://reviews.llvm.org/D94910
-
Nemanja Ivanovic authored
As of 8dacca94, we sign extend the atomic loaded operand for signed subword comparisons. However, the assumption that the other operand is correctly sign extended doesn't always hold. This patch sign extends the other operand if it needs to be sign extended. This is a second fix for https://bugs.llvm.org/show_bug.cgi?id=30451 Differential revision: https://reviews.llvm.org/D94058
-
Richard Smith authored
The C++ standard wording doesn't appear to properly handle the case where a class inherits a default constructor from a base class. Various properties of classes are defined in terms of the corresponding property of the default constructor, and in this case, the class does not have a default constructor despite being default-constructible, which the wording doesn't handle properly. This change implements a tentative fix for these problems, which has also been proposed to the C++ committee: if a class would inherit a default constructor, and does not explicitly declare one, then one is implicitly declared.
-
Luo, Yuanke authored
This is a additional bug fix for c5be0e0c. The distance for the spill instructions is wrong in previous patch. Differential Revision: https://reviews.llvm.org/D94772
-
Chen Zheng authored
This reverts commit 3bdf4507. Post commit comments need to be addressed first.
-
Juneyoung Lee authored
-
Juneyoung Lee authored
This patch adds `A & (A && B)` -> `A && B` (similarly for or + logical or) Also, this patch adds `~(select C, (icmp pred X, Y), const)` -> `select C, (icmp pred' X, Y), ~const`. Alive2 proof: merge_and: https://alive2.llvm.org/ce/z/teMR97 merge_or: https://alive2.llvm.org/ce/z/b4yZUp xor_and: https://alive2.llvm.org/ce/z/_-TXHi xor_or: https://alive2.llvm.org/ce/z/2uYx_a Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D94861
-
Arthur O'Dwyer authored
Somehow commit 1f125015 added the right code but with the wrong whitespace.
-
Kelvin Li authored
-
Juneyoung Lee authored
This patch teaches SimplifyCFG::SimplifyBranchOnICmpChain to understand select form of (x == C1 || x == C2 || ...) / (x != C1 && x != C2 && ...) and optimize them into switch if possible. D93065 has more context about the transition, including links to the list of optimizations being updated. Differential Revision: https://reviews.llvm.org/D93943
-
Kazu Hirata authored
The code here is checking to see if two sets are identical. OtherBlocksSet should point to OtherL->getBlocksSet() instead. Differential Revision: https://reviews.llvm.org/D94926
-
Sanjay Patel authored
-
Louis Dionne authored
The implementation had a lot of boilerplate and was more complicated than necessary. This NFC refactoring introduces a few macros to reduce code duplication, and uses a consistent style and formatting for the whole file. Differential Revision: https://reviews.llvm.org/D94544
-
Sanjay Patel authored
After much refactoring over the last 2 weeks to the reduction matching code, I think this change is finally ready. We effectively broke fmax/fmin vector reduction optimization when we started canonicalizing to intrinsics in instcombine, so this should restore that functionality for SLP. There are still FMF problems here as noted in the code comments, but we should be avoiding miscompiles on those for fmax/fmin by restricting to full 'fast' ops (negative tests are included). Fixing FMF propagation is a planned follow-up. Differential Revision: https://reviews.llvm.org/D94913
-
Craig Topper authored
InstAliases don't need scheduling information so I'm not sure what these lines were even doing. Especially since the records don't have names.
-
Nikita Popov authored
-
AndreyChurbanov authored
The test fails if memkind library is accessible.
-
Stella Laurenzo authored
* We had let the documentation get stale and catching it up prior to proposing changes.
-
Wim Leflere authored
I've been playing a bit with the `generate_feature_test_macro_components.py` script and replaced some hardcoded values with extra code generation (generate ALL the things). The output is the same and it makes updating the script less work for the coming 25 C++ standards (until 2 digit number overflow). Feel free to 'veto' if you think it's overkill. Differential Revision: https://reviews.llvm.org/D94530
-
Stella Laurenzo authored
* Development setup recommendations. * Test updates to match what we actually do. * Update cmake variable `PYTHON_EXECUTABLE` -> `Python3_EXECUTABLE` to match the upgrade to python3 repo wide.
-
Louis Dionne authored
Several subprojects have targets that do the same thing, and they all follow the same naming convention: llvm-test-depends, clang-test-depends, lld-test-depends, etc. This makes libc++ consistent with other LLVM projects. Thanks to Duncan Exon Smith for noticing and suggesting the change. Differential Revision: https://reviews.llvm.org/D94499
-
Craig Topper authored
Recommit "[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results." This recommits 2c51bef7. I've fixed the broken check line from when I renamed the test function. Original commit message: This builds on D94142 where scalable vectors are allowed in structs. I did have to fix one scalable vector issue in the vector type creation for these intrinsics where we used getVectorNumElements instead of ElementCount.
-
Craig Topper authored
Revert "[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results." This reverts commit 2c51bef7. I seem to have messed up the check lines in the test.
-
Craig Topper authored
[RISCV] Add a test of vector sadd.overflow to demonstrate intrinsics with multiple scalable vector results. This builds on D94142 where scalable vectors are allowed in structs. I did have to fix one scalable vector issue in the vector type creation for these intrinsics where we used getVectorNumElements instead of ElementCount. Differential Revision: https://reviews.llvm.org/D94149
-
Adam Czachorowski authored
The check only runs in debug mode during serialization, but assert()-fail on: struct S { const int& x = 7; }; in C++ mode. Differential Revision: https://reviews.llvm.org/D94804 -
Kazu Hirata authored
-
Kazu Hirata authored
This patch adds the default value of 1 to drop_begin. In the llvm codebase, 70% of calls to drop_begin have 1 as the second argument. The interface similar to with std::next should improve readability. This patch converts a couple of calls to drop_begin as examples. Differential Revision: https://reviews.llvm.org/D94858
-
Kazu Hirata authored
-
Raphael Isemann authored
sphinx processes text in backticks depending on what 'role' it has (e.g., `:code:\`blub\`` -> role is `code`). If no role is provided, the default role is taken which is right now using the default value of `content`. `content` only really makes the text cursive which isn't really useful for anything right now. Sphinx recommends using the `any` role by default [1] as that turns text in backticks without an explicit roles into some kind of smart reference. If we did this in LLDB, then we could just reference SB API classes by doing `\`SBValue\`` instead of typing out the rather verbose `:py:class:`/`:py:func:`/... role before each reference. This would be especially nice when writing the SB API docs itself as we constantly have to reference other classes. [1] https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-any Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D94899
-
Florian Hahn authored
This patch reverts back to Intrinsic for the instructions for the transactional memory extension, so nosync is not included.
-
Adhemerval Zanella authored
The commit 18aa0be3 changed the default GotBaseSymInGotPlt to true for AArch64. This is different than binutils, where _GLOBAL_OFFSET_TABLE_ points at the start or .got. It seems to not intefere with current relocations used by LLVM. However as indicated by PR#40357 [1] gcc generates R_AARCH64_LD64_GOTPAGE_LO15 for -pie (in fact it also generated the relocation for -fpic). This change is requires to correctly handle R_AARCH64_LD64_GOTPAGE_LO15 by lld from objects generated by gcc. [1] https://bugs.llvm.org/show_bug.cgi?id=40357
-
Florian Hahn authored
DefaultAttrIntrinsics was introduced to add very common attributes to a large set of intrinsics. Currently the added attributes include: nofree nosync nounwind willreturn I think those should hold for most AArch64 target intrinsics, but there are too many to check manually. This patch makes most AArch64 target intrinsics DefaultAttrsIntrinsics. Some notable exceptions I think are exclusive loads and stores as well as the memory barrier intrinsics, for which nosync does not apply I think. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D94687 -
Michael Munday authored
Add Zbt (ternary) extension code generation to the select lowering tests since it can have a significant impact on how select is lowered. While we are here make the neg-abs commands more consistent with the other tests. Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D94798
-
Sanjay Patel authored
-