SuccessChanges

Summary

  1. [SystemZ/ZOS]__(de)register_frame are not available on z/OS. (details)
  2. [lldb] Skip TestSimulatorPlatform with sanitized builds (details)
  3. [llvm] support graceful failure of DataLayout parsing (details)
  4. [mlir] Move data layout from LLVMDialect to module Op attributes (details)
  5. AMDGPU: Fix using wrong offsets for global atomic fadd intrinsics (details)
  6. AMDGPU/GlobalISel: Fix using post-legal combiner without LegalizerInfo (details)
  7. GlobalISel: Remove unnecessary check for copy type (details)
  8. [flang] Add preprocessor test for defines passed on the command line (details)
Commit c2ae7934c809d739f7677f4422755c58e4ab8ea3 by kai
[SystemZ/ZOS]__(de)register_frame are not available on z/OS.

The functions `__register_frame`/`__deregister_frame` are not
available on z/OS, so add a guard to not use them.

Reviewed By: lhames, abhina.sreeskantharajan

Differential Revision: https://reviews.llvm.org/D84787
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp (diff)
Commit f5f22f04481bec765ccaf6e400da24987a421c2e by Raphael Isemann
[lldb] Skip TestSimulatorPlatform with sanitized builds

The test executable crashes when ran on a simulator. Skipping until this is
fixed.

rdar://67238668
The file was modifiedlldb/test/API/macosx/simulator/TestSimulatorPlatform.py (diff)
Commit 874aef875d0cd04b33f25bb71b534cbb0d6220ae by zinenko
[llvm] support graceful failure of DataLayout parsing

Existing implementation always aborts on syntax errors in a DataLayout
description. While this is meaningful for consuming textual IR modules, it is
inconvenient for users that may need fine-grained control over the layout from,
e.g., command-line options. Propagate errors through the parsing functions and
only abort in the top-level parsing function instead.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D85650
The file was modifiedllvm/lib/IR/DataLayout.cpp (diff)
The file was modifiedllvm/include/llvm/IR/DataLayout.h (diff)
Commit 168213f91c571352c56f432573513cba3f9ba61b by zinenko
[mlir] Move data layout from LLVMDialect to module Op attributes

Legacy implementation of the LLVM dialect in MLIR contained an instance of
llvm::Module as it was required to parse LLVM IR types. The access to the data
layout of this module was exposed to the users for convenience, but in practice
this layout has always been the default one obtained by parsing an empty layout
description string. Current implementation of the dialect no longer relies on
wrapping LLVM IR types, but it kept an instance of DataLayout for
compatibility. This effectively forces a single data layout to be used across
all modules in a given MLIR context, which is not desirable. Remove DataLayout
from the LLVM dialect and attach it as a module attribute instead. Since MLIR
does not yet have support for data layouts, use the LLVM DataLayout in string
form with verification inside MLIR. Introduce the layout when converting a
module to the LLVM dialect and keep the default "" description for
compatibility.

This approach should be replaced with a proper MLIR-based data layout when it
becomes available, but provides an immediate solution to compiling modules with
different layouts, e.g. for GPUs.

This removes the need for LLVMDialectImpl, which is also removed.

Depends On D85650

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D85652
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td (diff)
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h (diff)
The file was addedmlir/test/Conversion/StandardToLLVM/convert-data-layout.mlir
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir (diff)
The file was modifiedmlir/include/mlir/Conversion/Passes.td (diff)
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h (diff)
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp (diff)
The file was modifiedmlir/test/Target/llvmir.mlir (diff)
Commit e0375dbcb39bdd5fa9f8288f9149df256003e06b by Matthew.Arsenault
AMDGPU: Fix using wrong offsets for global atomic fadd intrinsics

Global instructions have the signed offsets.
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.fadd.ll (diff)
Commit 66ffa0e91f1e602d11c5aad29b000b275d8be89a by Matthew.Arsenault
AMDGPU/GlobalISel: Fix using post-legal combiner without LegalizerInfo
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp (diff)
Commit 924f31bc3c2c765f51eedda14534623053ffd75a by Matthew.Arsenault
GlobalISel: Remove unnecessary check for copy type

COPY isn't allowed to change the type, but can mix no type with type.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp (diff)
Commit 3b338e53e956d239efe2e8319d863838e5fdb857 by david.truby
[flang] Add preprocessor test for defines passed on the command line

This adds a test for D85862 to ensure that preprocessor definitions
passed on command lines don't regress in future.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D85967
The file was addedflang/test/Preprocessing/defines.F90