[PATCH] D135453: [SelectionDAG] Use consistent type sizes for opcode
Mirko Brkusanin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 12 08:07:05 PDT 2022
mbrkusanin updated this revision to Diff 467153.
mbrkusanin added a comment.
- Updated comment.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135453/new/
https://reviews.llvm.org/D135453
Files:
llvm/include/llvm/CodeGen/SelectionDAGNodes.h
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -660,7 +660,7 @@
}
}
-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);
Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
===================================================================
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -462,12 +462,19 @@
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 @@
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 @@
/// 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).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D135453.467153.patch
Type: text/x-patch
Size: 2540 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221012/847deb4a/attachment-0001.bin>
More information about the llvm-commits
mailing list