- Feb 20, 2021
-
-
Nikita Popov authored
We now need mustprogress to eliminate these calls. The code doesn't really make sense, but that's not the point of the test... (cherry picked from commit ac065b7a)
-
Nikita Popov authored
In both ADCE and BDCE (via DemandedBits) we should not remove instructions that are not guaranteed to return. This issue was pointed out by fhahn in the recent llvm-dev thread. Differential Revision: https://reviews.llvm.org/D96993 (cherry picked from commit 2f17ed29)
-
Nikita Popov authored
This moves the willReturn() helper from CallBase to Instruction, so that it can be used in a more generic manner. This will make it easier to fix additional passes (ADCE and BDCE), and will give us one place to change if additional instructions should become non-willreturn (e.g. there has been talk about handling volatile operations this way). I have also included the IntrinsicInst workaround directly in here, so that it gets applied consistently. (As such this change is not entirely NFC -- FuncAttrs will now use this as well.) Differential Revision: https://reviews.llvm.org/D96992 (cherry picked from commit 370addb9)
-
Nikita Popov authored
(cherry picked from commit 4045ad6b)
-
Lei Huang authored
-
- Feb 18, 2021
-
-
David Sherwood authored
Differential Revision: https://reviews.llvm.org/D96270
-
Jez Ng authored
Differential Revision: https://reviews.llvm.org/D95900
-
- Feb 17, 2021
-
-
Sam McCall authored
I believe the atomic write can be reordered after the notify, and that seems to be happening on mac m1: http://45.33.8.238/macm1/2654/step_8.txt In practice maybe seq_cst is enough? But no reason not to lock here. https://bugs.llvm.org/show_bug.cgi?id=48998 (cherry picked from commit 6ac3fd97)
-
Simon Pilgrim authored
[X86][AVX] Add missing VEX_WIG tags from VPACKUSDW/VPHSUBD/VPCMPISTRI/VPCMPISTRM/VPCMPESTRI/VPCMPESTRM Fixes PR48877 Differential Revision: https://reviews.llvm.org/D95801 (cherry picked from commit 4d904776)
-
Simon Pilgrim authored
(cherry picked from commit e9514429)
-
Simon Pilgrim authored
We lost this in D56387/rG69bc0990 - where I got the src/dst bitwidths mixed up and assumed getValidShiftAmountConstant would catch it. Patch by @craig.topper - confirmed by @Carrot that it fixes PR49162 (cherry picked from commit 7ad0c573)
-
Simon Pilgrim authored
(cherry picked from commit 5ca3ef98)
-
- Feb 16, 2021
-
-
Maxim Kuvyrkov authored
Include x86 intrinsics only when compiling for x86_64 or i386. _MSC_VER no longer implies x86. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D96498 Fixes: https://bugs.llvm.org/show_bug.cgi?id=49149 (cherry picked from commit 06f53f2f)
-
Martin Storsjö authored
This was backported in a6ea391b.
-
Nico Weber authored
This reverts commit fae16fc0. Breaks building compiler-rt android runtimes with trunk clang but older NDK, see discussion on https://reviews.llvm.org/D95166 (cherry picked from commit 1608ba09)
-
Stephen Kelly authored
With a matcher like expr(anyOf(integerLiteral(equals(42)), unless(expr()))) and code such as struct B { B(int); }; B func1() { return 42; } the top-level expr() would match each of the nodes which are not spelled in the source and then ignore-traverse to match the integerLiteral node. This would result in multiple results reported for the integerLiteral. Fix that by only running matching logic on nodes which are not skipped with the top-level matcher. Differential Revision: https://reviews.llvm.org/D95735 (cherry picked from commit d6a06365) -
Stephen Kelly authored
(cherry picked from commit b10d4453)
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95607 (cherry picked from commit bb57a342)
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95562 (cherry picked from commit 79125085)
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95644 (cherry picked from commit 43cc4f15)
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D95573 (cherry picked from commit 6f0df3cd)
-
Qiu Chaofan authored
Commit 6bf29dbb enables float128 feature by default for Power9 targets. But float128 may cause build failure in libcxx testing. Revert this commit first to unblock LLVM 12 release. (cherry picked from commit 447dc856)
-
Fangrui Song authored
`clang/lib/CodeGen/CGOpenMPRuntime.cpp` synthesized union (`distinct !DICompositeType(tag: DW_TAG_union_type, name: "kmp_cmplrdata_t", size: 64, elements: <0x62b690>)`) does not have meaningful filename/line number. D94735 dropped the previously arbitrary and untested filename/line from the union and caused a verifier error here. This fixes `check-libarcher` failures. Differential Revision: https://reviews.llvm.org/D96212 (cherry picked from commit ad60802a)
-
Wang, Pengfei authored
Intrinsics *reduce_add/mul_ps/pd have assumption that the elements in the vector are reassociable. So we need to always assign the reassoc flag when we call _mm_reduce_* intrinsics. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D96231 (cherry picked from commit dd2460ed)
-
Craig Topper authored
As of the current draft these are no longer being considered for the bitmanip spec. It wasn't clear what sub extension they belonged in in the 0.93 spec. So remove them. They can always be added back if something changes. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D96157 (cherry picked from commit fd5adae0)
-
Michael Liao authored
- The failures are all cc1-based tests due to the missing `-aux-triple` options, which is always prepared by the driver in CUDA/HIP compilation. - Add extra check on the missing aux-targetinfo to prevent crashing. [hip][cuda] Enable extended lambda support on Windows. - On Windows, extended lambda has extra issues due to the numbering schemes are different between the host compilation (Microsoft C++ ABI) and the device compilation (Itanium C++ ABI. Additional device side lambda number is required per lambda for the host compilation to correctly mangle the device-side lambda name. - A hybrid numbering context `MSHIPNumberingContext` is introduced to number a lambda for both host- and device-compilations. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D69322 This reverts commit 4874ff02. (cherry picked from commit 01bf529d)
-
Martin Storsjö authored
As the actual MSVC toolset doesn't use the GAS-style assembly that Clang/LLVM produces and consumes, there's no reference for what string to use for e.g. comments when building with a MSVC triple. This frees up the use of semicolon as separator string, just like was done for GNU targets in 23413195. (Previously, both the separator and comment strings were set to the same, a semicolon.) Compiler-rt extensively uses separator chars in its assembly, and that assembly should be buildable with clang-cl for MSVC too. Differential Revision: https://reviews.llvm.org/D96259 (cherry picked from commit 71c29b4c)
-
Fangrui Song authored
In GCC emitted .debug_info sections, R_386_GOTOFF may be used to relocate DW_AT_GNU_call_site_value values (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98946). R_386_GOTOFF (`S + A - GOT`) is one of the `isStaticLinkTimeConstant` relocation type which is not PC-relative, so it can be used from non-SHF_ALLOC sections. We current allow new relocation types as needs come. The diagnostic has caught some bugs in the past. Differential Revision: https://reviews.llvm.org/D95994 (cherry picked from commit b3165a70)
-
Zarko Todorovski authored
Opening this revision to better address comments by @hubert.reinterpretcast in https://reviews.llvm.org/rGcaaaebcde462 Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D95702 (cherry picked from commit eb3426a5)
-
Zarko Todorovski authored
Accidentaly ommitted the portion of pushing back the option in https://reviews.llvm.org/D94986 (cherry picked from commit caaaebcd)
-
Shilei Tian authored
This patch refines the logic to choose compute capabilites via the environment variable `LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES`. It supports the following values (all case insensitive): - "all": Build `deviceRTLs` for all supported compute capabilites; - "auto": Only build for the compute capability auto detected. Note that this requires CUDA. If CUDA is not found, a CMake fatal error will be raised. - "xx,yy" or "xx;yy": Build for compute capabilities `xx` and `yy`. If `LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES` is not set, it is equivalent to set it to `all`. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D95687 (cherry picked from commit 26d38f6d)
-
Dimitry Andric authored
Always turn on LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS, if libcxxrt is used as the C++ ABI library, since libcxxrt does not provide the full set ofnew and delete operators. In particular, the aligned versions of these operators are completely missing. This primarily addresses builds on FreeBSD, as this platform uses libcxxrt by default. Also, attempt to provide a FreeBSD.cmake cache file, with hopefully sane settings, partially copied from the Apple.cmake cache file. This needs more work, probably some additions to ci build scripts (although I am not aware of any 'official' FreeBSD build bots). Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D96720 (cherry picked from commit 32826101)
-
Johannes Doerfert authored
Even code in target and declare target regions might not be emitted. With this patch we delay more diagnostics and use laziness and linkage to determine if a function is emitted (for the device). Note that we still eagerly emit diagnostics for target regions, unfortunately, see the TODO for the reason. This hopefully fixes PR48933. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D95928 (cherry picked from commit 1dd66e61)
-
Johannes Doerfert authored
Type errors in function declarations were not (always) diagnosed prior to this patch. Furthermore, certain remarks did not get associated properly which caused them to be emitted multiple times. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D95912 (cherry picked from commit f9286b43)
-
Johannes Doerfert authored
This will highlight the effective changes in subsequent commits. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D95903 (cherry picked from commit 3b2f19d0)
-
Johannes Doerfert authored
This fixes PR49043 by invalidating the handle on RAUW. This will work fine assuming all existing RAUW users add the new assumption to the cache. That means, if a new llvm.assume call replaces an old one, you need to add the new one now as a RAUW is not enough anymore. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D96208 (cherry picked from commit 378f4e5e)
-
Tom Stellard authored
This avoids failures when many commits are pushed close together.
-
Nathan James authored
`isParamInMainLikeFunction` didn't check if the function had an identifer name before calling getName() which could lead to an assert. (cherry picked from commit c97592c5)
-
- Feb 13, 2021
-
-
Jeroen Dobbelaere authored
Inlining sometimes maps different instructions to be inlined onto the same instruction. We must ensure to only remap the noalias scopes once. Otherwise the scope might disappear (at best). This patch ensures that we only replace scopes for which the mapping is known. This approach is preferred over tracking which instructions we already handled in a SmallPtrSet, as that one will need more memory. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D95862 (cherry picked from commit 50c523a9)
-
Jeroen Dobbelaere authored
The reduction of a sanitizer build failure when enabling the dominance check (D95335) showed that loop peeling also needs to take care of scope duplication, just like loop unrolling (D92887). Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D95544 (cherry picked from commit 80cdd30e)
-