SuccessChanges

Summary

  1. [OpenMP] Add Missing Runtime Call for Globalization Remarks (details)
  2. [PowerPC] Put the CR field in low bits of GRC during copying CRRC to GRC. (details)
  3. CodeGen: Fix livein calculation in MachineBasicBlock splitAt (details)
  4. Have kernel binary scanner load dSYMs as binary+dSYM if best thing found (details)
  5. [AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt (details)
  6. [gvn] Handle a corner case w/vectors of non-integral pointers (details)
  7. [SCEV] Limited support for unsigned preds in isImpliedViaOperations (details)
Commit 82453e759c77941cf2281ade79fb9b945b7e9458 by jhuber6
[OpenMP] Add Missing Runtime Call for Globalization Remarks

Summary:
Add a missing runtime call to perform data globalization checks.

Reviewers: jdoerfert

Subscribers: guansong hiraditya llvm-commits sstefan1 yaxunl

Tags: #LLVM #OpenMP

Differential Revision: https://reviews.llvm.org/D88621
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/test/Transforms/OpenMP/globalization_remarks.ll
Commit c4690b007743d2f564bc1156fdbdbcaad2adddcc by esme.yi
[PowerPC] Put the CR field in low bits of GRC during copying CRRC to GRC.

Summary: How we copying the CRRC to GRC is using a single MFOCRF to copy the contents of CR field n (CR bits 4×n+32:4×n+35) into bits 4×n+32:4×n+35 of register GRC. That’s not correct because we expect the value of destination register equals to source so we have to put the the contents of CR field in the lowest 4 bits. This patch adds a RLWINM after MFOCRF to achieve that.
The problem came up when adding builtins for xvtdivdp, xvtdivsp, xvtsqrtdp, xvtsqrtsp, as posted in D88278. We need to move the outputs (in CR register) to GRC. However outputs of these instructions may not in a fixed CR# register, so we can’t directly add a rotation instruction in the .td patterns, but need to wait until the CR register is determined. Then we confirmed this should be a bug in POST-RA PSEUDO PASS.

Reviewed By: nemanjai, shchenz

Differential Revision: https://reviews.llvm.org/D88274
The file was modifiedllvm/test/CodeGen/PowerPC/htm-ttest.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrHTM.td
Commit 5136f4748a2b3302da581f6140ca453bb37f11e9 by carl.ritson
CodeGen: Fix livein calculation in MachineBasicBlock splitAt

Fix and simplify computation of liveins for new block.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D88535
The file was modifiedllvm/test/CodeGen/AMDGPU/si-lower-control-flow.mir
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
Commit a1e97923a025d09934b557ca4343d8e4b5a9973d by Jason Molenda
Have kernel binary scanner load dSYMs as binary+dSYM if best thing found

lldb's PlatforDarwinKernel scans the local filesystem (well known
locations, plus user-specified directories) for kernels and kexts
when doing kernel debugging, and loads them automatically.  Sometimes
kernel developers want to debug with *only* a dSYM, in which case they
give lldb the DWARF binary + the dSYM as a binary and symbol file.
This patch adds code to lldb to do this automatically if that's the
best thing lldb can find.

A few other bits of cleanup in PlatformDarwinKernel that I undertook
at the same time:

1. Remove the 'platform.plugin.darwin-kernel.search-locally-for-kexts'
setting.  When I added the local filesystem index at start of kernel
debugging, I thought people might object to the cost of the search
and want a way to disable it.  No one has.

2. Change the behavior of
'plugin.dynamic-loader.darwin-kernel.load-kexts' setting so it does
not disable the local filesystem scan, or use of the local filesystem
binaries.

3. PlatformDarwinKernel::GetSharedModule into GetSharedModuleKext and
GetSharedModuleKernel for easier readability & maintenance.

4. Added accounting of .dSYM.yaa files (an archive format akin to tar)
that I come across during the scan.  I'm not using these for now; it
would be very expensive to expand the archives & see if the UUID matches
what I'm searching for.

<rdar://problem/69774993>
Differential Revision: https://reviews.llvm.org/D88632
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformMacOSXProperties.td
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
The file was modifiedlldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
Commit 2ef9d21e1a3cf8a58049921c785de1487fbcd7e1 by carl.ritson
[AMDGPU] SIInsertSkips: Tidy block splitting to use splitAt

Convert to use new MachineBasicBlock splitAt function.
Place code in splitBlock function for reuse in future changes.
Should yield no functional change.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D88537
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
Commit f29645e7afdbb8d1fc2dd603c0b128bac055625c by listmail
[gvn] Handle a corner case w/vectors of non-integral pointers

If we try to coerce a vector of non-integral pointers to a narrower type (either narrower vector or single pointer), we use inttoptr and violate the semantics of non-integral pointers.  In theory, we can handle many of these cases, we just need to use a different code idiom to convert without going through inttoptr and back.

This shows up as wrong code bugs, and in some cases, crashes due to failed asserts.  Modeled after a change which has lived downstream for a couple years, though completely rewritten to be more idiomatic.
The file was modifiedllvm/lib/Transforms/Utils/VNCoercion.cpp
The file was modifiedllvm/test/Transforms/GVN/non-integral-pointers.ll
Commit b8ac19cf1cca5faec8b4404bb0f666cb63c9e1de by mkazantsev
[SCEV] Limited support for unsigned preds in isImpliedViaOperations

The logic there only considers `SLT/SGT` predicates. We can use the same logic
for proving `ULT/UGT` predicates if all involved values are non-negative.

Adding full-scale support for unsigned might be challenging because of code amount,
so we can consider this in the future.

Differential Revision: https://reviews.llvm.org/D88087
Reviewed By: reames
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp