- May 25, 2020
-
-
Benjamin Kramer authored
compiler-rt also doesn't support bits >= 64 as far as I know.
-
Simon Pilgrim authored
Add forward declarations for the few Instr classes we reference.
-
serge-sans-paille authored
- test both 32 and 64 bit version - probe the tail in dynamic-alloca - generate more concise code Differential Revision: https://reviews.llvm.org/D79482
-
Simon Pilgrim authored
We already have to include TargetLibraryInfo.h
-
Simon Pilgrim authored
This is directly defined in Instructions.h
-
Simon Pilgrim authored
Remove unused User.h include. Replace SetVector.h with forward declaration. Sort the forward declarations + remove FastMathFlags (defined in Operator.h). Fix implicit SetVector.h dependency in LowerConstantIntrinsics.cpp.
-
Simon Pilgrim authored
This is directly defined in PassManager.h
-
Sanjay Patel authored
This replaces the build_vector lowering code that was just added in D80013 and matches the pattern later from the x86-specific "vzext_movl". That seems to result in the same or better improvements and gets rid of the 'TODO' items from that patch. AFAICT, we always shrink wider constant vectors to 128-bit on these patterns, so we still get the implicit zero-extension to ymm/zmm without wasting space on larger vector constants. There's a trade-off there because that means we miss potential load-folding. Similarly, we could load scalar constants here with implicit zero-extension even to 128-bit. That saves constant space, but it means we forego load-folding, and so it increases register pressure. This seems like a good middle-ground between those 2 options. Differential Revision: https://reviews.llvm.org/D80131
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
George Mitenkov authored
Added pow intrinsic to LLVMIR dialect. Added a roundrip test for it. Differential Revision: https://reviews.llvm.org/D80248
-
Stefan Pintilie authored
Split off PPCELFStreamer::emitPrefixedInstruction from PPCELFStreamer::emitInstruction. Differential Revision: https://reviews.llvm.org/D79626
-
David Green authored
-
Xing GUO authored
``` StringMap<std::unique_ptr<MemoryBuffer>> EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups); ``` is unimplemented and unused.
-
Simon Pilgrim authored
For the supported binops (basic arithmetic, logicals + shifts), if we fail to simplify the demanded vector elts, then call SimplifyMultipleUseDemandedBits and try to peek through ops to remove unnecessary dependencies. This helps with PR40502. Differential Revision: https://reviews.llvm.org/D79003
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Dmitry Preobrazhensky authored
Summary: 'A' constraint requires an immediate int or fp constant that can be inlined in an instruction encoding. Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D78494
-
Raphael Isemann authored
DeclarationName is usually passed around by value as it's just a pointer.
-
Jaroslav Sevcik authored
Summary: This is an attempt to fix https://bugs.llvm.org/show_bug.cgi?id=45988, where SBValue::GetNumChildren returns 2, but SBValue::GetChildAtIndex(1) returns an invalid value sentinel. The root cause of this seems to be that GetNumChildren can return the number of children of a wrong value. In particular, for pointers GetNumChildren just recursively calls itself on the pointee type, so it effectively walks chains of pointers. This is different from the logic of GetChildAtIndex, which only recurses if pointee.IsAggregateType() returns true (IsAggregateType is false for pointers and references), so it never follows chain of pointers. This patch aims to make GetNumChildren (more) consistent with GetChildAtIndex by only recursively calling GetNumChildren for aggregate types. Ideally, GetNumChildren and GetChildAtIndex would share the code that decides which pointers/references are followed, but that is a bit more invasive change. Reviewers: teemperor, jingham, clayborg Reviewed By: teemperor, clayborg Subscribers: clayborg, labath, shafik, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D80254
-
Haojian Wu authored
Summary: The cross-file rename feature is stable enough to enable it (has been rolled out internally for a few weeks). Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80507
-
mydeveloperday authored
Summary: Make RAV not visit the default function decl by default. Also update some stale comments on FunctionDecl::isDefault. Fixes https://github.com/clangd/clangd/issues/383 Reviewers: sammccall, rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80288
-
Ayal Zaks authored
If a loop has a constant trip count known to be a multiple of MaxVF (times user UF), LV infers that no tail will be generated for any chosen VF. This relies on the chosen VF's being powers of 2 bound by MaxVF, and assumes MaxVF is a power of 2. Make sure the latter holds, in particular when MaxVF is set by a memory dependence distance which may not be a power of 2. Differential Revision: https://reviews.llvm.org/D80491
-
Joachim Protze authored
__kmp_realloc_task_deque implicitly assumes, that the task queue is full (ntasks == size), therefore tail = size in line 319. An assertion is added to document this assumption. The first check for a full queue is before the locking and might not hold when the lock is taken. So, we need to check again for this condition when we have the lock. Reviewed By: AndreyChurbanov Differential Revision: https://reviews.llvm.org/D80480
-
Sam McCall authored
Generally: - found results using this method -> log - no results using this method -> vlog - method wasn't applied because ineligible -> no log
-
Kazushi (Jam) Marukawa authored
Summary: '|&' works with bash only, so it should not be used in regression tests. Differential Revision: https://reviews.llvm.org/D80501
-
Tobias Hieta authored
We want to make sure that LINKER_IS_LLD_LINK is properly set - in this case it shouldn't be set when building for MinGW. Then we want to make the test for it correct and finally include the option to build with thinlto cache since the MinGW driver now supports that. Differential Revision: https://reviews.llvm.org/D80493
-
Fangrui Song authored
-
Fangrui Song authored
-
Jacques Pienaar authored
* Enables using with more variadic sized operands; * Generate convenience accessors for attributes; - The accessor are named the same as their name in ODS and returns attribute type (not convenience type) and no derived attributes. This is first step to changing adapter to support verifying argument constraints before the op is even created. This does not change the name of adaptor nor does it require it except for ops with variadic operands to keep this change smaller. Considered creating separate adapter but decided against that given operands also require attributes in general (and definitely for verification of operands and attributes). Differential Revision: https://reviews.llvm.org/D80420 -
Orivej Desh authored
Fixes a build issue with libc++ configured with _LIBCPP_RAW_ITERATORS (ADL not effective) ``` llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:1602:3: error: no matching function for call to 'transform' transform(HexString.begin(), HexString.end(), HexString.begin(), tolower); ^~~~~~~~~ ``` Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D80475
-
Jake Merdich authored
Summary: https://bugs.llvm.org/show_bug.cgi?id=46043 Git's config is generally of the format 'key=val', but a setting 'key=true' can be written as just 'key'. The git-clang-format script expects a value and crashes in this case; this change handles implicit 'true' values in the script. Reviewers: MyDeveloperDay, krasimir, sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80486
-
Stephen Kelly authored
This makes many scenarios simpler by not requiring the user to write ignoringImplicit() all the time, nor to account for non-visible cxxConstructExpr() and cxxMemberCalExpr() nodes. This is also, in part, inclusive of the equivalent of adding a use of ignoringParenImpCasts() between all expr()-related matchers in an expression. The pre-existing traverse(TK_AsIs, ...) matcher can be used to explcitly match on implicit/invisible nodes. See http://lists.llvm.org/pipermail/cfe-dev/2019-December/064143.html for more Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72534
-
Craig Topper authored
The fixed register constraint on EDX/RDX as an input makes this not really commutable.
-
Stephen Kelly authored
-
Stephen Kelly authored
As is done by ignoreParenImpCasts(). We were not previously calling the correct internal method. Adjust tests to account for this.
-
Simon Pilgrim authored
If we're extracting an subvector from a broadcasted subvector of the same type then we can use the source vector directly.
-
Simon Pilgrim authored
If we're extracting an upper subvector from a broadcast we're better off extracting the lowest subvector instead as it avoids an actual extract instruction and might help SimplifyDemandedVectorElts further simplify the code.
-
Sanjay Patel authored
EarlyCSE was added with D75145, but the motivating test is not regressed by removing the extra pass now. That might be because VectorCombine altered the way it processes instructions, or it might be from (re)moving VectorCombine in the pipeline. The extra round of EarlyCSE appears to cost approximately 0.26% in compile-time as discussed in D80236, so we need some evidence to justify its inclusion here, but we do not have that (yet). I suspect that between SLP and VectorCombine, we are creating patterns that InstCombine and/or codegen are not prepared for, but we will need to reduce those examples and include them as PhaseOrdering and/or test-suite benchmarks.
-
Florian Hahn authored
Currently we unconditionally get the first lane of the condition operand, even if we later use the full vector condition. This can result in some unnecessary instructions being generated. Suggested as follow-up in D80219.
-