- Nov 26, 2020
-
-
Georgii Rymar authored
This addresses post review comment for D92018. The warning was: ``` error: loop variable 'Note' is always a copy because the range of type 'iterator_range<llvm::object::ELFFile<llvm::object::ELFType<llvm::support::big, true> >::Elf_Note_Iterator>' (aka 'iterator_range<Elf_Note_Iterator_Impl<ELFType<(llvm::support::endianness)0U, true> > >') does not return a reference [-Werror,-Wrange-loop-analysis] for (const typename ELFT::Note &Note : Obj.notes(S, Err)) ``` -
Max Kazantsev authored
A piece of code in `isLoopBackedgeGuardedByCond` basically duplicates the dominators traversal from `isBlockEntryGuardedByCond` called from `isKnownPredicateAt`, but it's less powerful because it does not give context to `isImpliedCond`. This patch reuses the `isKnownPredicateAt `function there, reducing the amount of code duplication and making it more powerful. Differential Revision: https://reviews.llvm.org/D92152 Reviewed By: skatkov
-
Craig Topper authored
-
Max Kazantsev authored
Use more context to prove contextual facts about the last iteration. It is only executed when the backedge is taken, so we can use `isLoopBackedgeGuardedByCond` to make this check. Differential Revision: https://reviews.llvm.org/D91535 Reviewed By: skatkov
-
Craig Topper authored
-
Craig Topper authored
[LegalizerTypes] Add support for scalarizing the operand of an FP_EXTEND when the result type is legal.
-
Max Kazantsev authored
LoopLoadElim may end up expanding an AddRec from a loop which is not the current loop. This loop may not be in simplify form. We figure it out after the no-return point, so cannot bail in this case. AddRec requires simplify form to expand. The only way to ensure this does not crash is to simplify all loops beforehand. The issue only exists in new PM. Old PM requests LoopSimplify required pass and it simplifies all loops before the opt begins. Differential Revision: https://reviews.llvm.org/D91525 Reviewed By: asbirlea, aeubanks
-
Stella Laurenzo authored
Differential Revision: https://reviews.llvm.org/D92144
-
Sam Clegg authored
Without this extra flag we can't distingish between stub functions and functions that happen to have address 0 (relative to __table_base). Adding this flag bit the base symbol class actually avoids growing the SymbolUnion struct which would not be true if we added it to the FunctionSymbol subclass (due to bitbacking). The previous approach of setting it's table index to zero worked for normal static relocations but not for `-fPIC` code. See https://github.com/emscripten-core/emscripten/issues/12819 Differential Revision: https://reviews.llvm.org/D92038
-
Nico Weber authored
We want to find 'sources = [', but only if it's not the prefix of 'sources = []' -- we're looking for a non-empty list. No behavior change.
-
Nico Weber authored
No behavior change, but maybe a bit clearer.
-
Nico Weber authored
With this, changes like b534beab can be merged automatically.
-
Nathan Ridge authored
This is needed for call hierarchy to be able to find callers of main-file-only functions. Differential Revision: https://reviews.llvm.org/D92000
-
Aart Bik authored
This change gives sparse compiler clients more control over selecting individual types for the pointers and indices in the sparse storage schemes. Narrower width obviously results in smaller memory footprints, but the range should always suffice for the maximum number of entries or index value. Reviewed By: penpornk Differential Revision: https://reviews.llvm.org/D92126
-
Nico Weber authored
-
Richard Smith authored
same type in multiple base classes. Not even if the type is introduced by distinct declarations (for example, two typedef declarations, or a typedef and a class definition).
-
Zhengyang Liu authored
Define ConstantData::PoisonValue. Add support for poison value to LLLexer/LLParser/BitcodeReader/BitcodeWriter. Add support for poison value to llvm-c interface. Add support for poison value to OCaml binding. Add m_Poison in PatternMatch. Differential Revision: https://reviews.llvm.org/D71126
-
Richard Smith authored
This is partly in preparation for an upcoming change that can change the order in which DeclContext lookup results are presented. In passing, fix some obvious errors where name lookup's notion of a "static member function" missed static member function templates, and where its notion of "same set of declarations" was confused by the same declarations appearing in a different order.
-
Amy Huang authored
In https://reviews.llvm.org/D89072 I added static const data members to the debug subsection for globals. It skipped emitting an S_CONSTANT if it didn't have a value, which meant the subsection could be empty. This patch fixes the empty subsection issue. Differential Revision: https://reviews.llvm.org/D92049
-
Reid Kleckner authored
Revert "[compiler-rt] [builtins] Support conversion between fp16 and fp128" & dependency Revert "[compiler-rt] [builtins] Use _Float16 on extendhfsf2, truncdfhf2 __truncsfhf2 if available" This reverts commit 7a948298. This reverts commit 1fb91fcf.
-
Sean Silva authored
It still had the old name from before ElementwiseMappable was added.
-
Craig Topper authored
Start with an assumption that FMA is faster than Fmul+FAdd. If thats not true on some particular implementation we can add a tuning parameter in the future. I've update the fmuladd test cases and added new test cases for fast math flag based contraction. Differential Revision: https://reviews.llvm.org/D91987
-
Craig Topper authored
We currently don't match this which limits the effectiveness of D91120 until InstCombine starts canonicalizing to llvm.abs. This should be easy to remove if/when we remove the SPF_ABS handling. Differential Revision: https://reviews.llvm.org/D92118
-
Tom Stellard authored
The default github actions token cannot push to restricted branches, so we need to use a token from the llvmbot user.
-
David Blaikie authored
The test already specifies a triple in the IR itself. Based on post-commit feedback from Luís Marques.
-
Louis Dionne authored
-
Eric Astor authored
In text-item contexts, %expr expands to a string containing the results of evaluating `expr`. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D89736
-
Marius Brehler authored
-
Craig Topper authored
-
Craig Topper authored
This is the logically correct thing to do. But it generates worse code for i32 umin/umax on the rv64 due to type legalize requesting zext even though the arguments are sext. Maybe we can teach type legalizer to use sext for umin/umax for RISCV. It's also producing possibly worse code on i64 on RV32 since we still end up with selects that become branches. But this seems like something we could improve in type legalization or DAG combine. Hopefully this makes D92095 work for RISCV with Zbb.
-
Louis Dionne authored
There were a couple of places where we needed to call the underlying platform's aligned allocation/deallocation function. Instead of having the same logic all over the place, extract the logic into a pair of helper functions __libcpp_aligned_alloc and __libcpp_aligned_free. The code in libcxxabi/src/fallback_malloc.cpp looks like it could be simplified after this change -- I purposefully did not simplify it further to keep this change as straightforward as possible, since it is touching very important parts of the library. Also, the changes in libcxx/src/new.cpp and libcxxabi/src/stdlib_new_delete.cpp are basically the same -- I just kept both source files in sync. The underlying reason for this refactoring is to make it easier to support platforms that provide aligned allocation through C11's aligned_alloc function instead of posix_memalign. After this change, we'll only have to add support for that in a single place. Differential Revision: https://reviews.llvm.org/D91379
-
Sam McCall authored
-
Frank Laub authored
Adding missing custom builders for AffineVectorLoadOp & AffineVectorStoreOp. In practice, it is difficult to correctly construct these ops without these builders (because the AffineMap is not included at construction time). Differential Revision: https://reviews.llvm.org/D86380
-
Reid Kleckner authored
The MSVC STL for requires this on ARM64. Requested in https://llvm.org/pr47099 Depends on D92061 Differential Revision: https://reviews.llvm.org/D92062
-
Reid Kleckner authored
This code got quite twisted because we consider some MSVC builtins to be target agnostic, and some to be target specific. Target specific intrinsics have a pattern of doing up-front argument evaluation, while general intrinsics do not evaluate their arguments up front. As we tried to share codepaths between the target-specific and target-agnostic handling, we ended up doing double evaluation. Instead, have each target handle MSVC intrinsics consistently before up front argument evaluation. This requires passing less data around and is more consistent with target independent intrinsic handling. See D50979 for past examples of this bug. I noticed this while looking into adding some more intrinsics. Differential Revision: https://reviews.llvm.org/D92061
-
Simon Pilgrim authored
This should handle the basic integer min/max handling - the HVX ops are still TODO. This is some necessary cleanup work for min/max ops to eventually help us move the add/sub sat patterns into DAGCombine - D91876. Differential Revision: https://reviews.llvm.org/D92112
-
Craig Topper authored
[RISCV] Add test cases showing that we don't recognize the select form of NABS in SelectionDAGBuilder so we end up with branches. NFC There's a FIXME that it should produce (sub 0, (abs)).
-
Paul Robinson authored
Caused some -Werror bot failures.
-
Simon Pilgrim authored
Update costs now that D92095 and D92102 have tweaked the SSE2 implementation The SSE42 BLENDVPD cost can actually be used on SSE41 as we don't attempt to generate PCMPGT anymore Add scalar i16/i32/i64 costs as we can do this cheaply with CMOV
-
LLVM GN Syncbot authored
-