[llvm] 8b8463e - [SelectionDAG] Use consistent type sizes for opcode
Mirko Brkusanin via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 12 08:34:38 PDT 2022
Author: Mirko Brkusanin
Date: 2022-10-12T17:33:04+02:00
New Revision: 8b8463ef6c6d487e771b577ccd08e6c684d97690
URL: https://github.com/llvm/llvm-project/commit/8b8463ef6c6d487e771b577ccd08e6c684d97690
DIFF: https://github.com/llvm/llvm-project/commit/8b8463ef6c6d487e771b577ccd08e6c684d97690.diff
LOG: [SelectionDAG] Use consistent type sizes for opcode
Added:
Modified:
llvm/include/llvm/CodeGen/SelectionDAGNodes.h
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
index 179578e08b70c..20767bb61c9a8 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -462,12 +462,19 @@ struct SDNodeFlags {
class SDNode : public FoldingSetNode, public ilist_node<SDNode> {
private:
/// The operation that this node performs.
- int16_t NodeType;
+ int32_t NodeType;
+
+public:
+ /// Unique and persistent id per SDNode in the DAG. Used for debug printing.
+ /// We do not place that under `#if LLVM_ENABLE_ABI_BREAKING_CHECKS`
+ /// intentionally because it adds unneeded complexity without noticeable
+ /// benefits (see discussion with @thakis in D120714).
+ uint16_t PersistentId;
protected:
// We define a set of mini-helper classes to help us interpret the bits in our
// SubclassData. These are designed to fit within a uint16_t so they pack
- // with NodeType.
+ // with PersistentId.
#if defined(_AIX) && (!defined(__GNUC__) || defined(__clang__))
// Except for GCC; by default, AIX compilers store bit-fields in 4-byte words
@@ -625,12 +632,6 @@ END_TWO_BYTE_PACK()
uint32_t CFIType = 0;
public:
- /// Unique and persistent id per SDNode in the DAG. Used for debug printing.
- /// We do not place that under `#if LLVM_ENABLE_ABI_BREAKING_CHECKS`
- /// intentionally because it adds unneeded complexity without noticeable
- /// benefits (see discussion with @thakis in D120714).
- uint16_t PersistentId;
-
//===--------------------------------------------------------------------===//
// Accessors
//
@@ -639,7 +640,7 @@ END_TWO_BYTE_PACK()
/// pre-isel nodes (those for which isMachineOpcode returns false), these
/// are the opcode values in the ISD and <target>ISD namespaces. For
/// post-isel opcodes, see getMachineOpcode.
- unsigned getOpcode() const { return (unsigned short)NodeType; }
+ unsigned getOpcode() const { return (unsigned)NodeType; }
/// Test if this node has a target-specific opcode (in the
/// \<target\>ISD namespace).
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index cd98f04f0ec81..93a74b757c585 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -660,7 +660,7 @@ static void AddNodeIDOperands(FoldingSetNodeID &ID,
}
}
-static void AddNodeIDNode(FoldingSetNodeID &ID, unsigned short OpC,
+static void AddNodeIDNode(FoldingSetNodeID &ID, unsigned OpC,
SDVTList VTList, ArrayRef<SDValue> OpList) {
AddNodeIDOpcode(ID, OpC);
AddNodeIDValueTypes(ID, VTList);
More information about the llvm-commits
mailing list