From ffbb13fbef6b16e2c8def5feb9779035b4f80609 Mon Sep 17 00:00:00 2001 From: Sean Fertile Date: Tue, 1 Jun 2021 13:39:02 -0400 Subject: [PATCH] [PowerPC][AIX} FIx AIX bootstrap build. A recent patch: https://reviews.llvm.org/rGe0921655b1ff8d4ba7c14be59252fe05b705920e changed clangs AIX bitfield handling to use 4-byte bitfield containers, matching XLs behavior. This change triggers static assert failures when bootstrapping. Change the macro we check to enable bitfield packing on AIX to `__clang__` which is defined by both xlclang and clang. Differential Revision: https://reviews.llvm.org/D103474 --- include/llvm/CodeGen/SelectionDAGNodes.h | 2 +- include/llvm/IR/BasicBlock.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 43f35270f19..dc58dd33c5c 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -462,7 +462,7 @@ protected: // SubclassData. These are designed to fit within a uint16_t so they pack // with NodeType. -#if defined(_AIX) && (!defined(__GNUC__) || defined(__ibmxl__)) +#if defined(_AIX) && (!defined(__GNUC__) || defined(__clang__)) // Except for GCC; by default, AIX compilers store bit-fields in 4-byte words // and give the `pack` pragma push semantics. #define BEGIN_TWO_BYTE_PACK() _Pragma("pack(2)") diff --git a/include/llvm/IR/BasicBlock.h b/include/llvm/IR/BasicBlock.h index db831bdb379..0af4ec4ef13 100644 --- a/include/llvm/IR/BasicBlock.h +++ b/include/llvm/IR/BasicBlock.h @@ -513,7 +513,7 @@ public: void validateInstrOrdering() const; private: -#if defined(_AIX) && (!defined(__GNUC__) || defined(__ibmxl__)) +#if defined(_AIX) && (!defined(__GNUC__) || defined(__clang__)) // Except for GCC; by default, AIX compilers store bit-fields in 4-byte words // and give the `pack` pragma push semantics. #define BEGIN_TWO_BYTE_PACK() _Pragma("pack(2)")