[RISCV] Add isCommutable=1 to some binary P extension instructions. (#175692)
This allows MachineCSE to commute these instructions if it would allow
CSE.
Remove caching from sysdataset plugin
Retrieving the underlying dataset name for the sysdataset path
is now only two syscalls (statx + statmount) instead of reading
the entire /proc/self/mountinfo contents and so this extra caching
actually hurting us now.
Rework system dataset migration to be less bad
This commit reworks how we migrate the system datasets so that
it's somewhat less racy and uses kernel APIs for this.
On migration:
1. build new mount tree in middleware run dir
2. sync data from old to new
3. move new under old
4. move old to middleware rundir
5. restart services
6. cleanup
[Metadata][profcheck] Handle identical MDNodes in getMergedProfMetadata
This fixes a bug where !prof metadata was dropped from SelectInsts when GVN simplified/merged them.
Guarded by -profcheck-disable-metadata-fixes. Exposed by the tests in
Transforms/SampleProfile.
[libc++][istream] Removed `[[nodiscard]]` from `peek()` (#175591)
Calling `peek()` after constructing a stream is something one can use to
make the stream ignore empty inputs:
```
#include <sstream>
int main() {
std::istringstream s;
s.peek();
while (s && !s.eof()) {
char c;
s >> c;
printf("not eof; read \'%c\' (%d)\n", c, c);
}
}
```
[2 lines not shown]
[llvm][utils] Make git-llvm-push set the skip-precommit-approval label (#174833)
skip-precommit-approval label is intended for simple PR that don't
require approval. To reduce the volume of notifications, label all PRs
created using the git-llvm-push script with the skip-precommit-approval
label.
Fixes #174825
[CodeGen][InlineSpiller] Add SubReg argument to loadRegFromStackSlot for subreg-reload (#175581)
This preparatory patch introduces an additional argument to the target hook
loadRegFromStackSlot. Ths is essential for targets to handle subregister-specific
reload in the future. See how this is used for AMDGPU target with PR #175002.
[Metadata][profcheck] Handle identical MDNodes in getMergedProfMetadata
This fixes a bug where !prof metadata was dropped from SelectInsts when GVN simplified/merged them.
Guarded by -profcheck-disable-metadata-fixes. Exposed by the tests in
Transforms/SampleProfile.
[Metadata][profcheck] Handle identical MDNodes in getMergedProfMetadata
This fixes a bug where !prof metadata was dropped from SelectInsts when GVN simplified/merged them.
Guarded by -profcheck-disable-metadata-fixes. Exposed by the tests in
Transforms/SampleProfile.
[UniformityAnalysis] Jump over reducible cycles when locating join blocks (#174938)
When locating the join blocks of a divergent block, the algorithm relies
on pseudo-edges from the header of a reducible cycle to the cycle exits.
This was missed in the actual traversal, producing unnecessary joins
inside the reducible cycle. This caused an assert in the included test,
which expected that if a join existed in a reducible cycle for a
divergent branch outside the cycle, then it must be header.
This fixes the reverted commit from #174117
[flang][CUDA] Apply implicit managed attribute when `-gpu=mem:managed` is used. (#175648)
When `-gpu=mem:managed` is used, allocatable arrays without explicit
CUDA data attributes are implicitly treated as managed. The
`-gpu=mem:managed` flag to enable this feature is currently only
supported in `bbc`.