[NFC][TableGen] Minor code cleanup in RegisterInfoEmitter (#181479)
Minor cleanup in codegen for `getSubClassWithSubReg` and
`getSubRegisterClass`:
- Use `getMinimalTypeForRange` to determine the entry type for table.
- Extract common code for table lookup into a lambda.
[SLP]Do not increase depth for type-changing nodes and NotProfitableForVectorization removal
The patch changes the maximum tree size analysis. 1. Do not increase
depth for type changing nodes (like casts and compares), allowing more
deeper trees to be built. 2. Removes NotProfitableForVectorization
workaround, not needed anymore after throttling enabled
Reviewers: hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/180950
[Clang][OpenMP][Driver] Make linker to link Device RTL when built for SPIRV (#180066)
This is to make linker to link ompdevice library when building for
OpenMP using SPIRV
[SPIRV] Fix `SPIRVTypeInst` `DenseMapInfo` implementation
The previous `DenseMapInfo` implementation was wrong.
The new implementation relies completely on `DenseMapInfo<MachineInst*>`'s.
To do this, we use "tag dispatch" to call a special constructor only
accessible by `DenseMapInfo` that bypasses the assertion when building
the emtpy/tombstone keys.
[VPlan] Simplify worklist in reassociateHeaderMask. NFC (#181595)
Addresses review comments from
https://github.com/llvm/llvm-project/pull/180898#pullrequestreview-3791945590.
We don't need to recursively collect direct users of the header mask, we
can do that as a separate step so that the main worklist loop only
handles potentially reassociatable candidates.
Also add back mention of tail folding to comment and a TODO.
[MLIR][OpenMP] Add omp.fuse operation (#168898)
This patch is a follow-up from #161213 and adds the omp.fuse loop
transformation for the OpenMP dialect. Used for lowering a `!$omp fuse`
in Flang.
Added Lowering and end2end tests.
[SystemZ] Enable rematerialization for scalar loads (#179838)
We can avoid the unnecessary spill by marking loads as rematerializable
and just directly loading from where the argument was originally passed
on the stack. TargetTransformInfo::isReMaterializableImpl checks to make
sure that any loads are MI.isDereferenceableInvariantLoad(), so we
should be able to move the load down to the remat site.
Related: [#166774](https://github.com/llvm/llvm-project/pull/166774)
---------
Co-authored-by: anoopkg6 <anoopkg6 at github.com>
[clang] Fix crashes when initializing constexpr int* with floating-point (#180376)
Call isNullPointer() only when we are sure that Rvalue is a pointer.
Fixes #180313
---------
Co-authored-by: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
[LoopInterchange] Update tests generated by UTC (NFC) (#181804)
Update the LoopInterchange tests that use UTC to generate assertions, in
order to avoid irrelevant changes during other developments. Most of the
changes are simply the result of re-running UTC, but this patch also
includes a few additional minor adjustments by hand:
- Rename IR value names to suppress warnings by UTC.
- Delete `NOTE: Assertions have been ...` from the test file that
actually doesn't use UTC.
- Delete unnecessary `-pass-remarks-missed=...`.
- Add a store instruction for an unused GEP result, which could
otherwise affect other developments.
[llvm-readobj, ELF] Support reading binary with more than PN_XNUM segments.
FreeBSD coredump uses program headers to store mmap information. It is possible
for program to use more than PN_XNUM mmaps. Therefore, we implement the support
of PN_XNUM in readelf.
[Object][ELF] Fix section header zero check
The PN_XUM is a necessary condition for reading shdr0
regardless of the value of e_shoff. Without this,
readShdrZero falsely returns the garbage value in ELF
header instead of emitting warning.
[Offload][test] Use just-compiled lld and llvm-symbolizer (#181793)
In a bootstrapping build with LLVM_ENABLE_PROJECTS=lld, the lld
executable will be found in LLVM's bin/ directory. But `check-offload`
will currently ignore it because the JIT plugin will look for `lld` in
`$PATH`. Similarly, the sanitizer tests require llvm-symbolizer during
execution to FileCheck the expected stack trace.
Add the llvm tools directory to `$PATH` so tests can use lld and
llvm-symbolizer in it. It should be prefered over a system-installed
lld/llvm-symbolizer.
Fixes the JIT and sanitizer tests of
[openmp-offload-amdgpu-clang-flang](https://lab.llvm.org/staging/#/builders/105).