[RISCV][P-ext] Support packed bswap/bitreverse. (#200448)
We can implement these using combinations of rev, rev8, and ppairoe.*.
Rename REV16->REV16_RV64. A hypothetical REV16 on RV32 would have a
different encoding like REV and REV8.
Long term we should probably custom lower these instead of having
complex isel patterns. That would allow additional optimizations. But I
think the isel patterns are fine as a starting point.
[Clang][Docs] Documented sentinel attribute (#196088)
The documentation of the sentinel attribute was missing, this PR
documents the behavior of the sentinel attribute.
[Bazel]: Pull from Bazel-Central-Registry for third party deps. (#197316)
The majority of these dependencies are available in the
[Bazel-Central-Registry](https://github.com/bazelbuild/bazel-central-registry)
(BCR) and to improve build performance for bzlmod users, llvm-project
should pull from the BCR to consolidate targets.
[X86] Fix MachineBlockInfo hash for machine-block-hash.mir (#201039)
I looked at llvm/include/llvm/CodeGen/MachineBlockHashInfo.h,
BlendedBlockHash function and rewrote failing test.
---------
Co-authored-by: mattarde <mattarde at intel.com>
[clang][driver] Rename ClangExecutable and getClangProgramPath (NFC) (#200814)
This patch is to rename ClangExecutable to DriverExecutable and
getClangProgramPath to getDriverProgramPath. This makes the
name more neutral and less confusing when used in flang.
[MachineScheduler] Rework dag-maps-huge-region (#200945)
For compile time/memory reasons, dag-maps-huge-region is the number of
memory instructions at which we create a barrier and reset maps.
Previously we'd get to dag-maps-huge-region number of instructions, then
add a barrier in the middle of the current set of instructions, and
continue processing the second half of remaining instructions.
With this change, now we simply add a barrier every time we reach
dag-maps-huge-region number of memory instructions, and blow away all
previous instructions.
So now instead of waiting until we get to 1000 memory operations before
creating a barrier for 500 of them, we do it at 500 and do it for all
500.
With this change, -dag-maps-huge-region=500 still has
addChainDependencies() taking up over half of the codegen pipeline in
some cases I looked at, but it's much better than the previous 90%.
[Dexter][NFC] Mark script tests unsupported for non-lldb debuggers (#201596)
The recently-added structured script feature currently relies on
DAP-based debuggers, of which the only one currently supported by Dexter
is LLDB. In order to prevent the tests that depend on this feature from
running for other debuggers, we require LLDB for the script test
directory.
[ThinLTO][AIX] Teach ModuleSummaryAnalysis to include globals
referenced via !implicit.ref metadata as explicit reference edges in the ThinLTO
module summary via a new helper findImplicitRefEdges. Add imported
implicit ref strings (available_externally GVs) to llvm.compiler.used during thinLTO interaction with pragma comment copyright.
[mlir][Func][EmitC] Bail-out to avoid errors from MemRef array conversions (#198583)
Update FuncToEmitC to bail-out before creating invalid EmitC ops for
unsupported cases.
FuncToEmitC now rejects functions, calls, and returns whose converted
result type is `emitc.array`, instead of relying on later `emitc.func`,
`emitc.call`, or `emitc.return` verifier failures.
This does not add support for returning memrefs from functions. It only
makes the existing limitation explicit at the conversion boundary.
## Tests
Added negative tests for the standalone conversion pass. This pass marks
their source ops illegal, so when a pattern bails-out the pass reports a
legalization failure. This is the expected behavior and documents the
unsupported cases directly.
[5 lines not shown]