UnstableChanges

Summary

  1. [IR] Fix typo in comment of Intrinsics.td (NFC) (details)
  2. [TableGen] Use range-based for loops (NFC) (details)
  3. BPF: fix FIELD_EXISTS relocation with array subscripts (details)
  4. [PowerPC] Remove extra swap for extract+vperm on LE (details)
  5. [mlir][linalg] Add IndexedGenericOp to GenericOp canonicalization. (details)
  6. [XCOFF] handle string constants generation for AIX (details)
  7. [MLIR][SPIRV] Properly (de-)serialize BranchConditionalOp. (details)
  8. [GlobalISel] Micro-optimize the conditional branch optimization. (details)
  9. [Debug-Info][NFC] add a wrapper for Die.addValue (details)
  10. [LazyValueInfo] Insert an Overdefined placeholder to prevent infinite recursion (details)
  11. [libcxx] Fix a case of -Wundef warnings. NFC. (details)
  12. [lit][test] Attempt fix when paths include symlink (details)
  13. [LoopVectorize][SVE] Remove assert for scalable vector in InnerLoopVectorizer::fixReduction (details)
Commit e388b9399b03a78219adb3488ec8b2e2a6abcf46 by qixingxue
[IR] Fix typo in comment of Intrinsics.td (NFC)
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
Commit e6cf3d64412c1ddd2fcece337fe0a5f80e386a48 by coelacanthus
[TableGen] Use range-based for loops (NFC)

Use range-based for loops in TableGen.

Reviewed By: Paul-C-Anagnostopoulos

Differential Revision: https://reviews.llvm.org/D101994
The file was modifiedllvm/utils/TableGen/X86DisassemblerTables.cpp
The file was modifiedllvm/utils/TableGen/FixedLenDecoderEmitter.cpp
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp
The file was modifiedllvm/utils/TableGen/RegisterInfoEmitter.cpp
The file was modifiedllvm/utils/TableGen/AsmWriterEmitter.cpp
The file was modifiedllvm/utils/TableGen/InstrInfoEmitter.cpp
The file was modifiedllvm/utils/TableGen/RISCVCompressInstEmitter.cpp
The file was modifiedllvm/utils/TableGen/FastISelEmitter.cpp
The file was modifiedllvm/utils/TableGen/CodeGenSchedule.cpp
The file was modifiedllvm/utils/TableGen/GICombinerEmitter.cpp
The file was modifiedllvm/utils/TableGen/DFAPacketizerEmitter.cpp
The file was modifiedllvm/utils/TableGen/AsmMatcherEmitter.cpp
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp
Commit 605c811d2b0f71c576740c9a54629804353bf67a by yhs
BPF: fix FIELD_EXISTS relocation with array subscripts

Lorenz Bauer reported an issue in bpf mailing list ([1]) where
for FIELD_EXISTS relocation, if the object is an array subscript,
the patched immediate is the object offset from the base address,
instead of 1.

Currently in BPF AbstractMemberAccess pass, the final offset
from the base address is the patched offset except FIELD_EXISTS
which is 1 unconditionally. In this particular case, the last
data structure access is not a field (struct/union offset)
so it didn't hit the place to set patched immediate to be 1.

This patch fixed the issue by checking the relocation type.
If the type is FIELD_EXISTS, just set to 1.
Tested by modifying some bpf selftests, libbpf is okay with
such types with FIELD_EXISTS relocation.

[1] https://lore.kernel.org/bpf/CACAyw99n-cMEtVst7aK-3BfHb99GMEChmRLCvhrjsRpHhPrtvA@mail.gmail.com/

Differential Revision: https://reviews.llvm.org/D102036
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-4.ll
Commit f7294ac8093a2fbd8c00254580eaac6c4e1f7b24 by qiucofan
[PowerPC] Remove extra swap for extract+vperm on LE

This is a simple fix on LE. On BE, vector shuffles are categorized into
different ops. We may need more work to eliminate these in
tablegen/pre-isel.

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D101605
The file was modifiedllvm/test/CodeGen/PowerPC/vec_extract_p9.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
Commit 26e916334ebc3cb34f1c020e00c731bd60b0323a by gysit
[mlir][linalg] Add IndexedGenericOp to GenericOp canonicalization.

Replace all `linalg.indexed_generic` ops by `linalg.generic` ops that access the iteration indices using the `linalg.index` op.

Differential Revision: https://reviews.llvm.org/D101612
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile-tensors.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize-duplicate-inputs.mlir
The file was modifiedmlir/test/Dialect/Linalg/reshape_fusion.mlir
The file was modifiedmlir/test/Dialect/Linalg/tile-indexed-generic.mlir
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/test/Dialect/Linalg/fusion-indexed-generic.mlir
The file was modifiedmlir/test/Dialect/Linalg/bufferize.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
Commit a95473c563bf5b6d657f5e5fa99bd551b2df339b by czhengsz
[XCOFF] handle string constants generation for AIX

This follows https://www.ibm.com/docs/en/aix/7.2?topic=constants-string

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D101280
The file was addedllvm/test/CodeGen/PowerPC/aix-filename-special-character-single-quotation.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-filename-special-character-double-quotation.ll
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h
The file was modifiedllvm/lib/MC/MCAsmInfoXCOFF.cpp
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp
Commit e4dee7e7309a060bd8dd3c9df0a708157fc935d4 by kareem.ergawy
[MLIR][SPIRV] Properly (de-)serialize BranchConditionalOp.

Implements proper (de-)serialization logic for BranchConditionalOp when
such ops have true/false target operands.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D101602
The file was modifiedmlir/test/Target/SPIRV/phi.mlir
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
The file was modifiedmlir/lib/Target/SPIRV/Serialization/Serializer.cpp
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/Deserializer.h
Commit 1ccebb18ef9f4110e555209261d73dbec393e364 by Amara Emerson
[GlobalISel] Micro-optimize the conditional branch optimization.

Convert a check into an assert and pass an MI instead of recomputing in the
apply function.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
Commit 9deb7eeaf76c3285b72ce75d30fcade63b96e2dc by czhengsz
[Debug-Info][NFC] add a wrapper for Die.addValue

Add a new wrapper function addAttribute() for Die.addValue() function,
so we can do some attributes control in one single interface.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101125
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
Commit 911a541620bcc78e637589b8623d94b8f3cdafba by guopeilin1
[LazyValueInfo] Insert an Overdefined placeholder to prevent infinite recursion

getValueFromCondition() uses a Visited set to record the intermediate value.
However, it uses a postorder way to compute the value first and update the
Visited set later. Thus it will be trapped into an infinite recursion if there
exists IRs that use no dominated by its def as in this example:

  %tmp3 = or i1 undef, %tmp4
  %tmp4 = or i1 undef, %tmp3

To prevent this, we can insert an Overdefined placeholder into the set
before computing the actual value.

Reviewed by: nikic

Differential Revision: https://reviews.llvm.org/D101273
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was addedllvm/test/Transforms/JumpThreading/insert-placeholder-to-prevent-infinite-recursion.ll
Commit dafbfb1d1d8e01beac3704aea4e8df45260a6310 by martin
[libcxx] Fix a case of -Wundef warnings. NFC.

Differential Revision: https://reviews.llvm.org/D101978
The file was modifiedlibcxx/src/locale.cpp
Commit d2b2ad32b76989b68e7b525e7484e25b0f0cc4e6 by james.henderson
[lit][test] Attempt fix when paths include symlink

Example of failure:
https://lab.llvm.org/staging/#/builders/126/builds/345/steps/5/logs/FAIL__lit___use-tool-search-env_py
The file was modifiedllvm/utils/lit/tests/Inputs/use-tool-search-env/lit.cfg
Commit cf06c8eee3a5ac6172e77abe5d7547554e6a6620 by caroline.concatto
[LoopVectorize][SVE] Remove assert for scalable vector in InnerLoopVectorizer::fixReduction

The function fixReduction used to assert/crash for scalable vector when
a vector reduce could be done with a smaller vector.
This patch removes this assertion as it is safe to use scalable vector for
vector reduce and truncate.

Differential Revision: https://reviews.llvm.org/D101260
The file was addedllvm/test/Transforms/LoopVectorize/scalable-reduction-inloop.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp