SuccessChanges

Summary

  1. AMDGPU/GlobalISel: Add baseline tests for andn2/orn2 matching (details)
  2. GlobalISel: Add node mappings for frameindex/blockaddress (details)
  3. [libc] Add implementations for isblank, iscntrl, isgraph, ispunct. (details)
  4. GlobalISel: Handle llvm.localescape (details)
  5. [llvm-symbolizer][test] Fix pdb/pdb.test after D83530 (details)
  6. [MLIR][Affine] Fix createPrivateMemRef in affine fusion (details)
  7. BPF: support type exist/size and enum exist/value relocations (details)
  8. [FastISel] Don't transform FSUB(-0, X) -> FNEG(X) in FastISel (details)
  9. [MLIR] Change FunctionType::get() and TupleType::get() to use TypeRange (details)
  10. [WebAssembly] Use "signed char" instead of "char" in SIMD intrinsics. (details)
  11. [libFuzzer] Fix endianness issue in ForEachNonZeroByte() (details)
  12. [SanitizerCoverage] Fix types of __stop* and __start* symbols (details)
  13. [libFuzzer] Enable for SystemZ (details)
Commit 14ed5cf5c461cf34faf5729424b4221d30e24dcc by arsenm2
AMDGPU/GlobalISel: Add baseline tests for andn2/orn2 matching
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
Commit f2942f9c26a39340f8604857c7c90e6ade02a381 by arsenm2
GlobalISel: Add node mappings for frameindex/blockaddress
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (diff)
Commit 6cd50e7b75ed39ba1218c724401117cb6e12748d by gyurgyikcp
[libc] Add implementations for isblank, iscntrl, isgraph, ispunct.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85059
The file was addedlibc/test/src/ctype/ispunct_test.cpp
The file was modifiedlibc/src/ctype/ctype_utils.h (diff)
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt (diff)
The file was addedlibc/src/ctype/iscntrl.h
The file was addedlibc/test/src/ctype/isgraph_test.cpp
The file was modifiedlibc/config/linux/api.td (diff)
The file was addedlibc/src/ctype/ispunct.h
The file was addedlibc/src/ctype/ispunct.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt (diff)
The file was modifiedlibc/src/ctype/isalnum.cpp (diff)
The file was addedlibc/src/ctype/isblank.h
The file was addedlibc/src/ctype/isgraph.cpp
The file was modifiedlibc/src/ctype/CMakeLists.txt (diff)
The file was addedlibc/src/ctype/isblank.cpp
The file was modifiedlibc/spec/stdc.td (diff)
The file was addedlibc/src/ctype/iscntrl.cpp
The file was addedlibc/src/ctype/isgraph.h
The file was addedlibc/test/src/ctype/isblank_test.cpp
The file was modifiedlibc/test/src/ctype/CMakeLists.txt (diff)
The file was addedlibc/test/src/ctype/iscntrl_test.cpp
Commit 3e16e2152cd1fb3914d4da47d83d5e023dd3f2cb by Matthew.Arsenault
GlobalISel: Handle llvm.localescape

This one is pretty easy and shrinks the list of unhandled
intrinsics. I'm not sure how relevant the insert point is. Using the
insert position of EntryBuilder will place this after
constants. SelectionDAG seems to end up emitting these after argument
copies and before anything else, but I don't think it really
matters. This also ends up emitting these in the opposite order from
SelectionDAG, but I don't think that matters either.

This also needs a fix to stop the later passes dropping this as a dead
instruction. DeadMachineInstructionElim's version of isDead special
cases LOCAL_ESCAPE for some reason, and I'm not sure why it's excluded
from MachineInstr::isLabel (or why isDead doesn't check it).

I also noticed DeadMachineInstructionElim never considers inline asm
as dead, but GlobalISel will drop asm with no constraints.
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/labels-are-not-dead.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)
Commit 0729a772806e5ae38603c164c2f60e5e9f9e65e5 by i
[llvm-symbolizer][test] Fix pdb/pdb.test after D83530

This is a Windows only test which requires HAVE_DIA_SDK, so I failed to notice it.
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb.test (diff)
Commit 3bfbc5df87cb0e736fe917e4a8d5166bc0b4ea79 by diego.caballero
[MLIR][Affine] Fix createPrivateMemRef in affine fusion

Always define a remapping for the memref replacement (`indexRemap`)
with the proper number of inputs, including all the `outerIVs`, so that
the number of inputs and the operands provided for the map don't mismatch.

Reviewed By: bondhugula, andydavis1

Differential Revision: https://reviews.llvm.org/D85177
The file was modifiedmlir/lib/Transforms/LoopFusion.cpp (diff)
The file was modifiedmlir/test/Transforms/loop-fusion.mlir (diff)
Commit 6d218b4adb093ff2e9764febbbc89f429412006c by yhs
BPF: support type exist/size and enum exist/value relocations

Four new CO-RE relocations are introduced:
  - TYPE_EXISTENCE: whether a typedef/record/enum type exists
  - TYPE_SIZE: the size of a typedef/record/enum type
  - ENUM_VALUE_EXISTENCE: whether an enum value of an enum type exists
  - ENUM_VALUE: the enum value of an enum type

These additional relocations will make CO-RE bpf programs
more adaptive for potential kernel internal data structure
changes.

Differential Revision: https://reviews.llvm.org/D83878
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-exist.ll
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-enum-value.ll
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-1.ll
The file was modifiedllvm/lib/Target/BPF/BTFDebug.h (diff)
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp (diff)
The file was modifiedllvm/lib/Target/BPF/BPFCORE.h (diff)
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp (diff)
The file was addedllvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-2.ll
Commit 0f2b47b6da0be5e5a597a274bd5c2ae18cc406bd by mcinally
[FastISel] Don't transform FSUB(-0, X) -> FNEG(X) in FastISel

This corresponds with the SelectionDAGISel change in D84056.

Also, rename some poorly named tests in CodeGen/X86/fast-isel-fneg.ll with NFC.

Differential Revision: https://reviews.llvm.org/D85149
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)
The file was removedllvm/test/CodeGen/X86/fast-isel-fneg-kill.ll
The file was modifiedllvm/test/CodeGen/X86/fast-isel-fneg.ll (diff)
Commit 1d6a724aa1c11a37ff083cf637f91852e96ce11f by jurahul
[MLIR] Change FunctionType::get() and TupleType::get() to use TypeRange

- Moved TypeRange into its own header/cpp file, and add hashing support.
- Change FunctionType::get() and TupleType::get() to use TypeRange

Differential Revision: https://reviews.llvm.org/D85075
The file was modifiedflang/lib/Lower/RTBuilder.h (diff)
The file was modifiedmlir/lib/IR/Types.cpp (diff)
The file was modifiedmlir/include/mlir/IR/StandardTypes.h (diff)
The file was modifiedmlir/include/mlir/IR/Types.h (diff)
The file was modifiedmlir/lib/IR/TypeDetail.h (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Builders.h (diff)
The file was modifiedmlir/lib/IR/OperationSupport.cpp (diff)
The file was addedmlir/include/mlir/IR/TypeRange.h
The file was modifiedmlir/lib/IR/Builders.cpp (diff)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/lib/IR/StandardTypes.cpp (diff)
The file was modifiedmlir/lib/IR/CMakeLists.txt (diff)
The file was modifiedmlir/include/mlir/IR/OperationSupport.h (diff)
The file was addedmlir/lib/IR/TypeRange.cpp
Commit 47f7174ffa71d339c1a65d1dd9a2ac5ff2abc95d by sunfish
[WebAssembly] Use "signed char" instead of "char" in SIMD intrinsics.

This allows people to use `int8_t` instead of `char`, -funsigned-char,
and generally decouples SIMD from the specialness of `char`.

And it makes intrinsics like `__builtin_wasm_add_saturate_s_i8x16`
and `__builtin_wasm_add_saturate_u_i8x16` use signed and unsigned
element types, respectively.

Differential Revision: https://reviews.llvm.org/D85074
The file was modifiedclang/lib/Headers/wasm_simd128.h (diff)
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def (diff)
The file was modifiedclang/test/CodeGen/builtins-wasm.c (diff)
Commit a4e537d9c47aa378a24636e2d90d208389ad93ab by iii
[libFuzzer] Fix endianness issue in ForEachNonZeroByte()

The usage pattern of Bundle variable assumes the machine is little
endian, which is not the case on SystemZ. Fix by converting Bundle to
little-endian when necessary.
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtil.h (diff)
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerTracePC.h (diff)
Commit 153df1373e5d3e0f16464233a3c17feb8a9eb3e9 by iii
[SanitizerCoverage] Fix types of __stop* and __start* symbols

If a section is supposed to hold elements of type T, then the
corresponding CreateSecStartEnd()'s Ty parameter represents T*.
Forwarding it to GlobalVariable constructor causes the resulting
GlobalVariable's type to be T*, and its SSA value type to be T**, which
is one indirection too many. This issue is mostly masked by pointer
casts, however, the global variable still gets an incorrect alignment,
which causes SystemZ to choose wrong instructions to access the
section.
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp (diff)
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/tracing.ll (diff)
The file was modifiedllvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll (diff)
Commit ea9b82da4180550c3ddc5e883c589474af9462b7 by iii
[libFuzzer] Enable for SystemZ

* Add SystemZ to the list of supported architectures.

* XFAIL a few tests.

Coverage reporting is broken, and is not easy to fix (see comment in
coverage.test). Interaction with sanitizers needs to be investigated
more thoroughly, since they appear to reduce coverage in certain cases.
The file was modifiedcompiler-rt/cmake/config-ix.cmake (diff)
The file was modifiedcompiler-rt/test/fuzzer/msan.test (diff)
The file was modifiedcompiler-rt/test/fuzzer/swap-cmp.test (diff)
The file was modifiedcompiler-rt/test/fuzzer/coverage.test (diff)