forked from OSchip/llvm-project
[mlir] Fixed dynamic operand storage on big-endian machines.
Many tests fails by D101969 (https://reviews.llvm.org/D101969) on big-endian machines. This patch changes bit order of TrailingOperandStorage in big-endian machines. This patch works on System Z (Triple = "s390x-ibm-linux", CPU = "z14"). Signed-off-by: Haruki Imai <imaihal@jp.ibm.com> Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D104225
This commit is contained in:
parent
07481b3796
commit
5a55205bb3
|
@ -484,7 +484,11 @@ namespace detail {
|
|||
/// This class contains the information for a trailing operand storage.
|
||||
struct TrailingOperandStorage final
|
||||
: public llvm::TrailingObjects<TrailingOperandStorage, OpOperand> {
|
||||
#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)
|
||||
TrailingOperandStorage() : numOperands(0), capacity(0), reserved(0) {}
|
||||
#else
|
||||
TrailingOperandStorage() : reserved(0), capacity(0), numOperands(0) {}
|
||||
#endif
|
||||
~TrailingOperandStorage() {
|
||||
for (auto &operand : getOperands())
|
||||
operand.~OpOperand();
|
||||
|
@ -495,12 +499,21 @@ struct TrailingOperandStorage final
|
|||
return {getTrailingObjects<OpOperand>(), numOperands};
|
||||
}
|
||||
|
||||
#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)
|
||||
/// The number of operands within the storage.
|
||||
unsigned numOperands;
|
||||
/// The total capacity number of operands that the storage can hold.
|
||||
unsigned capacity : 31;
|
||||
/// We reserve a range of bits for use by the operand storage.
|
||||
unsigned reserved : 1;
|
||||
#else
|
||||
/// We reserve a range of bits for use by the operand storage.
|
||||
unsigned reserved : 1;
|
||||
/// The total capacity number of operands that the storage can hold.
|
||||
unsigned capacity : 31;
|
||||
/// The number of operands within the storage.
|
||||
unsigned numOperands;
|
||||
#endif
|
||||
};
|
||||
|
||||
/// This class handles the management of operation operands. Operands are
|
||||
|
|
Loading…
Reference in New Issue