Florian Mayer [Wed, 16 Feb 2022 21:34:02 +0000 (13:34 -0800)]
[NFC] Fix order in global_symbols.txt.
I added posix_madvise out of order before.
Louis Dionne [Thu, 3 Feb 2022 15:57:49 +0000 (10:57 -0500)]
[libc++] Refactor the Apple build scripts
This patch upstreams some changes we've made internally to how we're
building the libc++ dylib on Apple platforms. The goal is still to
eventually get rid of `apple-install-libcxx.sh` entirely and have a
proper way to mirror what we do internally with just the normal CMake
configuration.
Differential Revision: https://reviews.llvm.org/D118912
Louis Dionne [Wed, 16 Feb 2022 15:44:39 +0000 (10:44 -0500)]
[libc++abi] Bump the libc++abi version and add it to the post-release list
Differential Revision: https://reviews.llvm.org/D119947
Roman Lebedev [Wed, 16 Feb 2022 20:39:26 +0000 (23:39 +0300)]
[NFC][PhaseOrdering] spurious-peeling.ll: also test -O1/-O2 results
William S. Moses [Wed, 16 Feb 2022 20:29:42 +0000 (23:29 +0300)]
[NFC][PhaseOrdering] Precommit tests from D119965
Aaron Ballman [Wed, 16 Feb 2022 21:09:36 +0000 (16:09 -0500)]
Use functions with prototypes when appropriate; NFC
A significant number of our tests in C accidentally use functions
without prototypes. This patch converts the function signatures to have
a prototype for the situations where the test is not specific to K&R C
declarations. e.g.,
void func();
becomes
void func(void);
This is the twelfth batch of tests being updated (the end may be in
sight soon though).
Marek Kurdej [Wed, 16 Feb 2022 21:06:04 +0000 (22:06 +0100)]
[clang-format] Fall through and avoid an unnecessary check. NFC.
Florian Mayer [Wed, 16 Feb 2022 21:04:37 +0000 (13:04 -0800)]
Fix build_symbolizer.sh.
We now use posix_madvise, so we need to allow this symbol.
Differential Revision: https://reviews.llvm.org/D119970
Johannes Doerfert [Mon, 14 Feb 2022 23:19:33 +0000 (17:19 -0600)]
[OpenMP][FIX] Eliminate race on the IsSPMD global
The `IsSPMD` global can only be read by threads other than the main
thread *after* initialization is complete. To allow usage of
`mapping::getBlockSize` before initialization is done, we can pass the
`IsSPMD` state explicitly. This is similar to other APIs that take
`IsSPMD` explicitly to avoid such a race, e.g.,
`mapping::isInitialThreadInLevel0(IsSPMD)`
Fixes https://github.com/llvm/llvm-project/issues/53857
Johannes Doerfert [Wed, 16 Feb 2022 17:05:09 +0000 (11:05 -0600)]
[Attributor][FIX] Pipe UsedAssumedInformation through more interfaces
`UsedAssumedInformation` is a return argument utilized to determine what
information is known. Most APIs used it already but
`genericValueTraversal` did not. This adds it to `genericValueTraversal`
and replaces `AllCallSitesKnown` of `checkForAllCallSites` with the
commonly used `UsedAssumedInformation`.
This was supposed to be a NFC commit, then the test change appeared.
Turns out, we had one user of `AllCallSitesKnown` (AANoReturn) and the
way we set `AllCallSitesKnown` was wrong as we ignored the fact some
call sites were optimistically assumed dead. Included a dedicated test
for this as well now.
Fixes https://github.com/llvm/llvm-project/issues/53884
Jessica Paquette [Wed, 16 Feb 2022 19:59:57 +0000 (11:59 -0800)]
[MachineOutliner] NFC: Update LRU stuff for RISCV
I missed it in my grep. Fixes broken buildbot.`
Shafik Yaghmour [Wed, 16 Feb 2022 19:51:50 +0000 (11:51 -0800)]
[LLDB] Replace use of double underscore in identifiers
Identifiers with __ anywhere are reserved. I picked this up via the
bugprone-reserved-identifier clang-tidy check but -Wreserved-identifier will
also flag these uses as well.
Differential Revision: https://reviews.llvm.org/D119915
Med Ismail Bennani [Wed, 16 Feb 2022 19:43:53 +0000 (11:43 -0800)]
[lldb/crashlog] Fix exception signal parsing
In some cases, it can happen that crashlogs don't have any signal in
the exception, which causes the parser to crash.
This fixes the parsing by checking if the `signal` field is in the
`exception` dictionary before trying to access it.
rdar://
84552251
Differential Revision: https://reviews.llvm.org/D119504
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Wed, 16 Feb 2022 19:43:44 +0000 (11:43 -0800)]
[lldb/crashlog] Add CrashLogScriptedProcess & remove interactive mode
This patch introduces a new type of ScriptedProcess: CrashLogScriptedProcess.
It takes advantage of lldb's crashlog parsers and Scripted Processes to
reconstruct a static debugging session with symbolicated stackframes, instead
of just dumping out everything in the user's terminal.
The crashlog command also has an interactive mode that only provide a
very limited experience. This is why this patch removes all the logic
for this interactive mode and creates CrashLogScriptedProcess instead.
This will fetch and load all the libraries that were used by the crashed
thread and re-create all the frames artificially.
rdar://
88721117
Differential Revision: https://reviews.llvm.org/D119501
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Fri, 11 Feb 2022 00:12:59 +0000 (16:12 -0800)]
[lldb/API] Add a way to check if the CommandInterpreter is interactive
This patch adds the ability for the user to check if the command
interpreter's IOHandler is interactive.
Differential Revision: https://reviews.llvm.org/D119499
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Thu, 10 Feb 2022 03:04:21 +0000 (19:04 -0800)]
[lldb/Plugin] Add artificial stackframe loading in ScriptedThread
This patch adds the ability for ScriptedThread to load artificial stack
frames. To do so, the interpreter instance can create a list that will
contain the frame index and its pc address.
Then, when the Scripted Process plugin stops, it will refresh its
Scripted Threads state by invalidating their register context and load
to list from the interpreter object and reconstruct each frame.
This patch also removes all of the default implementation for
`get_stackframes` from the derived ScriptedThread classes, and add the
interface code for the Scripted Thread Interface.
rdar://
88721095
Differential Revision: https://reviews.llvm.org/D119388
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Thu, 10 Feb 2022 00:24:39 +0000 (16:24 -0800)]
[lldb/Plugins] Clean-up ScriptedProcess python script (NFC)
This patch removes the `my_scripted_process.py` blueprint since it's not
used anymore.
The patch also updates the base ScriptedProcess and ScriptedThread
initializers to automatically initialize convinience variables, to
access debugger from the ScriptedProcess, access the SBProcess and
ScriptedProcess object from a ScriptedThread instance.
Differential Revision: https://reviews.llvm.org/D119386
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Jessica Paquette [Wed, 16 Feb 2022 19:28:14 +0000 (11:28 -0800)]
[MachineOutliner] NFC: Hide LRU-related stuff behind helper functions
It's not particularly user-friendly to have to call `initLRU` everywhere. Also,
it wasn't particularly great that the LRU for registers used in a sequence was
also initialized by `initLRU`.
This patch hides this stuff behind some helper functions:
* `isAvailableAcrossAndOutOfSeq`
* `isAnyUnavailableAcrossOrOutOfSeq`
* `isAvailableInsideSeq`
This allows the user to avoid calling `initLRU` explicitly. Also, it allows
us to separate initializing the used-in-sequence LRU from the main LRU.
Since both ARM and AArch64 check LR liveness in `insertOutlinedCall`, this
refactor requires that we de-const the Candidate there.
Some other quality-of-code improvements:
* LRUs in outliner::Candidate now have more descriptive names
* Use `Register` instead of `unsigned` in some places
* Improve readability in some places by using ranges rather than `std::for_each`
This is a preparatory commit for a larger compile time related change for the
AArch64 outliner.
David Blaikie [Wed, 16 Feb 2022 19:18:31 +0000 (11:18 -0800)]
DebugInfo: fix a couple of spurious spaces in simplified template name rebuilding
Valentin Clement [Wed, 16 Feb 2022 19:27:23 +0000 (20:27 +0100)]
[flang] Handle lowering arguments in subroutine and function
This patch adds infrsatrcutrue to be able to lower
arguments in functions and subroutines.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D119957
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Roman Lebedev [Wed, 16 Feb 2022 18:57:04 +0000 (21:57 +0300)]
[NFC][SCEV] Recognize umin_seq when operand is zext'ed in zero-check
zext(umin(x,y)) == umin(zext(x),zext(y))
zext(x) == 0 -> x == 0
While it is not a very likely scenario, we probably should not expect
that instcombine already dropped such a redundant zext,
but handle directly. Moreover, perhaps there was no ZExtInst,
and SCEV somehow managed to pull out said zext out of the SCEV expression.
Roman Lebedev [Wed, 16 Feb 2022 18:46:39 +0000 (21:46 +0300)]
[NFC][SCEV] Recognize umin_seq when operand is zext'ed in umin but not in zero-check
zext(umin(x,y)) == umin(zext(x),zext(y))
zext(x) == 0 -> x == 0
Extra leading zeros do not affect the result of comparison with zero,
nor do they matter for the unsigned min/max,
so we should not be dissuaded when we find a zero-extensions,
but instead we should just skip it.
Roman Lebedev [Wed, 16 Feb 2022 18:31:40 +0000 (21:31 +0300)]
[NFC][SCEV] Add tests for umin_seq recognition with interfering zext's
Jacob Lambert [Wed, 16 Feb 2022 03:07:20 +0000 (19:07 -0800)]
Hoist getTotalNumVGPRs into AMDGPUBaseInfo for use in both codegen and MC
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D119912
Florian Mayer [Wed, 16 Feb 2022 00:10:00 +0000 (16:10 -0800)]
[HWASan] Improve dbg-value-tag-offset test.
Reviewed By: hctim
Differential Revision: https://reviews.llvm.org/D119961
Michael Kruse [Wed, 16 Feb 2022 17:56:25 +0000 (11:56 -0600)]
[polly] Match function definitions and header declarations. NFC.
Ensure that function definitions match their declrations in header
files, even if they have no effect on linking. This includes
1. Both have the same __isl_* annotations
2. Both use the same type alias
3. Remove unused declarations that have no definition
4. Use explicit polly namespace qualifier for definitions; generally,
the .cpp file should use at most an anon namespace region since
only symbols declared in the header file can be accessed from other
translation units anyway. For defintions that have been declared in
the header file, the explicit namespace qualifier ensures that both
match.
Lei Zhang [Wed, 16 Feb 2022 16:26:47 +0000 (11:26 -0500)]
[mlir][tensor] Add a pattern to split tensor.pad ops
This commit adds a pattern to wrap a tensor.pad op with
an scf.if op to separate the cases where we don't need padding
(all pad sizes are actually zeros) and where we indeed need
padding.
This pattern is meant to handle padding inside tiled loops.
Under such cases the padding sizes typically depend on the
loop induction variables. Splitting them would allow treating
perfect tiles and edge tiles separately.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D117018
Jonas Devlieghere [Wed, 16 Feb 2022 18:16:24 +0000 (10:16 -0800)]
[lldb] BreakpointResolver::CreateFromStructuredData Gardening (NFC)
- Use an early return.
- Check for error.Fail() instead of !error.Success().
- Check the resolver pointer before using instead of relying on the
error being set.
Jonas Devlieghere [Wed, 16 Feb 2022 18:01:04 +0000 (10:01 -0800)]
[lldb] Default initialize DWARFDebugMacroHeader
Default initialize the DWARFDebugMacroHeader to avoid returning a header
with uninitialized variables from DWARFDebugMacroHeader::ParseHeader.
Michał Górny [Tue, 15 Feb 2022 20:21:12 +0000 (21:21 +0100)]
[llvm] [bindings/OCaml] Remove unused dep on ounit2
Remove the dependency on ounit2 and the relevant lit code. It seems
that ounit2 is not used at all and all OCaml binding tests pass without
it installed.
Thanks for Shiwei Weng and Josh Berdine for bringing this to
my attention.
Differential Revision: https://reviews.llvm.org/D119884
Michał Górny [Fri, 11 Feb 2022 11:48:31 +0000 (12:48 +0100)]
[libcxxabi] [test] Depend on unwind only if available
When building libcxxabi via LLVM_ENABLE_RUNTIMES=libcxxabi the CMake
invocation fails because of missing "unwind" target. However,
if the extraneous dependency is removed, the library builds just fine
against installed libunwind and tests work fine. To fix this,
add the dependency only if the target actually exists.
Differential Revision: https://reviews.llvm.org/D119538
Arthur Eubanks [Wed, 16 Feb 2022 17:32:45 +0000 (09:32 -0800)]
[test] Mark archive-as-start-lib.s as unsupported on Windows
gnuwin32 tail does not support the `tail -c +9` syntax.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D119956
Kevin P. Neal [Wed, 16 Feb 2022 18:10:14 +0000 (13:10 -0500)]
Add an include that is required on some hosts. This should fix the bot
failures.
Haowei Wu [Mon, 14 Feb 2022 18:42:18 +0000 (10:42 -0800)]
[ifs] Add the invalid STRSZ test to llvm-ifs
This patch adds an addition test to test llvm-ifs's behavior when
DT_STRSZ value from .dynamic is invalid
Differential Revision: https://reviews.llvm.org/D119741
Nico Weber [Wed, 16 Feb 2022 17:56:02 +0000 (12:56 -0500)]
[gn build] (semi-manually) port
f87aa19be644
Louis Dionne [Mon, 14 Feb 2022 18:41:09 +0000 (13:41 -0500)]
[libc++] Move everything related solely to _LIBCPP_ASSERT to its own file
This is the first step towards disentangling the debug mode and assertions
in libc++. This patch doesn't make any functional change: it simply moves
_LIBCPP_ASSERT-related stuff to its own file so as to make it clear that
libc++ assertions and the debug mode are different things. Future patches
will make it possible to enable assertions without enabling the debug
mode.
Differential Revision: https://reviews.llvm.org/D119769
Fangrui Song [Wed, 16 Feb 2022 17:40:55 +0000 (09:40 -0800)]
[ELF][test] Add --undefine-glob test to lto/duplicated.ll
Kevin P. Neal [Mon, 14 Feb 2022 16:49:43 +0000 (11:49 -0500)]
[FPEnv][FMF] Move helper function to header, move fast math flags to new include file.
In a prior review I was asked to move the helper function canIgnoreSNaN()
out to FPEnv.h. This wasn't possible at the time because that function
needs the fast math flags, and including them includes lots of other stuff
that isn't needed.
This patch moves the fast math flags out into a new FMF.h file unchanged,
and moves the helper function out to FPEnv.h also unchanged. This ticket
only moves code around.
Differential Revision: https://reviews.llvm.org/D119752
Rashmi Mudduluru [Mon, 14 Feb 2022 19:09:43 +0000 (11:09 -0800)]
Reverting
ce420820c815e806bab9c5f17cb3b829a616548a because it fails expensive checks
Craig Topper [Wed, 16 Feb 2022 17:13:32 +0000 (09:13 -0800)]
[RISCV] Improve lowering of SHL_PARTS/SRL_PARTS/SRA_PARTS.
Part of the shift lowering creates a (sub XLEN-1, ShAmt). When this
value is used we know that ShAmt is [0..XLEN-1]. Since XLEN is a power
of 2 we can replace the sub with an xor. This allows us to use XORI
instead of LI+SUB.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D119411
Craig Topper [Wed, 16 Feb 2022 17:13:01 +0000 (09:13 -0800)]
[SelectionDAG] Add SPLAT_VECTOR to SelectionDAG::isConstantFPBuildVectorOrConstantFP.
Matches what is done for the int version.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D119793
Sanjay Patel [Wed, 16 Feb 2022 17:02:03 +0000 (12:02 -0500)]
[InstCombine] add tests for min/max reassociation; NFC
D119851
Christopher Di Bella [Tue, 17 Aug 2021 20:23:22 +0000 (20:23 +0000)]
[llvm-libgcc] initial commit
Note: the term "libgcc" refers to the all of `libgcc.a`, `libgcc_eh.a`,
and `libgcc_s.so`.
Enabling libunwind as a replacement for libgcc on Linux has proven to be
challenging since libgcc_s.so is a required dependency in the [Linux
standard base][5]. Some software is transitively dependent on libgcc
because glibc makes hardcoded calls to functions in libgcc_s. For example,
the function `__GI___backtrace` eventually makes its way to a [hardcoded
dlopen to libgcc_s' _Unwind_Backtrace][1]. Since libgcc_{eh.a,s.so} and
libunwind have the same ABI, but different implementations, the two
libraries end up [cross-talking, which ultimately results in a
segfault][2].
To solve this problem, libunwind needs to build a “libgcc”. That is, link
the necessary functions from compiler-rt and libunwind into an archive
and shared object that advertise themselves as `libgcc.a`, `libgcc_eh.a`,
and `libgcc_s.so`, so that glibc’s baked calls are diverted to the
correct objects in memory. Fortunately for us, compiler-rt and libunwind
use the same ABI as the libgcc family, so the problem is solvable at the
llvm-project configuration level: no program source needs to be edited.
Thus, the end result is for a user to configure their LLVM build with a
flag that indicates they want to archive compiler-rt/unwind as libgcc.
We achieve this by compiling libunwind with all the symbols necessary
for compiler-rt to emulate the libgcc family, and then generate symlinks
named for our "libgcc" that point to their corresponding libunwind
counterparts.
We alternatively considered patching glibc so that the source doesn't
directly refer to libgcc, but rather _defaults_ to libgcc, so that a
system preferring compiler-rt/libunwind can point to these libraries
at the config stage instead. Even if we modified the Linux standard
base, this alternative won't work because binaries that are built using
libgcc will still end up having crosstalk between the differing
implementations.
This problem has been solved in this manner for [FreeBSD][3], and this
CL has been tested against [Chrome OS][4].
[1]: https://github.com/bminor/glibc/blob/master/sysdeps/arm/backtrace.c#L68
[2]: https://bugs.chromium.org/p/chromium/issues/detail?id=1162190#c16
[3]: https://github.com/freebsd/freebsd-src/tree/main/lib/libgcc_s
[4]: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2945947
[5]: https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/libgcc-s.html
Differential Revision: https://reviews.llvm.org/D108416
Jonas Devlieghere [Wed, 16 Feb 2022 16:58:38 +0000 (08:58 -0800)]
[lldb] Fix memory leak in CommandObjectType
Avoid leaking the ScriptAddOptions or SynthAddOptions when we return
early because of an empty type name.
Louis Dionne [Wed, 16 Feb 2022 16:59:32 +0000 (11:59 -0500)]
[runtimes] Move warning messages for FOO_SYSROOT & friends above their default value
Otherwise, the warnings always trigger.
Jameson Nash [Fri, 11 Feb 2022 21:42:37 +0000 (16:42 -0500)]
clang-analyzer plugins require LLVM_ENABLE_PLUGINS also
The clang-analyzer plugins are not linked to a particular tool, so they
can only be compiled if plugins are broadly supported. We could opt
instead to decide whether to link them to specifically against clang or
with undefined symbols, depending on the value of LLVM_ENABLE_PLUGINS,
but we do not currently expect there to be a use case for that rather
niche configuration.
Differential Revision: https://reviews.llvm.org/D119591
Nathan Sidwell [Wed, 16 Feb 2022 16:03:24 +0000 (08:03 -0800)]
[demangler] Fix build breakage
The copy and pristine versions of Utility diverged and one didn't
include <algorithm>. As that's a rather large header, let's just open
code the comparisons.
Reviewed By:
Differential Revision: https://reviews.llvm.org/
Joseph Huber [Wed, 16 Feb 2022 16:53:31 +0000 (11:53 -0500)]
Revert "[OpenMP] Pass AMDGPU math libraries into the linker wrapper"
This hits an assertion in the linker wrapper. Revert for now, will fix
later.
This reverts commit
61fb260d9d8c26a61a8dfd64e94d51f2c9a06830.
Dmitry Preobrazhensky [Wed, 16 Feb 2022 16:43:19 +0000 (19:43 +0300)]
[AMDGPU][MC][GFX10] Added an alias for HW_REG_HW_ID1
Enabled HW_REG_HW_ID as an alias for HW_REG_HW_ID1. This is required for compatibility with existing code.
Differential Revision: https://reviews.llvm.org/D119939
Joseph Huber [Tue, 15 Feb 2022 14:57:54 +0000 (09:57 -0500)]
[OpenMP] Pass AMDGPU math libraries into the linker wrapper
This patch passes in the AMDPGU math libraries to the linker wrapper.
The wrapper already handles linking OpenMP bitcode libraries via the
`--target-library` option. This should be sufficient to link in math
libraries for the accompanying architecture.
Fixes #53526.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D119841
Adrian Prantl [Tue, 15 Feb 2022 16:23:16 +0000 (08:23 -0800)]
Darwin: introduce a global override for debug prefix map entries.
This patch adds a new Darwin clang driver environment variable in the
spirit of RC_DEBUG_OPTIONS, called RC_DEBUG_PREFIX_MAP, which allows a
meta build tool to add one additional -fdebug-prefix-map entry without
the knowledge of the build system.
rdar://
85224675
Differential Revision: https://reviews.llvm.org/D119850
Louis Dionne [Wed, 16 Feb 2022 16:23:48 +0000 (11:23 -0500)]
[libc++][ci] Allow updating packages and config files on macOS CI nodes
Lei Huang [Wed, 16 Feb 2022 15:36:04 +0000 (09:36 -0600)]
[PowerPC] Rename PPCInstrPrefix.td to PPCInstrP10.td
Lei Zhang [Wed, 16 Feb 2022 15:28:51 +0000 (10:28 -0500)]
[mlir][linalg] Add control to pad-slice swap pattern
The pad-slice swap pattern generates `scf.if` and `tensor.generate`
to guard against zero-sized slices if it cannot prove the slice is
always non-zero. This is safe but quite conservative. It can be
unnecessary for cases where we know by problem definition such cases
does not exist, even if with dynamic shaped ops or unknown tile/slice
sizes, e.g., convolution padding size = 1 with kernel dim size = 3.
So this commit introduces a control to the pattern to specify
whether to generate the if constructs to handle such cases better,
given that once the if constructs is materialized, it's very hard
to analyze and simplify.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D117017
Benjamin Kramer [Wed, 16 Feb 2022 13:52:53 +0000 (14:52 +0100)]
[mlir][MemRef] Lower memref.copy with an offset to memcpy
memcpy can handle them as long as they're contiguous.
Differential Revision: https://reviews.llvm.org/D119938
Arthur O'Dwyer [Mon, 14 Feb 2022 03:52:25 +0000 (22:52 -0500)]
[libc++] [test] Qualify calls to std::get(tuple). NFC.
It actually *is* important (for structured bindings) that `get(tuple)`
be ADL-able; but that's not the point of this test in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 03:44:23 +0000 (22:44 -0500)]
[libc++] [test] Qualify calls to std::rethrow_exception. NFC.
We shouldn't be calling `rethrow_exception` via ADL -- and neither should anybody
in the wild be calling it via ADL, so it's not like we need to test
this ADL ability of `rethrow_exception` in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 02:53:20 +0000 (21:53 -0500)]
[libc++] [test] Qualify calls to std::atomic_flag_{clear,test} functions. NFCI.
We shouldn't be calling these functions via ADL -- and neither should anybody
in the wild be calling it via ADL, so it's not like we need to test
the ADL ability of these functions in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 02:48:39 +0000 (21:48 -0500)]
[libc++] [test] Qualify calls to std::getline. NFCI.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 02:46:06 +0000 (21:46 -0500)]
[libc++] [test] Qualify calls to iomanip functions in std/input.output/iostream.format/. NFCI.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 01:36:36 +0000 (20:36 -0500)]
[libc++] [test] Qualify calls to iomanip functions in std/localization/. NFCI.
Reviewed as part of D119860.
Arthur O'Dwyer [Mon, 14 Feb 2022 01:09:41 +0000 (20:09 -0500)]
[libc++] [test] Qualify `prev` as `std::prev` in a lot of tests. NFCI.
We shouldn't be calling `prev` via ADL -- and neither should anybody
in the wild be calling it via ADL, so it's not like we need to test
this ADL ability of `prev` in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Sun, 13 Feb 2022 19:50:33 +0000 (14:50 -0500)]
[libc++] [test] Qualify `next` as `std::next` in a lot of tests. NFCI.
We shouldn't be calling `next` via ADL -- and neither should anybody
in the wild be calling it via ADL, so it's not like we need to test
this ADL ability of `next` in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Sun, 13 Feb 2022 19:58:27 +0000 (14:58 -0500)]
[libc++] [test] Qualify `move` as `std::move` in a lot of tests. NFCI.
We shouldn't be calling `move` via ADL -- and neither should anybody
in the wild be calling it via ADL, so it's not like we need to test
this ADL ability of `move` in particular.
Reviewed as part of D119860.
Arthur O'Dwyer [Tue, 15 Feb 2022 21:38:34 +0000 (16:38 -0500)]
[libc++] LWG2148, LWG2543: Enable std::hash<Enum> in C++03 and C++11.
Fixes #49601.
Differential Revision: https://reviews.llvm.org/D119891
Arthur O'Dwyer [Mon, 14 Feb 2022 01:45:23 +0000 (20:45 -0500)]
[libc++] [test] Remove `using std::any{,_cast}` from std/utilities/any/. NFCI.
Differential Revision: https://reviews.llvm.org/D119863
Arthur O'Dwyer [Mon, 14 Feb 2022 01:23:39 +0000 (20:23 -0500)]
[libc++] [test] Remove `using std::{make_,}optional` from the optional tests.
Drive-by remove some use of raw `new`, and expand test coverage a tiny bit.
Differential Revision: https://reviews.llvm.org/D119861
Philip Reames [Wed, 16 Feb 2022 15:55:35 +0000 (07:55 -0800)]
Precommit tests from D119844, expanded with additional coverage
Arthur O'Dwyer [Wed, 16 Feb 2022 15:41:44 +0000 (10:41 -0500)]
[clang] [test] [NFC] Eliminate some hard tabs in tests
"cxx2b-consteval-if.cpp" was showing up misindented.
Vladislav Khmelevsky [Wed, 16 Feb 2022 15:13:44 +0000 (18:13 +0300)]
[BOLT] Update dynamic relocations from section relocations
This patch changes patchELFAllocatableRelaSections from going through
old relocations sections and update the relocation offsets to emitting
the relocations stored in binary sections. This is needed in case we
would like to remove and add dynamic relocations during BOLT work and it
is used by golang support pass. Note: Currently we emit relocations in
the old sections, so the total number of them should be equal or less
of old number.
Testing: No special tests are neeeded, since this patch does not fix
anything or add new functionality (it only prepares to add). Every
PIC-compiled test binary will use this code and thus become a test.
But just in case the aarch64 dynamic relocations tests were added.
Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei
Reviewed By: maksfb
Differential Revision: https://reviews.llvm.org/D117612
Nikita Popov [Wed, 16 Feb 2022 15:29:10 +0000 (16:29 +0100)]
[LowerMemIntrinsics] Explicitly use i8 type in memmove lowering
By convention, memcpy/memmove intrinsics are always used with i8
pointers (though this is not enforced), so in practice this code
was always using an i8 type. Make that explicit.
Of course, i8 is not a very profitable choice, and this code could
be more performant by picking an appropriate larger type. But that
would require additional test coverage and correctness review, and
certainly shouldn't be a decision based on the pointer element type.
Louis Dionne [Tue, 15 Feb 2022 18:10:16 +0000 (13:10 -0500)]
[libc++] Pass -fcxx-modules during our modules builds
Otherwise, AppleClang ignores -fmodules entirely, so we are not actually
testing anything.
Differential Revision: https://reviews.llvm.org/D119862
Sven van Haastregt [Wed, 16 Feb 2022 15:12:23 +0000 (15:12 +0000)]
[OpenCL] Ensure atomic_init is guarded with extension
The named and generic address space overloads for atomic_init added
by
50f8abb9f40a ("[OpenCL] Add OpenCL 3.0 atomics to
-fdeclare-opencl-builtins", 2022-02-11) were not guarded by the
corresponding extensions.
Kevin P. Neal [Mon, 14 Feb 2022 18:53:42 +0000 (13:53 -0500)]
[FPEnv][InstSimplify] Fold fsub X, -0 ==> X, when we know X is not -0
Currently the fsub optimizations in InstSimplify don't know how to fold
X - -0.0 to X when we know X is not zero and the constrained intrinsics
are used. This adds the support.
This review is split out from D107285.
Differential Revision: https://reviews.llvm.org/D119746
Tue Ly [Tue, 25 Jan 2022 16:47:09 +0000 (11:47 -0500)]
[libc] Improve hypotf performance with different algorithm correctly rounded to all rounding modes.
Algorithm for hypotf: compute (a*a + b*b) in double precision, then use Dekker's algorithm to find the rounding error, and then correcting it after taking its square-root.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D118157
Louis Dionne [Tue, 15 Feb 2022 13:18:38 +0000 (08:18 -0500)]
[runtimes] Deprecate FOO_SYSROOT & friends
As suggested in https://reviews.llvm.org/D112155.
Differential Revision: https://reviews.llvm.org/D119836
Peter Kasting [Wed, 16 Feb 2022 14:20:03 +0000 (09:20 -0500)]
Reland: Make lld-link work in a non-MSVC shell, add /winsysroot:
This relands
73e585e44d (and
0574b5fc657451), with a fix for
the failing test (by using Optional<StringRef>s instead of
making StringRef::empty() mean absence of value).
Differential Revision: https://reviews.llvm.org/D118070
Nikita Popov [Wed, 16 Feb 2022 13:59:42 +0000 (14:59 +0100)]
[CGBuilder] Assert that CreateAddrSpaceCast does not change element type
Address space casts in general may change the element type, but
don't allow it in the method working on Address, so we can
preserve the element type.
CreatePointerBitCastOrAddrSpaceCast() still needs to be addressed.
Sanjay Patel [Wed, 16 Feb 2022 13:26:16 +0000 (08:26 -0500)]
[InstCombine] add test for min/max intrinsic reassociation; NFC
D119851
Florian Hahn [Wed, 16 Feb 2022 14:06:40 +0000 (14:06 +0000)]
[DSE] Fall back to CFG scan for unreachable terminators.
Blocks with UnreachableInst terminators are considered as root nodes in
the PDT. This pessimize DSE, if there are no aliasing reads from the
potentially dead store and the block with the unreachable terminator.
If any of the root nodes of the PDF has UnreachableInst as terminator,
fall back to the CFG scan, even the common dominator of all killing
blocks does not post-dominate the block with potentially dead store.
It looks like the compile-time impact for the extra scans is negligible.
https://llvm-compile-time-tracker.com/compare.php?from=
779bbbf27fe631154bdfaac7a443f198d4654688&to=
ac59945f1bec1c6a7d7f5590c8c69fd9c5369c53&stat=instructions
Fixes #53800.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D119760
Adrian Kuegel [Wed, 16 Feb 2022 13:55:11 +0000 (14:55 +0100)]
[Bazel] Update llvm-config.h to follow the typo fix.
Nikita Popov [Wed, 16 Feb 2022 13:38:03 +0000 (14:38 +0100)]
[MemCpyOpt] Fix broken check lines (NFC)
These are leftovers from when there were separate MSSA/non-MSSA
check lines.
Tim Northover [Wed, 16 Feb 2022 13:36:43 +0000 (13:36 +0000)]
Compiler-rt: build fp_mode.c for macho_embedded variants too.
It provides some functions needed by add/sub.
Kristof Beyls [Wed, 16 Feb 2022 13:15:04 +0000 (14:15 +0100)]
Fix 2 RestructuredText warnings.
Simon Pilgrim [Wed, 16 Feb 2022 12:26:18 +0000 (12:26 +0000)]
[DAG] computeKnownBits - add ISD::AVGCEILU handling
Expand the ISD::AVGCEILU to determine the known bits of the result.
First part of PR53622
Differential Revision: https://reviews.llvm.org/D119629
Marek Kurdej [Wed, 16 Feb 2022 12:54:55 +0000 (13:54 +0100)]
[clang-format] Add test for SpacesInLineCommentPrefix. NFC.
Fixes https://github.com/llvm/llvm-project/issues/52649.
This was already fixed in commit https://github.com/llvm/llvm-project/commit/
e967d97a35a93c883528a9672159edff05f5addb.
Anastasia Stulova [Wed, 16 Feb 2022 12:05:55 +0000 (12:05 +0000)]
[Docs][OpenCL] Update OpenCL 3.0 status in docs.
Reflect the latest development in clang docs.
Differential Revision: https://reviews.llvm.org/D119719
Nathan Sidwell [Tue, 25 Jan 2022 20:31:01 +0000 (12:31 -0800)]
[demangler] Reorder parseNestedName loop
parseNestedName's main loop allowed parsing a grammar that was more
flexible than the actual grammar. This refactors that to rule out
some more incorrect manglings.
1) The 'L' extension only applies to unqualified-name components, so
check it just there.
2) The 'M' suffix is, AFAICT, removed from the grammar. Rather than
eliminate it, let's parse it after we've parsed a component.
Added some additional bad mangling tests, which are now rejected.
I don't break the 'T' and 'D[tT]' cases out of the loop, even though
they can only appear at first position, as it seems simpler to just
check there is nothing SoFar.
Reviewed By: ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119542
Nathan Sidwell [Fri, 11 Feb 2022 16:20:28 +0000 (08:20 -0800)]
[clang] Itanium mangler constructors
The Itanium mangler constructors use both NSDMI and explicit member
construction for default values. This is confusing.
*) Use NSDMIs wherever possible
*) Use forwarding ctor for the nesting case with an
llvm::raw_null_ostream (and explicitly set NullOut flag in that ctor).
*) Copy the ModuleSubstitutions. This is a bug with no effect in the
current mangling, but not in the newer mangling.
Reviewed By: ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119550
Nemanja Ivanovic [Wed, 16 Feb 2022 11:56:25 +0000 (05:56 -0600)]
[ELF][test] Fix build break after
20bdd3e23263
The added run lines build a bitcode file for x86 and an object file
for whatever the default target is that is running the test. This
causes an incompatibility between the files.
Add the triple to the llvm-mc invocation.
Florian Hahn [Wed, 16 Feb 2022 11:35:14 +0000 (11:35 +0000)]
[MemCpyOpt] Add tests with incorrect memcpy->byval forwarding.
Add a few test cases with clobbers (writes and lifetime.end) that should
prevent memcpy->byval forwarding, but those clobbers are missed at the
moment.
Andrzej Warzynski [Mon, 14 Feb 2022 12:18:14 +0000 (12:18 +0000)]
[flang] Fix `LoweringBridge::validModule`
This patch updates `validModule` not to use `getModule`. `getModule`
will dereference `module`, but that will lead to a seg-fault if `module`
is a `nullptr`.
Differential Revision: https://reviews.llvm.org/D119705
Shengchen Kan [Wed, 16 Feb 2022 04:43:08 +0000 (12:43 +0800)]
[Debugify] Mark mir-check-debugify change nothing of input
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D119914
Pavel Labath [Wed, 16 Feb 2022 10:16:36 +0000 (11:16 +0100)]
[lldb] Enable TestThreadStepOut on linux
After applying the same for as in TestThreadBacktraceRepeat, the test
appears to pass reliably. The skip decorator was added many years ago,
so it's not clear whether this is what caused it to hang.
Sven van Haastregt [Wed, 16 Feb 2022 10:07:35 +0000 (10:07 +0000)]
[OpenCL] Guard atomic_double with cl_khr_int64_*
It is necessary to guard atomic_double type according to
https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_C.html#_footnotedef_54.
Platform that disable cl_khr_int64_base_atomics and
cl_khr_int64_extended_atomics will have compiling errors even if
atomic_double is not used.
Patch by Haonan Yang.
Differential Revision: https://reviews.llvm.org/D119398
Arlo Siemsen [Wed, 16 Feb 2022 09:53:00 +0000 (09:53 +0000)]
Add a case for Rust in LLDB's PDB reader
D115300 added Rust as a new PDB language type.
This change allows LLDB to recognize the new language type.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D119044
Balazs Benics [Wed, 16 Feb 2022 09:56:18 +0000 (10:56 +0100)]
[analyzer] Remove breaking RUN line in the test case
This is a followup for D118690.
I'm removing the offending RUN line, to resolve the build breakage:
https://lab.llvm.org/buildbot/#/builders/91/builds/3975/steps/8/logs/stdio
Exit Code: 1
Command Output (stderr):
--
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Analysis/analyze-function-guide.cpp:58:22:
error: CHECK-EMPTY2-NOT: excluded string found in input
// CHECK-EMPTY2-NOT: Every top-level function was skipped.
^
<stdin>:1:1: note: found here
Every top-level function was skipped.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Differential Revision: https://reviews.llvm.org/D118690
Sheng [Wed, 16 Feb 2022 09:29:22 +0000 (17:29 +0800)]
Revert "Revert "[M68k] Adopt VarLenCodeEmitter for control instructions""
This reverts commit
69a7d49de6a0368c0ba1aec4d8e2ced11c705c2f.
llvm/test/MC/M68k/Relaxations/branch.s needs disassembler support.
So I disabled it temporarily
Balazs Benics [Wed, 16 Feb 2022 09:33:21 +0000 (10:33 +0100)]
Revert "Revert "[analyzer] Prevent misuses of -analyze-function""
This reverts commit
620d99b7edc64ee87b1ce209f179305e6a919006.
Let's see if removing the two offending RUN lines makes this patch pass.
Not ideal to drop tests but, it's just a debugging feature, probably not
that important.
Sheng [Wed, 16 Feb 2022 09:08:34 +0000 (17:08 +0800)]
Revert "[M68k] Adopt VarLenCodeEmitter for control instructions"
This reverts commit
9ffd498fcbd92c6843b969bfa2a475aaacc54a5b.
This patch introduce regression on MC/M68k/Relaxations/branch.s