[Mlir-commits] [flang] [mlir] [flang][AIX] BIND(C) derived type alignment for AIX (PR #121505)

Kelvin Li llvmlistbot at llvm.org
Thu Jan 2 15:24:07 PST 2025


================
@@ -113,7 +172,15 @@ void ComputeOffsetsHelper::Compute(Scope &scope) {
     if (!FindCommonBlockContaining(*symbol) &&
         dependents_.find(symbol) == dependents_.end() &&
         equivalenceBlock_.find(symbol) == equivalenceBlock_.end()) {
-      DoSymbol(*symbol);
+
+      std::optional<size_t> newAlign{std::nullopt};
+      // Handle special alignment requirement for AIX
+      auto triple{llvm::Triple(
+          llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple()))};
+      if (triple.getOS() == llvm::Triple::OSType::AIX) {
+        newAlign = HasSpecialAlign(*symbol, scope);
----------------
kkwli wrote:

Added comments to `isReal8OrLarger`, `ComputeOffsetsHelper::HasSpecialAlign` and `ComputeOffsetsHelper::CompAlignment`.

https://github.com/llvm/llvm-project/pull/121505


More information about the Mlir-commits mailing list