- Feb 02, 2021
-
-
Mark de Wever authored
Implements: - LWG3149 DefaultConstructible should require default initialization Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Depends on D91986 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D93461
-
Jessica Paquette authored
When we have a zeroext parameter, emit G_ASSERT_ZEXT. Add a check that we actually emit it. This is a 0.1% code size win on CTMark/7zip and CTMark/consumer-typeset at -Os. Differential Revision: https://reviews.llvm.org/D95567
-
Teresa Johnson authored
Part of the gold test added in 1487747e relies on more recent fixes to gold that fix the plugin behavior with --export-dynamic-symbol and --dynamic-list. Extract those parts of the new test into a v1.16 test.
-
Craig Topper authored
A follow up patch will add support for commuting operands or changing opcode to vfmacc and friends. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D95662
-
Craig Topper authored
-
Jessica Paquette authored
When replacing the dst reg with the src reg, we need to make sure that we propagate the dst reg's register class through to the src. Otherwise, we aren't meeting the requirements for G_ASSERT_ZEXT, and so the verifier will fail. Differential Revision: https://reviews.llvm.org/D95708
-
Craig Topper authored
Rather than materializing the 0xffff immediate for the AND, use a shift left to remove the upper bits and then shift in zeros from the right. This pattern occurs when type legalizing an i16 right shift. I've implemented this with custom selection code for a number of reasons. I've limited this to the AND having a single use. We need to compensate for SimplifyDemandedBits altering the AND mask. I'm using *W opcodes on RV64. We may want to generlize this in the future. For all these reason it seemed easiest to do it this way. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D95774
-
Florian Hahn authored
Instead of using ConstraintSystem::negate when adding new constraints, flip the condition in IR. The main advantage is that EQ predicates can be represented by 2 constraints, which makes negating based on the constraint tricky. The IR condition can easily negated.
-
peter klausler authored
The parsing of I/O units uses look-ahead to discriminate between keywords, variables and expressions as part of distinguishing internal from external I/O. The look-ahead was inaccurate for variables that appear as the initial parts of expressions. Differential Revision: https://reviews.llvm.org/D95743
-
Austin Kerbow authored
-
Austin Kerbow authored
This would assert with amdgpu-spill-sgpr-to-vgpr disabled when trying to spill the FP. Fixes: SWDEV-262704 Reviewed By: RamNalamothu Differential Revision: https://reviews.llvm.org/D95768
-
Erik Pilkington authored
This fixes an apparent oversight in D91156, where the symbol was defined without the leading underscore, then the visibility was later declared with it. rdar://73364185 Differential revision: https://reviews.llvm.org/D95639
-
Sam McCall authored
- always collect main-file refs when indexing - always build preambles asynchronously - always use dex for fast preamble index Retire associated flags Differential Revision: https://reviews.llvm.org/D95571
-
Joseph Huber authored
Summary: One option for the LIBOMPTARGET_INFO environment variable is to print the current status of the device's data mappings. These are a shared resource among threads so this needs to be protected when using multiple streams. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D95786
-
Sam McCall authored
This requires a second index query for refs to overrides, as the refs call doesn't tell you which ref points at which symbol. Differential Revision: https://reviews.llvm.org/D95451
-
Simon Pilgrim authored
Breaks on some buildbots
-
Sander de Smalen authored
This patch migrates cost values and arithmetic to work on InstructionCost. When the interfaces to TargetTransformInfo are changed, any InstructionCost state will propagate naturally. See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D95351
-
Sander de Smalen authored
This patch is a precursor to D95351, which changes the signature of these methods.
-
David Green authored
Under the softfp calling convention, we are often left with VMOVRRD(extract(bitcast(build_vector(a, b, c, d)))) for the return value of the function. These can be simplified to a,b or c,d directly, depending on the value of the extract. Big endian is a little different because the bitcast switches the lanes around, meaning we end up with b,a or d,c. Differential Revision: https://reviews.llvm.org/D94989
-
Sam McCall authored
Unfortunately this treats overrides declarations as declarations, not as references. I don't plan to land this until I have a fix for that issue. Differential Revision: https://reviews.llvm.org/D95450
-
- Feb 01, 2021
-
-
J-Y You authored
If we instantiate self-referenced anonymous records in foreach and multiclass, the NAME value will point to incorrect record. It's because anonymous name is resolved too early. This patch adds AnonymousNameInit to represent an anonymous record name. When instantiating an anonymous record, it will update the referred name. Differential Revision: https://reviews.llvm.org/D95309
-
Simon Pilgrim authored
Avoids unnecessary IEEEFloat copies.
-
Ruslan Arutyunyan authored
Add deleted volatile copy-assignment operator in the most derived atomic to fix the Bug 41784. The root cause: there is an `operator=(T) volatile` that has better match than the deleted copy-assignment operator of the base class when `this` is `volatile`. The compiler sees that right operand of the assignment operator can be converted to `T` and chooses that path without taking into account the deleted copy-assignment operator of the base class. The current behavior on libstdc++ is different from what we have in libc++. On the same test compilation fails with libstdc++. Proof: https://godbolt.org/z/nebPYd (everything is the same except the -stdlib option). I choose the way with explicit definition of copy-assignment for atomic in the most derived class. But probably we can fix that by moving `operator=(T)` overloads to the base class from both specializations. At first glance, it shouldn't break anything. Differential Revision: https://reviews.llvm.org/D90968
-
Haojian Wu authored
This test seems to be failing at HEAD. Reviewed By: kadircet, sammccall Differential Revision: https://reviews.llvm.org/D95670
-
LLVM GN Syncbot authored
-
Sam McCall authored
If you have c:\foo open, and C:\foo indexed (case difference) then these need to be considered the same file. Otherwise we emit edits to both, and editors do... something that isn't pretty. Maybe more centralized normalization is called for, but it's not trivial to do this while also being case-preserving. see https://github.com/clangd/clangd/issues/108 Fixes https://github.com/clangd/clangd/issues/665 Differential Revision: https://reviews.llvm.org/D95759
-
Kerry McLaughlin authored
The AArch64 DAG combine added by D90945 & D91433 extends the index of a scalable masked gather or scatter to i32 if necessary. This patch removes the combine and instead adds shouldExtendGSIndex, which is used by visitMaskedGather/Scatter in SelectionDAGBuilder to query whether the index should be extended before calling getMaskedGather/Scatter. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D94525
-
Florian Hahn authored
In some cases, LHS is larger than the target expression type. Bail out in that case for now, to avoid crashing
-
Jeroen Dobbelaere authored
the 'clang-with-lto-ubuntu' buildbot triggers the assertion. This reverts commit b43c395e.
-
Florian Hahn authored
Add test coverage for conditions with signed predicates.
-
Med Ismail Bennani authored
This patch skips the test for the SBTarget::IsLoaded method on windows since the logic is different. Differential Revision: https://reviews.llvm.org/D95686 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Tim Northover authored
Otherwise getZExtValue() asserts.
-
Cullen Rhodes authored
D90687 introduced a crash: llvm::LoopVectorizationCostModel::computeMaxVF(llvm::ElementCount, unsigned int): Assertion `WideningDecisions.empty() && Uniforms.empty() && Scalars.empty() && "No decisions should have been taken at this point"' failed. when compiling the following C code: typedef struct { char a; } b; b *c; int d, e; int f() { int g = 0; for (; d; d++) { e = 0; for (; e < c[d].a; e++) g++; } return g; } with: clang -Os -target hexagon -mhvx -fvectorize -mv67 testcase.c -S -o - This occurred since prior to D90687 computeFeasibleMaxVF would only be called in computeMaxVF when a scalar epilogue was allowed, but now it's always called. This causes the assert above since computeFeasibleMaxVF collects all viable VFs larger than the default MaxVF, and for each VF calculates the register usage which results in analysis being done the assert above guards against. This can occur in computeFeasibleMaxVF if TTI.shouldMaximizeVectorBandwidth and this target hook is implemented in the hexagon backend to always return true. Reported by @iajbar. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D94869 -
Sander de Smalen authored
This patch migrates cost values and arithmetic to work on InstructionCost. When the interfaces to TargetTransformInfo are changed, any InstructionCost state will propagate naturally. See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D95356
-
Andy Yankovsky authored
Use `GetSelectedExecutionContext()` instead of `GetCommandInterpreter().GetExecutionContext()` in `SBDebugger::GetInternalVariableValue/SBDebugger::SetInternalVariable`. The execution context in the command interpreter might be empty, if no commands has been executed yet (it is updated only when handling commands or completions -- e.g. https://github.com/llvm/llvm-project/blob/main/lldb/source/Interpreter/CommandInterpreter.cpp#L1855). Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D95761
-
Jan Svoboda authored
This reverts commit 9ad94c12 It turns out that to correctly generate command line flags for LangOptions::OpenMP and LangOptions::OpenMPSimd, we need the flexibility of C++.
-
Martin Storsjö authored
-
Dmitry Preobrazhensky authored
Generic parser may report an incorrect error position when an offending operand is followed by a comma. See bug 48884 for details: https://bugs.llvm.org/show_bug.cgi?id=48884. Differential Revision: https://reviews.llvm.org/D95674
-
Med Ismail Bennani authored
This patch adds an `SBTarget::IsLoaded(const SBModule&) const` endpoint to lldb's Scripting Bridge API. As the name suggests, it will allow the user to know if the module is loaded in a specific target. rdar://37957625 Differential Review: https://reviews.llvm.org/D95686 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
xgupta authored
According to the [[ https://foundation.llvm.org/docs/branch-rename/ | status of branch rename ]], the master branch of the LLVM repository is removed on 28 Jan 2021. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D95766
-