mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%
speedup in isel time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29640 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -63,7 +63,7 @@ namespace llvm {
|
||||
class NodeID {
|
||||
/// Use a SmallVector to avoid a heap allocation in the common case.
|
||||
///
|
||||
SmallVector<unsigned char, 256> Bits;
|
||||
SmallVector<unsigned, 32> Bits;
|
||||
public:
|
||||
NodeID() {}
|
||||
NodeID(SDNode *N);
|
||||
@@ -77,13 +77,13 @@ namespace llvm {
|
||||
const SDOperand *OpList, unsigned N);
|
||||
|
||||
void SetOpcode(unsigned short ID) {
|
||||
Bits.push_back(ID & 0xFF);
|
||||
Bits.push_back(ID >> 8);
|
||||
Bits.push_back(ID);
|
||||
}
|
||||
|
||||
/// getOpcode - If the opcode has been set for this NodeID, return it.
|
||||
/// getOpcode - Return the opcode that has been set for this NodeID.
|
||||
///
|
||||
unsigned getOpcode() const {
|
||||
return Bits[0] + (Bits[1] << 8);
|
||||
return Bits[0];
|
||||
}
|
||||
|
||||
void SetValueTypes(const void *VTList) { AddPointer(VTList); }
|
||||
@@ -99,21 +99,14 @@ namespace llvm {
|
||||
void AddOperand(SDOperand Op);
|
||||
void AddPointer(const void *Ptr);
|
||||
void AddInteger(signed I) {
|
||||
Bits.push_back((I >> 0) & 0xFF);
|
||||
Bits.push_back((I >> 8) & 0xFF);
|
||||
Bits.push_back((I >> 16) & 0xFF);
|
||||
Bits.push_back((I >> 24) & 0xFF);
|
||||
Bits.push_back(I);
|
||||
}
|
||||
void AddInteger(unsigned I) {
|
||||
AddInteger((signed)I);
|
||||
Bits.push_back(I);
|
||||
}
|
||||
void AddInteger(uint64_t I) {
|
||||
union {
|
||||
uint64_t x;
|
||||
unsigned char A[8];
|
||||
};
|
||||
x = I;
|
||||
Bits.append(A, A+8);
|
||||
Bits.push_back(unsigned(I));
|
||||
Bits.push_back(unsigned(I >> 32));
|
||||
}
|
||||
|
||||
unsigned ComputeHash() const;
|
||||
|
Reference in New Issue
Block a user