[VPlan] Clean up VPWidenPHIRecipe constructor (NFC). (#193297)
Update VPWidenPHIRecipe's constructor to no longer pass the unused
underlying IR PHI and pass all incoming values as ArrayRef. This also
clarifies that the underlying instruction is not used.
Also add VPBuilder::createWidenPhi.
[PowerPC] Fix ADJCALLSTACKUP and ADJCALLSTACKDOWN def (#184696)
ADJCALLSTACKUP and ADJCALLSTACKDOWN can actually take on values greater
then what can be contained in u16imm type. Update to use u32imm instead.
[AMDGPU] Reland "Fixed verifier crash because of multiple live range components." (#190719) (#193286)
PR #190719 was reverted by PR #193135 because a .s file was left behind
by a test. This patch fixes it by adding -filetype=null to the RUN line
of the test rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll.
In Rewrite AGPR-Copy-MFMA pass, after replacing spill instructions, the
replacement register may have multiple live range components when the
spill slot was stored to more than once. The verifier crashes with a bad
machine code error. This patch fixes the problem by splitting a live
range but assigning the same physical register in this scenario. A new
test has been added that verifies the absence of this verifier error.
Assisted-by: Claude Opus
[JTS] Add a temporary workaround for multiple zero GUIDs (#193292)
We can sometimes end up with multiple zero values in the VP metadata if
profile loading cannot map multiple addresses to their functions. We
should probably eventually fix this case in the profile loader, but as a
temporary workaround, handle this in JTS explicitly by dropping the
assertion, similar to how this is handled in ICP.
This is similar to #192905, but with more researched justification.
Co-authored-by: Alexander Shaposhnikov <ashaposhnikov at google.com>
[lldb] Make global lookup in DIL configurable by caller (#192592)
DIL has supported unlimited global lookup, which is in contrast with
long standing `frame variable` behavior, which supports only globals
from the current file.
This is semantically incorrect for frame variable, and has shown to
produce bugs in `dwim-print`. For these reasons, this change makes
global lookup opt-out, controlled by a new
`eExpressionPathOptionsDisallowGlobals` flag.
For `dwim-print`, the bug manifests when a global shadows a computed
property of the instance variable (`self`). As an example, if a global
named `text` exists, and a property named `text` exists (ie
`self.text`), then running `dwim-print text` will unexpectedly print the
global, not `self.text`.
rdar://174834020
Assisted-by: claude
[compiler-rt][asan] Add asan checks for __builtin_assume_dereferencable (#190871)
This checks that the range covered by this intrinsic is dereferencable.
Specifically it checks for `llvm.assume` intrinsics using the
`dereferencable` operator bundle and just asserts the shadow for this
range is zero.
The bulk of this PR was made by gemini but it was thoroughly edited and
reviewed to the best of my ability.
[Clang] Diagnose UB and emit error when identifier has both internal and external linkage (#192116)
C11 6.2.2p7 says if the same identifier appears with both internal and
external linkage in a translation unit, the behavior is undefined.
This patch adds a check in `Sema::MergeVarDecl` that uses
`LookupResult::isShadowed()` to detect when a block-scope `extern` found
a file-scope `static` through a shadow, and emits an error.
Fixes #54215
[LV] Remove IV use restrictions for epilogue vectorization. (#190552)
There have been a number of improvements to epilogue handling over the
last year, including improved resume value handling and consistent final
induction value handling via ExitingIVValue.
With those, the restriction can be removed, as direct uses of induction
phis are already handled correctly.
PR: https://github.com/llvm/llvm-project/pull/190552
[clang][deps] Simplify scanner VFS (#190843)
This PR removes a hack from the scanning VFS that introduced a bypass
mechanism for module cache queries. Now that we go through the
`ModuleCache` interface for implicitly-built modules, this is no longer
necessary.
[docs] Add missing command line options to llvm-profgen.rst (#192890)
Resolves #192867
This PR fix some of the undocumented options that are visible in
llvm-profgen --help and --help-hidden
[clang][bytecode][HLSL] Complete the HLSL aggregate splat and elementwise cast implementations, and enable the new constant interpreter on all HLSL tests with static asserts (#189126)
This PR fixes https://github.com/llvm/llvm-project/issues/183426,
completing the implementations of `CK_HLSLAggregateSplatCast` and
`CK_HLSLElementwiseCast` in Clang's new bytecode-based constant
expression evaluation engine / interpreter.
This PR also adds new RUN lines with
`-fexperimental-new-constant-interpreter` to all HLSL tests that have
static assertions.
The tests exercising the `CK_HLSLAggregateSplatCast` and
`CK_HLSLElementwiseCast` implementations in the new constant interpreter
are
- `clang/test/SemaHLSL/Types/AggregateSplatConstantExpr.hlsl` and
- `clang/test/SemaHLSL/Types/ElementWiseConstantExpr.hlsl`
respectively.
[5 lines not shown]
Merge tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux
Pull more crypto library updates from Eric Biggers:
"Crypto library fix and documentation update:
- Fix an integer underflow in the mpi library
- Improve the crypto library documentation"
* tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux:
lib/crypto: docs: Add rst documentation to Documentation/crypto/
docs: kdoc: Expand 'at_least' when creating parameter list
lib/crypto: mpi: Fix integer underflow in mpi_read_raw_from_sgl()