[all-commits] [llvm/llvm-project] b7c045: [PowerPC][AIX] Specify correct ABI alignment for d...

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Dec 10 23:57:48 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b7c0452a9a3d895b14ec7c5735e4e4ddc311edb3
      https://github.com/llvm/llvm-project/commit/b7c0452a9a3d895b14ec7c5735e4e4ddc311edb3
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-12-11 (Thu, 11 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/2007-05-07-PaddingElements.c
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/TargetParser/TargetDataLayout.cpp
    M llvm/test/CodeGen/PowerPC/aix-cc-abi-mir.ll
    M llvm/test/CodeGen/PowerPC/aix-cc-abi.ll
    M llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll
    M llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
    M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg-mir.ll
    M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg.ll
    M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg-mir.ll
    M llvm/unittests/Bitcode/DataLayoutUpgradeTest.cpp

  Log Message:
  -----------
  [PowerPC][AIX] Specify correct ABI alignment for double (#144673)

Add `f64:32:64` to the data layout for AIX, to indicate that doubles
have a 32-bit ABI alignment and 64-bit preferred alignment.

Clang was already taking this into account, but it was not reflected in
LLVM's data layout.

A notable effect of this change is that `double` loads/stores with 4
byte alignment are no longer considered "unaligned" and avoid the
corresponding unaligned access legalization. I assume that this is
correct/desired for AIX. (The codegen previously already relied on this
in some places related to the call ABI simply by dint of assuming
certain stack locations were 8 byte aligned, even though they were only
actually 4 byte aligned.)

Fixes https://github.com/llvm/llvm-project/issues/133599.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list