[IR] Verify that VP !prof does not have duplicate prof values
Follows on #193077. We should not have duplicate values as they should
be merged before being moved into IR. Add this to the verifier so that
we can actually enforce this constraint.
Reviewers: david-xl, teresajohnson
Pull Request: https://github.com/llvm/llvm-project/pull/193083
[flang][OpenMP] Add diagnostic for bare DECLARE TARGET in invalid scopes (#198039)
The bare form of `!$omp declare target` (without arguments or clauses)
is only permitted in the specification part of a subroutine, function,
or interface body (OpenMP 5.2, section 7.8.2). Flang previously accepted
it silently in BLOCK DATA, PROGRAM, MODULE, SUBMODULE, and BLOCK
constructs.
This patch:
- Adds a semantic check rejecting the bare form outside Subprogram
scopes.
- Adds MpSubprogramStmt/EndMpSubprogramStmt scope tracking to avoid
false positives in separate module subprograms (MODULE PROCEDURE).
- Fixes pre-existing BlockConstruct scope tracking bugs: the Leave
handler was pushing instead of popping (stack corruption), and the
Enter handler used blockStmt.source which resolves to the parent
scope. Now uses endBlockStmt.source (walked inside the block scope
during name resolution) for correct BlockConstruct scope identity.
[4 lines not shown]
nfsd: Disable use of callbacks for NFSv4.0
Commit 71ac1ec5c9d9 disabled callbacks for the NFS
client for NFSv4.0. This patch does the same for
the NFSv4.0 server.
The only use for callbacks for NFSv4.0 is delegations
and delegations rarely work well for NFSv4.0 anyhow.
Therefore, this patch disables callbacks for the
NFSv4.0 server. This is the same behavior as
occurs when vfs.nfsd.issue_delegations is 0.
This change allowed the functions called
nfsrv_getclientipaddr() and nfsrv_getipnumber() to be
removed from the kernel.
(cherry picked from commit 457c621add0a531273ee27798c924c6aaeacc4c1)
sys/atomic.h: Nix const qualifiers on temporaries added in previous.
The temporaries aren't modified, so in principle const is correct,
but on some ports (notably, sparc) we pass pointers to them through
__UNVOLATILE which objects to the const qualifier:
> In file included from /home/source/ab/HEAD/src/lib/librump/../../sys/rump/librump/rumpkern/sleepq.c:28:
> /home/source/ab/HEAD/src/lib/librump/../../sys/rump/librump/rumpkern/sleepq.c: In function 'lwp_unlock_to':
> /home/source/ab/HEAD/src/lib/librump/../../sys/rump/../sys/cdefs.h:202:49: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
> 202 | #define __UNVOLATILE(a) ((void *)(unsigned long)(volatile void *)(a))
> | ^
> /home/source/ab/HEAD/src/lib/librump/../../sys/rump/../sys/atomic.h:448:30: note: in expansion of macro '__UNVOLATILE'
> 448 | __do_atomic_store(p, __UNVOLATILE(&v), sizeof(v))
> | ^~~~~~~~~~~~
> /home/source/ab/HEAD/src/lib/librump/../../sys/rump/../sys/atomic.h:495:9: note: in expansion of macro '__DO_ATOMIC_STORE'
> 495 | __DO_ATOMIC_STORE(__as_ptr, __as_val); \
> | ^~~~~~~~~~~~~~~~~
> /home/source/ab/HEAD/src/lib/librump/../../sys/rump/librump/rumpkern/sleepq.c:187:9: note: in expansion of macro 'atomic_store_release'
> 187 | atomic_store_release(&l->l_mutex, new);
[4 lines not shown]
[ELF] Fix imprecise --why-live message for exported symbols (#198139)
The "; may interpose" suffix is imprecise: a symbol is preserved because
it is exported into the dynamic symbol table, regardless of whether it
is interposable (preemptible).
Fix #192035 and add a test (previously uncovered)
[FileCheck] Refactor -dump-input test
This patch refactors `llvm/test/FileCheck/dump-input/annotations.txt`
to improve maintainability and coverage and to prepare for the
upcoming implementation of search range annotations.
Lit substitutions
=================
The test repeats the same basic set of RUN lines *many* times. This
patch encapsulates those in lit substitutions to improve
maintainability. By doing so, it also helps to ensure more consistent
coverage of all cases and thus slightly expands coverage.
-strict-whitespace
==================
Via those substitutions, this patch adds `-strict-whitespace`
throughout the test, and it drops the initial `-strict-whitespace`
[27 lines not shown]