- Feb 12, 2020
-
-
Nikita Popov authored
Split out from D73835. I removed some of these before, but missed these ones. They are not part of the ConstantFolder interface and are not going to be used by the IRBuilder.
-
Nikita Popov authored
This is a followup to D73803, which uses the replaceOperand() helper in more places. This should be NFC apart from changes to worklist order. Differential Revision: https://reviews.llvm.org/D73919
-
Peter Collingbourne authored
-
Jonas Paulsson authored
It needs 'tracksRegLiveness: true' to pass the machine verifier.
-
Nikita Popov authored
Fix/workaround for https://bugs.llvm.org/show_bug.cgi?id=44539. As discussed there, this pass makes some overly optimistic assumptions, as it does not have access to actual branch weights. This patch makes the computation of the depth of the optimized cmov more conservative, by assuming a distribution of 75/25 rather than 50/50 and placing the weights to get the more conservative result (larger depth). The fully conservative choice would be std::max(TrueOpDepth, FalseOpDepth), but that would break at least one existing test (which may or may not be an issue in practice). Differential Revision: https://reviews.llvm.org/D74155
-
Louis Dionne authored
The Standard requires the value_type of the vector to be Cpp17CopyInsertable in order for copy-construction to be enabled: http://eel.is/c++draft/container.requirements#tab:container.req rdar://problem/56674564 Differential Revision: https://reviews.llvm.org/D74251
-
James Henderson authored
-
- Feb 11, 2020
-
-
Eric Astor authored
Summary: Add a new method (tryParseRegister) that attempts to parse a register specification. MASM allows the use of IFDEF <register>, as well as IFDEF <symbol>. To accommodate this, we make it possible to check whether a register specification can be parsed at the current location, without failing the entire parse if it can't. Reviewers: thakis Reviewed By: thakis Tags: #llvm Differential Revision: https://reviews.llvm.org/D73486
-
Jonas Paulsson authored
When more than one SelectPseudo instruction is handled a new MBB is returned. This must not be done if that would result in leaving an undhandled isel pseudo behind in the original MBB. Fixes https://bugs.llvm.org/show_bug.cgi?id=44849. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D74352
-
Justin Lebar authored
Summary: Simplifies the C++11-style "-> decltype(...)" return-type deduction. Note that you have to be careful about whether the function return type is `auto` or `decltype(auto)`. The difference is that bare `auto` strips const and reference, just like lambda return type deduction. In some cases that's what we want (or more likely, we know that the return type is a value type), but whenever we're wrapping a templated function which might return a reference, we need to be sure that the return type is decltype(auto). No functional change. Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74383
-
Justin Lebar authored
Summary: This used std::enable_if without referencing ::type. Changed to use std::enable_if_t. Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74381
-
Florian Hahn authored
This patch removes forcedconstant to simplify things for the move to ValueLattice, which includes constant ranges, but no forced constants. This patch removes forcedconstant and changes ResolvedUndefsIn to mark instructions with unknown operands as overdefined. This means we do not do simplifications based on undef directly in SCCP any longer, but this seems to hardly come up in practice (see stats below), presumably because InstCombine & others take care of most of the relevant folds already. It is still beneficial to keep ResolvedUndefIn, as it allows us delaying going to overdefined until we propagated all known information. I also built MultiSource, SPEC2000 and SPEC2006 and compared sccp.IPNumInstRemoved and sccp.NumInstRemoved. It looks like the impact is quite low: Tests: 244 Same hash: 238 (filtered out) Remaining: 6 Metric: sccp.IPNumInstRemoved Program base patch diff test-suite...arks/VersaBench/dbms/dbms.test 4.00 3.00 -25.0% test-suite...TimberWolfMC/timberwolfmc.test 38.00 34.00 -10.5% test-suite...006/453.povray/453.povray.test 158.00 155.00 -1.9% test-suite.../CINT2000/176.gcc/176.gcc.test 668.00 668.00 0.0% test-suite.../CINT2006/403.gcc/403.gcc.test 1209.00 1209.00 0.0% test-suite...arks/mafft/pairlocalalign.test 76.00 76.00 0.0% Tests: 244 Same hash: 238 (filtered out) Remaining: 6 Metric: sccp.NumInstRemoved Program base patch diff test-suite...arks/mafft/pairlocalalign.test 185.00 175.00 -5.4% test-suite.../CINT2006/403.gcc/403.gcc.test 2059.00 2056.00 -0.1% test-suite.../CINT2000/176.gcc/176.gcc.test 2358.00 2357.00 -0.0% test-suite...006/453.povray/453.povray.test 317.00 317.00 0.0% test-suite...TimberWolfMC/timberwolfmc.test 12.00 12.00 0.0% Reviewers: davide, efriedma, mssimpso Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D61314
-
Sjoerd Meijer authored
A small IR change in calculating the active lanes resulted in no longer recognising tail-predication. Now recognise both an 'add' and 'or' in the expression that calculates the active lanes. Differential Revision: https://reviews.llvm.org/D74394
-
Alexandre Ganea authored
[Clang][Driver] After default -fintegrated-cc1, make llvm::report_fatal_error() generate preprocessed source + reproducer.sh again. Added a test for #pragma clang __debug llvm_fatal_error to test for the original issue. Added llvm::sys::Process::Exit() and replaced ::exit() in places where it was appropriate. This new function would call the current CrashRecoveryContext if one is running on the same thread; or call ::exit() otherwise. Fixes PR44705. Differential Revision: https://reviews.llvm.org/D73742
-
Alexey Bataev authored
Added restrictions for atomic directive. 1. If atomic-clause is read then memory-order-clause must not be acq_rel or release. 2. If atomic-clause is write then memory-order-clause must not be acq_rel or acquire. 3. If atomic-clause is update or not present then memory-order-clause must not be acq_rel or acquire.
-
Joonsoo Jeon authored
Defines a tablegen class RankedIntElementsAttr. This is an integer version of RankedFloatElementsAttr. Differential Revision: https://reviews.llvm.org/D73764
-
Richard Smith authored
The C++ rules briefly allowed this, but the rule changed nearly 10 years ago and we never updated our implementation to match. However, we've warned on this by default for a long time, and no other compiler accepts (even as an extension).
-
Richard Smith authored
This is being implemented somewhat speculatively, to match GCC's behavior.
-
Andrew Wei authored
ADDI(C.ADDI) may achieve better code size than XORI, since XORI has no C extension. This patch transforms two patterns and gets almost equivalent results. Differential Revision: https://reviews.llvm.org/D71774
-
Kadir Cetinkaya authored
This reverts commit d0c4d4fe. Revert "[DSE,MSSA] Move more passing test cases from todo to simple.ll." This reverts commit 02266e64. Revert "[DSE,MSSA] Adjust mda-with-dbg-values.ll to MSSA backed DSE." This reverts commit 74f03e4f.
-
Sam McCall authored
Summary: Informative only, useful for positioning UI, interacting with other sources of completion etc. As requested by an embedder of clangd. Reviewers: usaxena95 Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74305
-
Stephan Herhut authored
Summary: The lowering to NVVM and ROCm handles tanh operations differently by mapping them to NVVM/ROCm specific intrinsics. This conflicts with the lowering to LLVM, which uses the default llvm intrinsic. This change declares the LLVM intrinsics to be illegal, hence disallowing the correspondign rewrite. Differential Revision: https://reviews.llvm.org/D74389
-
Jan Kratochvil authored
ObjectFileELF::GetSectionIndexByType declaration without definition was added by commit 17220c18.
-
Louis Dionne authored
The system libc++.dylib doesn't support the debug mode, so this test can't be supported. As a fly-by fix, we also specify more stringently that only the macOS system library is unsupported in other tests using the debug mode.
-
Simon Pilgrim authored
-
Sanjay Patel authored
The variable was added to the initial commit via copy/paste of existing code, but it wasn't actually used in the code. We can add it back with the proper usage if/when that is needed.
-
Raphael Isemann authored
We now have a virtual-functions test and a multiple-inheritance test that are testing the same functionality (and more) using the newer test functions which we have in LLDB these days. These tests should also be less flaky and less dependent on other unrelated LLDB functionality.
-
Alex Zinenko authored
-
Louis Dionne authored
-
Raphael Isemann authored
Let's just pass in a StringRef and save the strlen call when rebuilding the StringRef parameter.
-
Feng Liu authored
Differential Revision: https://reviews.llvm.org/D71851
-
Raphael Isemann authored
-
Raphael Isemann authored
-
Pavel Labath authored
Summary: The only use of this class was to implement the SharedCluster of ValueObjects. However, the same functionality can be implemented using a regular std::shared_ptr, and its little-known "sub-object pointer" feature, where the pointer can point to one thing, but actually delete something else when it goes out of scope. This patch reimplements SharedCluster using this feature -- SharedClusterPointer::GetObject now returns a std::shared_pointer which points to the ValueObject, but actually owns the whole cluster. The only change I needed to make here is that now the SharedCluster object needs to be created before the root ValueObject. This means that all private ValueObject constructors get a ClusterManager argument, and their static Create functions do the create-a-manager-and-pass-it-to-value-object dance. Reviewers: teemperor, JDevlieghere, jingham Subscribers: mgorny, jfb, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74153
-
Simon Pilgrim authored
Without PSHUFB we are better using ROTL (expanding to OR(SHL,SRL)) than using the generic v16i8 shuffle lowering - but if we can widen to v8i16 or more then the existing shuffles are still the better option.
-
Momchil Velikov authored
-march=armv8.1-m.main+mve.fp+nomve -mfpu=none should disable FP registers and instructions moving to/from FP registers. This patch fixes the case when "+mve" (added to the feature list by "+mve.fp"), is followed by "-mve" (added by "+nomve"). Differential Revision: https://reviews.llvm.org/D72633
-
Jonathan Coe authored
Summary: C# attributes can appear on classes and methods, in which case they should go on their own line, or on method parameters in which case they should be left inline. Reviewers: krasimir, MyDeveloperDay Reviewed By: MyDeveloperDay Subscribers: klimek Tags: #clang-format Differential Revision: https://reviews.llvm.org/D74265
-
Alexey Lapshin authored
Summary: That patch is extracted from https://reviews.llvm.org/D74308. Currently there are two patterns to name error handling functions: using "Callback" and "Handler". This patch uses "Handler" for all usage places. Reviewers: jhenderson, dblaikie, probinson, aprantl Reviewed By: jhenderson, dblaikie Subscribers: hiraditya, llvm-commits Tags: #llvm, #debug-info Differential Revision: https://reviews.llvm.org/D74354
-
Kamil Rytarowski authored
FreeBSD is currently the only user in this file. Accessing this symbol on Linux does not work as is.
-
Louis Dionne authored
The extent of the returned span was always std::dynamic_extent, which is incorrect. Thanks to Michael Schellenberger Costa for the patch. Differential Revision: https://reviews.llvm.org/D71997
-