[VPlan] Use PSE to construct SCEVs in getSCEVExprForVPValue (NFCI).
getSCEVExprForVPValue is used to create SCEVs for expressions from the
original loop, which may be predicated. Use PSE to construct predicated
SCEVs if possible. This matches the legacy LV code behavior.
Currently should be NFC, but will enable migrating more SCEV/cost-based
computations to VPlan.
The patch requires exposing a new getPredicatedSCEV helper to
PredicatedScalarEvolution which just takes a SCEV, to avoid needing to
go through IR values, which isn't an option for getSCEVExprForVPValue.
readability-identifier-naming should add universal default options (#171686)
Adds a `DefaultCase` (and other options, but `DefaultPrefix/Suffix` is
probably not useful), which is used as a base in the override hierarchy.
Resolves #75688
[libcxx] Remove comment about manually installing ninja
This comment was addressed in 789ef89860e991f536b7ab896bf0562029804f58 but I
forgot to remove the comment. This PR addresses that.
[LLDB] Improve error handling in TypeSystemClang::GetChildCompilerTypeAtIndex (#170932)
Convert the function to early exits, and add sensible error messages for
all failing checks.
[SLP]Enable float point math ops as copyables elements.
Patch enables support for float point math operations as base
instructions for copyable elements. It also fixes some scheduling
issues, found during testing
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/169857
[Matrix][HLSL] Implement Matrix single constant index swizzle (#173044)
fixes #172805
For the constant case if we know the row index then we can compute the
offsets via `E->getEncodedElementAccess(Elts)`. We had to also add
column and row sizes to LValue so that we could compute the right index.
the emitter for `MatrixSingleSubscriptExpr` collects the sizes off the
type and passes it to `MakeMatrixRow`.
---------
Co-authored-by: Justin Bogner <mail at justinbogner.com>
[SLP]Skip buildvector tree, if all scalars are used externally and remain scalar
If the buildvector is going to be vector with threshold cost < 0 and all
buildvector scalars are externally used and remain scalar, such a tree
should not be vectorized, it may lead to a compiler hang because same
scalars remain in the function and will be vectorized once again.
Fixes #172609
[LegalizeDAG] Return after replacing ISD::POISON with ISD::UNDEF. (#173173)
We already replaced the node, we shouldn't run the rest of the code that
still uses the old node.
[libc++] Mini-cleanup for `[[nodiscard]]` (#172275)
1. Remove incorrect `[[nodiscard]]` from compound assignment operators
in `<__filesystem/copy_options.h>`. Also add regression tests.
2. Add missing `[[nodiscard]]` mark for `mdspan::size` in
`<__mdspan/mdspan.h>` and test it.
3. Enable verifying `[[nodiscard]]` in C++03 for various components.
These components are either present in C++03 or backported by libc++
from C++11/17.
[llvm][unittests] Silence warning when building with MSVC
Fixes:
```
[836/1441] Building CXX object unittests\ExecutionEngine\Orc\CMakeFiles\OrcJITTests.dir\CallableTraitsHelperTest.cpp.obj
C:\git\llvm-project\llvm\unittests\ExecutionEngine\Orc\CallableTraitsHelperTest.cpp(25): warning C4551: function call missing argument list
C:\git\llvm-project\llvm\unittests\ExecutionEngine\Orc\CallableTraitsHelperTest.cpp(34): warning C4551: function call missing argument list
```
InstCombine: Handle canonicalize in SimplifyDemandedFPClass
Doesn't try to handle PositiveZero flushing mode, but I
don't believe it is incorrect with it.
[LLVM][ADT] Make `scope-exit` CTAD-capable (#173131)
This enables using it like
```cpp
llvm::scope_exit Cleanup([] { ... });
```
instead of
```cpp
auto Cleanup = llvm::make_scope_exit([] { ... });
```