Annika [Fri, 11 Feb 2022 22:11:27 +0000 (06:11 +0800)]
m68k: Support bit shifts on 64-bit integers
As per https://bugs.llvm.org/show_bug.cgi?id=52119.
Reviewed By: myhsu
Differential Revision: https://reviews.llvm.org/D111497
Nico Weber [Fri, 11 Feb 2022 21:26:12 +0000 (16:26 -0500)]
Reland "[lld/coff] Make lld-link work in a non-MSVC shell, add /winsysroot:"
This relands commit
b3b2538df100ec, except that the new files in Support
are instead in a new library WindowsDriver.
Shubham Sandeep Rastogi [Fri, 11 Feb 2022 19:19:36 +0000 (11:19 -0800)]
Add support for the swift5 reflection section acfuncs
With
bc013b3e4e862da8d0c2d91cf99dcbebf124e4ac a new section called accessible functions was added to swift/include/swift/ABI/ObjectFile.h so this change adds support for dumping it out into the dSYM bundle
Differential Revision: https://reviews.llvm.org/D119569
Paul Kirth [Fri, 11 Feb 2022 21:51:34 +0000 (21:51 +0000)]
[sanitizers] Add missing header to fix Fuchsia builds
Adds missing header to fix sanitizer builds for Fuchsia.
Reviewed By: abrachet
Differential Revision: https://reviews.llvm.org/D119588
Philip Reames [Fri, 11 Feb 2022 21:56:27 +0000 (13:56 -0800)]
Autogen a couple of predicated SCEV tests
Arthur Eubanks [Fri, 11 Feb 2022 21:43:09 +0000 (13:43 -0800)]
[NFC] Remove check for callee parameter elementtype
elementtype is only allowed on caller arguments.
Björn Schäpers [Fri, 5 Nov 2021 20:10:09 +0000 (21:10 +0100)]
[clang-format] Improve require and concept handling
- Added an option where to put the requires clauses.
- Renamed IndentRequires to IndentRequiresClause.
- Changed BreakBeforeConceptDeclaration from bool to an enum.
Fixes https://llvm.org/PR32165, and https://llvm.org/PR52401.
Differential Revision: https://reviews.llvm.org/D113319
Nikolas Klauser [Thu, 10 Feb 2022 23:11:31 +0000 (00:11 +0100)]
[libc++] Prepare string.ops for constexpr
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D119490
Nico Weber [Fri, 11 Feb 2022 20:09:20 +0000 (15:09 -0500)]
[clang] Expose -fprofile-use in clang-cl
Less typing than `-fprofile-instr-use`, and means the same thing.
Differential Revision: https://reviews.llvm.org/D119574
Dimitry Andric [Fri, 11 Feb 2022 17:07:20 +0000 (18:07 +0100)]
[compiler-rt] Force ABI to libcxxabi when building cxustom libc++
Follow-up to
458ead66dc37, which replaced the bespoke CMakeLists.txt
file for building a custom instrumented libc++ with an invocation of the
runtimes build.
In the the bespoke CMakeLists.txt, the LIBCXX_CXX_ABI setting was forced
to libcxxabi, but this was not done for the CMake invocation for the
runtimes build. This would cause CMake configuration issues on platforms
where the default LIBCXX_CXX_ABI setting is not libcxxabi, such as
FreeBSD.
Add `-DLIBCXX_CXX_ABI=libcxxabi` to that invocation, to make sure the
custom instrumented libc++ always uses the expected ABI.
Reviewed By: phosek
Differential Revision: https://reviews.llvm.org/D119554
Adrian Prantl [Fri, 11 Feb 2022 21:02:28 +0000 (13:02 -0800)]
Revert "[lld/coff] Make lld-link work in a non-MSVC shell, add /winsysroot:"
This reverts commit
b3b2538df100ec7f6587b0ee70819a3c8ee2c27e,
it introduced a cycklic module depenency that broke the -DLLVM_ENABLE_MODULES=1 build.
Weverything [Thu, 10 Feb 2022 23:23:43 +0000 (15:23 -0800)]
[Clang][OpaquePtr] Remove deprecated Address constructor calls
Remove most calls to deprcated Address constructor in CGExpr.cpp
Differential Revision: https://reviews.llvm.org/D119496
Florian Mayer [Fri, 11 Feb 2022 20:21:19 +0000 (12:21 -0800)]
[memprof] Fix UB.
An infinite loop without any effects is illegal C++ and can be optimized
away by the compiler.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D119575
Louis Dionne [Thu, 10 Feb 2022 22:10:12 +0000 (17:10 -0500)]
[libc++] Revert the addition of _LIBCPP_HIDE_FROM_ABI and inline in __threading_support
This reverts commit
2722ac65. As explained in D115906, this was actually
unnecessary and it broke the external threading configuration.
Differential Revision: https://reviews.llvm.org/D119484
Louis Dionne [Thu, 10 Feb 2022 20:06:50 +0000 (15:06 -0500)]
[libc++] Disable local submodule visibility in the modules build
Differential Revision: https://reviews.llvm.org/D119468
Florian Hahn [Fri, 11 Feb 2022 20:26:25 +0000 (20:26 +0000)]
[ConstraintElimination] Support add with precondition.
If we can prove that an addition without wrap flags won't wrap, decompse
the operation.
Issue #48253
YASHASVI KHATAVKAR [Fri, 11 Feb 2022 20:18:57 +0000 (15:18 -0500)]
Fix build broken by missing empty line in SourceLevelDebugging.rst
Martin Storsjö [Thu, 10 Feb 2022 11:23:40 +0000 (13:23 +0200)]
[libcxx] Wrap [[no_unique_address]] in a macro, for clang-cl
This should silence all remaining clang-cl build warnings.
Differential Revision: https://reviews.llvm.org/D119430
Sanjay Patel [Fri, 11 Feb 2022 17:05:58 +0000 (12:05 -0500)]
[x86] add test for load ordering; NFC
This is reduced from a test that failed with D118376.
The C source is posted in issue #53695
Sanjay Patel [Thu, 10 Feb 2022 20:18:46 +0000 (15:18 -0500)]
[x86] scrub less memory ops in test; NFC
The addresses matter - we want to verify the splitting
and order of the memops.
Konstantin Varlamov [Fri, 11 Feb 2022 19:56:29 +0000 (11:56 -0800)]
[libc++][NFC] Work around false positive ODR violations from ASan.
This works around a known issue in ASan. ASan doesn't instrument weak
symbols. Because instrumentation increases object size, the binary can
end up with two versions of the same object, one instrumented and one
not instrumented, with different sizes, which ASan will report as an ODR
violation. In libc++, this affects typeinfo for `std::bad_function_call`
which is emitted as a weak symbol in the test executable and as a strong
symbol in the shared library.
The main open issue for ASan appears to be
https://github.com/google/sanitizers/issues/1017.
Differential Revision: https://reviews.llvm.org/D119410
Arthur Eubanks [Fri, 11 Feb 2022 19:50:11 +0000 (11:50 -0800)]
[MSan][OpaquePtr] Use inline asm elementtype instead of getPointerElementType()
Florian Mayer [Fri, 11 Feb 2022 19:27:24 +0000 (11:27 -0800)]
[Sanitizers] Fix build broken by missing import.
Dmitry Vyukov [Fri, 11 Feb 2022 19:35:17 +0000 (20:35 +0100)]
hwasan: fix up includes
Fix up includes after
595d340dceca
("sanitizer_common: make internal/external headers compatible").
Differential Revision: https://reviews.llvm.org/D119570
YASHASVI KHATAVKAR [Fri, 11 Feb 2022 19:38:50 +0000 (14:38 -0500)]
Adding DiBuilder interface for assumed length strings
Philip Reames [Fri, 11 Feb 2022 19:34:30 +0000 (11:34 -0800)]
[SCEVPredicate] Remove getExpr mechanism [NFC]
This mechanism was used for a couple of purposes, but the primary one was keeping track of which predicates in a union might apply to an expression. As these sets are small and agressively deduped, this has little value.
Arthur Eubanks [Fri, 11 Feb 2022 19:30:42 +0000 (11:30 -0800)]
[OpaquePtr][SPARC] Remove getPointerElementType() call in SparcISelLowering
Requires keeping better track of sret types.
Eric Schweitz [Fri, 11 Feb 2022 02:40:13 +0000 (18:40 -0800)]
[flang] Upstream fix to allocmem codegen to deal with missing dimensions
for sequence of character types.
Upstream type test. Upstream test. Fix tests.
Do not run on windows, as that is not an implemented target.
Differential Revision: https://reviews.llvm.org/D119551
Florian Mayer [Fri, 11 Feb 2022 00:15:59 +0000 (16:15 -0800)]
[NFC] [MTE] Use helpers for stack tagging.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D119503
Roman Lebedev [Fri, 11 Feb 2022 18:25:06 +0000 (21:25 +0300)]
[NFCI][SCEV] `SCEVTraversal`: if search terminated, don't push further ops of nary
Even if the search is marked as terminated after only looking at
the first operand, we'd still look at the remaining operands
before actually ending the search.
This seems pointless and wasteful, let's not do that.
Roman Lebedev [Fri, 11 Feb 2022 17:34:46 +0000 (20:34 +0300)]
[SCEV] Generalize umin_seq matching
Since we don't greedily flatten `umin_seq(a, umin(b, c))` into `umin_seq(a, b, c)`,
just looking at the operands of the outer-level `umin` is not sufficient,
and we need to recurse into all same-typed `umin`'s.
Roman Lebedev [Fri, 11 Feb 2022 14:59:09 +0000 (17:59 +0300)]
[SCEV] Recognize `x == 0 ? 0 : umin_seq(..., x, ...) -> umin_seq(x, umin_seq(...))`
Roman Lebedev [Fri, 11 Feb 2022 14:52:11 +0000 (17:52 +0300)]
[SCEV] Recognize `x == 0 ? 0 : umin(..., x, ...) -> umin_seq(x, umin(...))`
That is the canonical expansion for umin_seq,
so we really should roundtrip it.
Roman Lebedev [Fri, 11 Feb 2022 12:48:36 +0000 (15:48 +0300)]
[SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: generalize eq handling
The current logic was: https://alive2.llvm.org/ce/z/j8muXk
but in reality the offset to the Y in the 'true' hand
does not need to exist: https://alive2.llvm.org/ce/z/MNQ7DZ
https://alive2.llvm.org/ce/z/S2pMQD
To catch that, instead of computing the Y's in both
hands and checking their equality, compute Y and C,
and check that C is 0 or 1.
Roman Lebedev [Fri, 11 Feb 2022 12:25:47 +0000 (15:25 +0300)]
[NFC][SCEV] `createNodeForSelectOrPHIInstWithICmpInstCond()`: dedup eq/ne pred handling
Roman Lebedev [Fri, 11 Feb 2022 15:02:47 +0000 (18:02 +0300)]
[NFC][SCEV] Add test more tests for umin_seq recognition
Roman Lebedev [Fri, 11 Feb 2022 12:22:12 +0000 (15:22 +0300)]
[NFC][SCEV] Add some tests for select->umax recognition
Apparently we didn't have any tests for that codepath?
David Green [Fri, 11 Feb 2022 18:57:18 +0000 (18:57 +0000)]
[X86] Replace X86ISD::AVG with generic ISD::AVGCEILU
Pulled out of D106237, this replaces the X86ISD::AVG DAG node with the
generic ISD::AVGCEILU. It doesn't remove the detectAVGPattern method,
but the extra generic ISel matching does alter the existing test.
Differential Revision: https://reviews.llvm.org/D119073
Florian Mayer [Thu, 10 Feb 2022 23:57:47 +0000 (15:57 -0800)]
[hwasan] keep debug intrinsicts in AllocaInfo.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D119498
Peter Steinfeld [Thu, 10 Feb 2022 03:46:34 +0000 (19:46 -0800)]
[flang] Allow mixed association of procedure pointers and targets
Section 10.2.2.4, paragraph 3 states that a procedure pointer with an explicit
interface must have the same characteristics as its target. Previously, we
interpreted this as disallowing such pointers to point to procedures with
implicit interfaces. But several other compilers allow this.
We make an exception for the case where the explicit interface cannot be
called via an implicit interface.
This change makes us allow this, also
Differential Revision: https://reviews.llvm.org/D119404
Peter Kasting [Fri, 11 Feb 2022 18:45:58 +0000 (13:45 -0500)]
[lld/coff] Make lld-link work in a non-MSVC shell, add /winsysroot:
Makes lld-link work in a non-MSVC shell by autodetecting MSVC toolchain. Also
adds support for /winsysroot and a few other switches.
All this is done by refactoring to share code with clang-cl's existing support
for the same.
Differential Revision: https://reviews.llvm.org/D118070
Arthur Eubanks [Fri, 11 Feb 2022 18:51:52 +0000 (10:51 -0800)]
[gn build] Manually port
c7eb84634519e6497
Since the bot is broken due to hwasan issues, it's not auto updating the file lists.
Florian Mayer [Thu, 3 Feb 2022 19:56:42 +0000 (11:56 -0800)]
[nfc] [hwasan] factor out logic to collect info about stack
this is the first step in unifying some of the logic between hwasan and
mte stack tagging. this only moves around code, changes to converge
different implementations of the same logic follow later.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D118947
Paul Robinson [Fri, 11 Feb 2022 18:43:22 +0000 (10:43 -0800)]
[RGT] Refactor environment-specific checks to use GTEST_SKIP()
This allows using GTEST_SKIP() to identify un-executed tests.
Found by the Rotten Green Tests project.
Paul Robinson [Fri, 11 Feb 2022 18:42:38 +0000 (10:42 -0800)]
[RGT] Refactor Windows-specific checks into their own test
This allows using GTEST_SKIP() to identify un-executed tests.
Found by the Rotten Green Tests project.
Paul Robinson [Fri, 11 Feb 2022 18:41:24 +0000 (10:41 -0800)]
[RGT] Exercise both paths through a test
BitcastToGEP had an opaque/typed pointer decision point, make sure it
exercises both sides.
Found by the Rotten Green Tests project.
Johannes Doerfert [Fri, 11 Feb 2022 18:22:51 +0000 (12:22 -0600)]
[OpenMP][FIX] The `llvm.amdgcn.s.barrier` is actually not aligned
If we assume `llvm.amdgcn.s.barrier` is aligned we may remove it and
cause OpenMP GPU applications on the AMD GPU to be stuck or wrongly
synchronized.
Reported by Carlo Bertolli.
Arthur Eubanks [Fri, 11 Feb 2022 18:39:26 +0000 (10:39 -0800)]
[clang][OpaquePtr] Remove call to getPointerElementType() in CodeGenModule::GetAddrOfGlobalTemporary()
Dmitry Vyukov [Fri, 11 Feb 2022 15:11:23 +0000 (16:11 +0100)]
sanitizer_common: make internal/external headers compatible
This is a follow up to
4f3f4d672254
("sanitizer_common: fix __sanitizer_get_module_and_offset_for_pc signature mismatch")
which fixes a similar problem for msan build.
I am getting the following error compiling a unit test for code that
uses sanitizer_common headers and googletest transitively includes
sanitizer interface headers:
In file included from third_party/gwp_sanitizers/singlestep_test.cpp:3:
In file included from sanitizer_common/sanitizer_common.h:19:
sanitizer_interface_internal.h:41:5: error: typedef redefinition with different types
('struct __sanitizer_sandbox_arguments' vs 'struct __sanitizer_sandbox_arguments')
} __sanitizer_sandbox_arguments;
common_interface_defs.h:39:3: note: previous definition is here
} __sanitizer_sandbox_arguments;
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D119546
Philip Reames [Fri, 11 Feb 2022 18:37:39 +0000 (10:37 -0800)]
[PSE] Allow duplicate predicates in debug output
This lets us avoid redundant implication work in the constructor of SCEVUnionPredicate which simplifies an upcoming change. If we're actually building a predicate via PSE, that goes through addPredicate which does include the implication check.
Simon Pilgrim [Fri, 11 Feb 2022 18:38:07 +0000 (18:38 +0000)]
[X86] combineVSelectToBLENDV - handle vselect(vXi1,A,B) -> blendv(sext(vXi1),A,B)
For pre-AVX512 targets, attempt to sign-extend a vXi1 condition mask to pass to a X86ISD::BLENDV node
Fixes Issue #53760
Stanislav Mekhanoshin [Fri, 11 Feb 2022 00:30:10 +0000 (16:30 -0800)]
[AMDGPU] Merge AMDGPULDSUtils into AMDGPUMemoryUtils
Differential Revision: https://reviews.llvm.org/D119502
David Green [Fri, 11 Feb 2022 18:28:56 +0000 (18:28 +0000)]
[ISel] Port AArch64 HADD and RHADD to ISel
This ports the aarch64 combines for HADD and RHADD over to DAG combine,
so that they can be used in more architectures (notably MVE in a
followup patch). They are renamed to AVGFLOOR and AVGCEIL in the
process, to avoid confusion with instructions such as X86 hadd. The code
was also rewritten slightly to remove the AArch64 idiosyncrasies.
The general pattern for a AVGFLOORS is
%xe = sext i8 %x to i32
%ye = sext i8 %y to i32
%a = add i32 %xe, %ye
%r = lshr i32 %a, 1
%t = trunc i32 %r to i8
An AVGFLOORU is equivalent with zext. Because of the truncate
lshr==ashr, as the top bits are not demanded. An AVGCEIL also includes
an extra rounding, so includes an extra add of 1.
Differential Revision: https://reviews.llvm.org/D106237
Dávid Bolvanský [Fri, 11 Feb 2022 18:22:51 +0000 (19:22 +0100)]
[AlwaysInliner] Respect noinline call site attribute
```
always_inline foo() { }
bar () {
noinline foo();
}
```
We should prefer call site attribute over attribute on decl. This is fix for AlwaysInliner, similar fix is needed for normal Inliner (follow up).
Related to https://reviews.llvm.org/D119061
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D119553
Reid Kleckner [Fri, 11 Feb 2022 18:20:10 +0000 (10:20 -0800)]
[CodeView] Match any backend version in the new test
This makes the test pass for any LLVM_VERSION_MAJOR/MINOR value. Vendors
override these, and they change every six months.
Nikolas Klauser [Fri, 11 Feb 2022 18:15:18 +0000 (19:15 +0100)]
[libc++] Remove __functional_base
Reviewed By: ldionne, Quuxplusone, #libc
Spies: Mordante, mgorny, libcxx-commits, arichardson, llvm-commits, arphaman
Differential Revision: https://reviews.llvm.org/D119439
Tim Northover [Fri, 11 Feb 2022 18:06:28 +0000 (18:06 +0000)]
Revert "StackProtector: ignore debug insts when splitting blocks."
This reverts commit
7605ca85f1a8e4e61e7de98856630d67da11aaae.
It caused an assertion failure in Fuschia.
Austin Kerbow [Fri, 11 Feb 2022 06:43:45 +0000 (22:43 -0800)]
[InferAddressSpaces] Fix assert on invalid cast ordering
If a cast is needed when replacing uses with newly created values, the
cast must be inserted after the instruction that defines the new value.
Fixes: SWDEV-321215
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D119524
Arthur Eubanks [Fri, 11 Feb 2022 17:52:44 +0000 (09:52 -0800)]
[CoroFrame][OpaquePtr] Remove getPointerElementType() call
Get it from the byval type instead.
Krzysztof Parzyszek [Fri, 11 Feb 2022 17:19:00 +0000 (09:19 -0800)]
[Hexagon] Add patterns for select(i1, Q, Q)
LLVM GN Syncbot [Fri, 11 Feb 2022 17:36:54 +0000 (17:36 +0000)]
[gn build] Port
31f9519d48c2
Matthias Springer [Fri, 11 Feb 2022 17:31:00 +0000 (02:31 +0900)]
[mlir][bufferize] Use rewriter instead of replacing all uses directly
This is important for compatibility with DialectConversion.
Craig Topper [Fri, 11 Feb 2022 05:33:08 +0000 (21:33 -0800)]
[RISCV] Insert VSETVLI at the end of a basic block if we didn't produce BlockInfo.Exit.
This is an alternative to D118667 that instead of fixing the store
to match phase 1, it tries to detect the mismatch with the expected
value at the end of the block. This inserts a vsetvli after the vse
to satisfy the requirement of the other basic block.
We still have serious design issues in the pass, that is going to
require some rethinking.
Differential Revision: https://reviews.llvm.org/D119518
Craig Topper [Fri, 11 Feb 2022 05:03:12 +0000 (21:03 -0800)]
Revert "[RISCV] Fix a vsetvli insertion bug involving loads/stores." and "[RISCC] Add missing words to comment. NFC"
This reverts commit
f943c58cae2480755cecdac5be832274f238df93.
and commit
7eb781072744b31a60e82b5a5903471032d4845f.
This introduced a new bug that appears to be easier to hit.
Differential Revision: https://reviews.llvm.org/D119517
Craig Topper [Thu, 10 Feb 2022 21:55:29 +0000 (13:55 -0800)]
[RISCV] Add test case for a vsetvli insertion bug found after D118667.
We're missing a vsetvli before a vse after a redsum in this test.
This appears to be because the vmv.s.x has a VL of 1, but did not
trigger a vsetvli because it is a scalar move op and any non-zero
VL would work. So it looked at it the predecessors and decided it was
that they all had a non-zero vl. Then the redsum was visited, it
also took the VL from the predecessors since the vmv.s.x and the 4
was found compatible.
Finally we visit the vse and it looks at the BBLocalInfo and sees
that is compatible because it contains a VL of 1 from the vmv.s.x,
the first instruction in the block. BBLocalInfo was not updated
when the vredsum was visited because BBLocalInfo was valid and no
vsetvli was generated.
I think fundamentally the vmv.s.x optimization has the same first
phase and third phase not matching problem that D118667 was trying
to fix for stores.
Differential Revision: https://reviews.llvm.org/D119516
Min-Yih Hsu [Mon, 6 Dec 2021 03:36:10 +0000 (11:36 +0800)]
[M68k] Adopt the new VarLenCodeEmitterGen for arithmetic instructions
This patch refactors all the existing M68k arithmetic instructions
to use the new VarLenCodeEmitterGen infrastructure.
This patch is tested by the existing MC test cases.
Note that one of the codegen tests needed to be updated because the
ordering of two equivalent instructions were switched.
Differential Revision: https://reviews.llvm.org/D115234
Min-Yih Hsu [Mon, 6 Dec 2021 03:01:17 +0000 (11:01 +0800)]
[TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure
Full write up:
https://gist.github.com/mshockwave/
66e98d099256deefc062633909bb7b5b
The existing CodeEmitterGen infrastructure is unable to generate encoder
function for ISAs with variable-length instructions. This patch
introduces a new infrastructure to support variable-length instruction
encoding, including a new TableGen syntax for writing instruction
encoding directives and a new TableGen backend component,
VarLenCodeEmitterGen, built on top of CodeEmitterGen.
Differential Revision: https://reviews.llvm.org/D115128
Jay Foad [Fri, 11 Feb 2022 14:07:15 +0000 (14:07 +0000)]
[TableGen][AMDGPU] Allow empty register classes
Remove ARTIFICIAL_VGPR which only existed to make VReg_1 not empty.
Differential Revision: https://reviews.llvm.org/D119552
Joe Loser [Thu, 10 Feb 2022 23:11:39 +0000 (18:11 -0500)]
[libc++] Remove unused include from ranges_swap_ranges.h
`ranges_swap_ranges.h` includes `<type_traits>` but does not use anything from
it. So, remove the include.
Differential Revision: https://reviews.llvm.org/D119491
Sebastian Neubauer [Fri, 11 Feb 2022 17:18:25 +0000 (18:18 +0100)]
[AMDGPU] Make enable-flat-scratch a subtarget feature
Use a subtarget feature instead of a command line argument to reduce
global state.
We want to enable flat scratch for graphics in some cases and this
doesn't work well with command line options.
Differential Revision: https://reviews.llvm.org/D119425
Sameer Sahasrabuddhe [Fri, 11 Feb 2022 05:13:41 +0000 (10:43 +0530)]
[AMDGPU] replace hostcall module flag with function attribute
The module flag to indicate use of hostcall is insufficient to catch
all cases where hostcall might be in use by a kernel. This is now
replaced by a function attribute that gets propagated to top-level
kernel functions via their respective call-graph.
If the attribute "amdgpu-no-hostcall-ptr" is absent on a kernel, the
default behaviour is to emit kernel metadata indicating that the
kernel uses the hostcall buffer pointer passed as an implicit
argument.
The attribute may be placed explicitly by the user, or inferred by the
AMDGPU attributor by examining the call-graph. The attribute is
inferred only if the function is not being sanitized, and the
implictarg_ptr does not result in a load of any byte in the hostcall
pointer argument.
Reviewed By: jdoerfert, arsenm, kpyzhov
Differential Revision: https://reviews.llvm.org/D119216
Julien Pages [Fri, 11 Feb 2022 17:00:09 +0000 (12:00 -0500)]
[AMDGPU] Add a new intrinsic to control fp_trunc rounding mode
Add a new llvm.fptrunc.round intrinsic to precisely control
the rounding mode when converting from f32 to f16.
Differential Revision: https://reviews.llvm.org/D110579
Florian Hahn [Fri, 11 Feb 2022 17:07:13 +0000 (17:07 +0000)]
[ConstraintElimination] Add test for #48253.
Test from https://github.com/llvm/llvm-project/issues/48253.
Hongtao Yu [Fri, 11 Feb 2022 05:55:19 +0000 (21:55 -0800)]
[CSSPGO] Do not recount callee samples when computing profile summary for nested CS profile.
When generating nested CS profile with all calling contexts of a function duplicated into a base profile under `--generate-merged-base-profiles`, do not recount callee samples when computing profile summary. This fixes the profile summary mismatch between flat cs profile and nested cs profile, for both extbinary and text format.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D119494
Geoffrey Martin-Noble [Fri, 11 Feb 2022 16:59:11 +0000 (08:59 -0800)]
[Bazel] Document continuous and pre-merge testing
Kai Nacke [Fri, 11 Feb 2022 15:24:50 +0000 (10:24 -0500)]
[SystemZ/z/OS] Add alias for XPLINK return
The XPLINK return `b 2(7)` has size 4 bytes, while the Linux return
`br 7` only has size 2 bytes. Thus a new alias is required to have correct
instruction byte count. It also fixes the conditional return code.
Reviewed By: uweigand
Differential Revision: https://reviews.llvm.org/D119437
Simon Pilgrim [Fri, 11 Feb 2022 16:51:36 +0000 (16:51 +0000)]
[X86] Move combineToExtendBoolVectorInReg before the select combines. NFC.
Avoid the need for a forward declaration.
Cleanup prep for Issue #53760
Mark de Wever [Wed, 9 Feb 2022 16:36:12 +0000 (17:36 +0100)]
[libc++][format] LWG-3648 format should not print bool with 'c'
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D119350
Mark de Wever [Wed, 9 Feb 2022 16:36:12 +0000 (17:36 +0100)]
[libc++][format] LWG-3654 basic_format_context::arg(size_t) should be noexcept
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D119349
Simon Pilgrim [Fri, 11 Feb 2022 16:39:56 +0000 (16:39 +0000)]
[X86] combineToExtendBoolVectorInReg - use explicit arguments. NFC.
Replace the *_EXTEND node with the raw operands, this will make it easier to use combineToExtendBoolVectorInReg for any boolvec extension combine.
Cleanup prep for Issue #53760
Mark de Wever [Wed, 2 Feb 2022 18:28:05 +0000 (19:28 +0100)]
[libc++][nfc] Add TEST_HAS_NO_CHAR8_T.
This avoids using an libc++ internal macro in our tests. This version
doesn't depend on the internal macro but redefines it.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D119460
LLVM GN Syncbot [Fri, 11 Feb 2022 16:20:57 +0000 (16:20 +0000)]
[gn build] Port
3b470d1ce992
Nikolas Klauser [Fri, 11 Feb 2022 12:11:57 +0000 (13:11 +0100)]
[libc++][ranges] Implement ranges::min_element
Implement ranges::min_element
Reviewed By: Quuxplusone, Mordante, #libc
Spies: miscco, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117025
LLVM GN Syncbot [Fri, 11 Feb 2022 16:11:07 +0000 (16:11 +0000)]
[gn build] Port
1e77b396ffe4
Nikita Popov [Fri, 11 Feb 2022 16:09:52 +0000 (17:09 +0100)]
[InstCombine] Check source element type in gep of phi of gep fold
Nikolas Klauser [Fri, 11 Feb 2022 16:01:58 +0000 (17:01 +0100)]
[libc++] Add ranges::in_fun_result
Add `ranges::in_fun_result`
Reviewed By: Quuxplusone, #libc, var-const
Spies: CaseyCarter, var-const, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D116974
OCHyams [Fri, 11 Feb 2022 15:45:07 +0000 (15:45 +0000)]
[dexter] Don't generate results files by default
Dexter saves various files to a new results directory each time it is run
(including when it's run by lit tests) and there isn't a way to opt-out. This
patch reconfigures the behaviour to be opt-in by removing the default
`--results-directory` location. Now results are only saved if
`--results-directory` is specified.
Reviewed By: jmorse
Differential Revision: https://reviews.llvm.org/D119545
Matt Arsenault [Wed, 9 Feb 2022 00:22:00 +0000 (19:22 -0500)]
InferAddressSpaces: Fix assert on inferred source for inttoptr/ptrtoint
If we had some source value we could infer an address space from that
went through a ptrtoint/inttoptr pair, this would fail since bitcast
can't change the address space.
Fixes issue 53665.
Nikita Popov [Fri, 11 Feb 2022 15:22:21 +0000 (16:22 +0100)]
[PHITransAddr] Check GEP source element type
It's not the same GEP if the source element type is different.
Simon Pilgrim [Fri, 11 Feb 2022 15:09:32 +0000 (15:09 +0000)]
[clang][sema] - remove CodeCompleter nullptr checks
All paths have already dereferenced the CodeCompleter pointer in the ResultBuilder constructor
Simon Pilgrim [Fri, 11 Feb 2022 15:08:31 +0000 (15:08 +0000)]
[clang][sema] ActOnExplicitInstantiation - remove Prev nullptr check
All paths have already dereferenced the Prev pointer
Simon Pilgrim [Fri, 11 Feb 2022 15:05:09 +0000 (15:05 +0000)]
[clang] RewriteModernObjC::SynthBlockInitExpr - remove block nullptr check
All paths have already dereferenced the block pointer
Jez Ng [Fri, 11 Feb 2022 15:06:38 +0000 (10:06 -0500)]
[lld-macho][nfc] Rename %no_fatal_warnings_lld in tests
... to use hyphens instead of underscores, making it consistent with
our other substitutions like %no-arg-lld and %lld-watchos.
Reviewed By: keith
Differential Revision: https://reviews.llvm.org/D119513
Dávid Bolvanský [Fri, 11 Feb 2022 14:49:06 +0000 (15:49 +0100)]
[clang] inheritance fix for nomerge attribute
Discussed here: https://reviews.llvm.org/D119061#3310822
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D119451
Anton Zabaznov [Fri, 11 Feb 2022 12:54:55 +0000 (15:54 +0300)]
[OpenCL] Adjust diagnostic for subgroup support.
OpenCL C 3.0 __opencl_c_subgroups feature is slightly different
then other equivalent features and extensions (fp64 and 3d image writes):
OpenCL C 3.0 device can support the extension but not the feature.
cl_khr_subgroups requires subgroup independent forward progress.
This patch adjusts the check which is used when translating language
builtins to check either the extension or feature is supported.
Reviewed By: Anastasia
Differential Revision: https://reviews.llvm.org/D118999
Haojian Wu [Fri, 11 Feb 2022 14:34:40 +0000 (15:34 +0100)]
[pseudo] NFC, fix some typos.
AndreyChurbanov [Fri, 11 Feb 2022 14:34:26 +0000 (17:34 +0300)]
[OpenMP] libomp: fix bug in implementation of distribute construct.
Fixed mistaken iterations distribution between different target regions.
Differential Revision: https://reviews.llvm.org/D118393
Anton Afanasyev [Fri, 11 Feb 2022 12:49:44 +0000 (15:49 +0300)]
[NFC][SLP] Set default parameter for Offset equal to zero
Marek Kurdej [Fri, 11 Feb 2022 14:15:18 +0000 (15:15 +0100)]
[clang-format] Avoid multiple calls to FormatToken::getNextNonComment(). NFC.
Marek Kurdej [Fri, 11 Feb 2022 13:19:59 +0000 (14:19 +0100)]
[clang-format] Mark FormatToken::getNextNonComment() nodiscard. NFC.