- Nov 04, 2020
-
-
Thomas Raoux authored
Differential Revision: https://reviews.llvm.org/D90567
-
Sanne Wouda authored
This reverts commit 5a72a162.
-
Sanne Wouda authored
This reverts commit 6e80318e.
-
Jay Foad authored
-
Ben Dunbobbin authored
415f7ee8 had a silly typo introduced when I inlined some code into a loop from its own function. Original commit message: For PlayStation we offer source code compatibility with Microsoft's dllimport/export annotations; however, our file format is based on ELF. To support this we translate from DLL storage class to ELF visibility at the end of codegen in Clang. Other toolchains have used similar strategies (e.g. see the documentation for this ARM toolchain: https://developer.arm.com/documentation/dui0530/i/migrating-from-rvct-v3-1-to-rvct-v4-0/changes-to-symbol-visibility-between-rvct-v3-1-and-rvct-v4-0) This patch adds the ability to perform this translation. Options are provided to support customizing the mapping behaviour. Differential Revision: https://reviews.llvm.org/D89970
-
Sanne Wouda authored
The LoopDistribute pass is missing from the LTO pipeline, so -enable-loop-distribute has no effect during post-link. The pre-link loop distribution doesn't seem to survive the LTO pipeline either. With this patch (and -flto -mllvm -enable-loop-distribute) we see a 43% uplift on SPEC 2006 hmmer for AArch64. The rest of SPECINT 2006 is unaffected. Differential Revision: https://reviews.llvm.org/D89896
-
Sanne Wouda authored
-
Andy Yankovsky authored
SBType::GetArrayElementType should return the actual type, not the canonical type (e.g. int32_t, not the underlying int). Added a test case to validate the new behavior. I also ran all other tests on Linux (ninja check-lldb), they all pass. Differential revision: https://reviews.llvm.org/D90318
-
Andy Wingo authored
This patch adds a new "heap type" operand kind to the WebAssembly MC layer, used by ref.null. Currently the possible values are "extern" and "func"; when typed function references come, though, this operand may be a type index. Note that the "heap type" production is still known as "refedtype" in the draft proposal; changing its name in the spec is ongoing (https://github.com/WebAssembly/reference-types/issues/123). The register form of ref.null is still untested. Differential Revision: https://reviews.llvm.org/D90608
-
Aaron En Ye Shi authored
Similar to libcxx implementation of cmath function overloads, use type promotion templates to determine return types of multi-argument math functions. Fixes: SWDEV-256825 Reviewed By: tra, yaxunl Differential Revision: https://reviews.llvm.org/D90409
-
Artem Belevich authored
The path produced by getMainExecutable() may not be the right one when the files are installed in a symlinked tree and when the real location of llvm-objdump is in a different directory. Given that clang-offload-bundler is invoked by clang, the driver already does the job figuring out the right path (e.g. it pays attention to -no-canonical-prefixes). Offload bundler should use it, instead of trying to figure out the path on its own. Differential Revision: https://reviews.llvm.org/D90436
-
Artem Belevich authored
While CUDA documentation claims that such variables are not allowed[1], NVCC has been accepting them since CUDA-10.0[2] and some headers in CUDA-11 rely on this working. 1. https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#static-variables-function 2. https://godbolt.org/z/zsodzc Differential Revision: https://reviews.llvm.org/D88345
-
Jameson Nash authored
-
Jonas Devlieghere authored
Instead of parsing the crashlog in one big loop, use methods that correspond to the different parsing modes. Differential revision: https://reviews.llvm.org/D90665
-
Simon Pilgrim authored
-
Simon Pilgrim authored
As discussed on D90527, we should be trying to move shift handling functionality into KnownBits to avoid code duplication in SelectionDAG/GlobalISel/ValueTracking.
-
Craig Topper authored
DAGCombine doesn't canonicalize rotl/rotr with immediate so we need patterns for both. Remove the custom matcher for rotl to RORI and just use a SDNodeXForm to convert the immediate instead. Doing this gives priority to the rev32/rev16 versions of grevi over rori since an explicit immediate is more precise than any immediate. I also added rotr patterns for rev32/rev16. And removed the (or (shl), (shr)) patterns that should be combined to rotl by DAG combine. There is at least one other grev pattern that probably needs a another rotr pattern, but we need more test coverage first. Differential Revision: https://reviews.llvm.org/D90575
-
Simon Pilgrim authored
As discussed on D90527, we should be be trying to move shift handling functionality into KnownBits to avoid code duplication in SelectionDAG/GlobalISel/ValueTracking. The refactor to use the KnownBits fixed/min/max constant helpers allows us to hit a couple of cases that we were missing before. We still need the getValidMinimumShiftAmountConstant case as KnownBits doesn't handle per-element vector cases.
-
Simon Pilgrim authored
Necessary for upcoming KnownBits::lshr support.
-
Louis Dionne authored
They don't really belong as members of allocator_traits.
-
Jonas Devlieghere authored
Move crash log parsing out of the CrashLog class and into its own class and add more tests. Differential revision: https://reviews.llvm.org/D90664
-
Nico Weber authored
The test hasn't run since it was added in D71302.
-
Tony authored
Differential Revision: https://reviews.llvm.org/D90661
-
etiotto authored
This patch adds support for building the compiler-rt profile library on AIX. Reviewed by: phosek Differential Revision: https://reviews.llvm.org/D90619
-
Tim Renouf authored
Differential Revision: https://reviews.llvm.org/D90447 Change-Id: If2650fc7f31bbdd49c76e74a9ca8e3734d769761
-
Tim Renouf authored
This differentiates the Ryzen 4000/4300/4500/4700 series APUs that were previously included in gfx909. Differential Revision: https://reviews.llvm.org/D90419 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d
-
Michał Górny authored
One of the changes seems to have been lost in rebase. Reapply.
-
Valentin Clement authored
This patch adds some helper in the DirectiveLanguage wrapper to initialize it from the RecordKeeper and validate the records. This simplify arguments in lots of function since only the DirectiveLanguge is passed. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D90358
-
Sanjay Patel authored
As noted in D90554, there's an opcode typo in using an easily misused cost model API: getCmpSelInstrCost(). Beyond that, the assumed sequence of ops is questionable, but that would be another patch. My guess is that the x86 test diffs show that we are probably wrong both before and after this change, so there will be no practical difference. As an example, I tried this test which shows a cost of '7' either way: define <4 x i32> @sadd(<4 x i32> %va, <4 x i32> %vb) { %V4I32 = call {<4 x i32>, <4 x i1>} @llvm.sadd.with.overflow.v4i32(<4 x i32> %va, <4 x i32> %vb) %ov = extractvalue {<4 x i32>, <4 x i1>} %V4I32, 1 %r = extractvalue {<4 x i32>, <4 x i1>} %V4I32, 0 %z = select <4 x i1> %ov, <4 x i32> <i32 42, i32 42, i32 42, i32 42>, <4 x i32> %r ret <4 x i32> %z } $ llc -o - sadd.ll -mattr=avx vpaddd %xmm1, %xmm0, %xmm2 vpcmpgtd %xmm2, %xmm0, %xmm0 vpxor %xmm0, %xmm1, %xmm0 vblendvps %xmm0, LCPI0_0(%rip), %xmm2, %xmm0a Differential Revision: https://reviews.llvm.org/D90681
-
- Nov 03, 2020
-
-
Hans Wennborg authored
Fix GCC error: specialization of 'template<class LeafTy> struct llvm::LinearPolyBaseTypeTraits' in different namespace
-
Joachim Protze authored
-
Joe Ellis authored
The test was using -O2, where -instcombine will suffice. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D90684
-
Jay Foad authored
These instructions use a scaled offset. We were wrongly selecting them even when the required offset was not a multiple of the scale factor. Differential Revision: https://reviews.llvm.org/D90607
-
Martin Storsjö authored
If __libcpp_mbsrtowcs_l outputs zero wchar_t's for week days or month names (due to errors in the locale function setup), these are matched all the time in __time_get_storage::__analyze, ending up in an infinite loop, allocating more memory until killed. Differential Revision: https://reviews.llvm.org/D69553
-
Martin Storsjö authored
[libcxx] [libcxxabi] Set flags for visibility when statically linking libcxxabi into libcxx for windows Previously, these had to be set manually when building each of the projects standalone, in order to get proper symbol visibility when combining the two libraries. Differential Revision: https://reviews.llvm.org/D90021
-
Pavel Labath authored
Buggy cases are commented out. Also sneak in a modernization of a RegisterValue constructor.
-
Mircea Trofin authored
-
Jameson Nash authored
This lets external consumers customize the output, similar to how AssemblyAnnotationWriter lets the caller define callbacks when printing IR. The array of handlers already existed, this just cleans up the code so that it can be exposed publically. Replaces https://reviews.llvm.org/D74158 Differential Revision: https://reviews.llvm.org/D89613
-
Nathan James authored
Adds a method called pop_back_n to SmallVector. This is more readable and less error prone than the alternatives of using ```lang=c++ Vector.resize(Vector.size() - N); Vector.erase(Vector.end() - N, Vector.end()); for (unsigned I = 0;I<N;++I) Vector.pop_back(); ``` Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D90576
-