return const_cast<Value*>(this)->DoPHITranslation(CurBB, PredBB);
}
+ /// MaximumAlignment - This is the greatest alignment value supported by
+ /// load, store, and alloca instructions, and global values.
+ static const unsigned MaximumAlignment = 1u << 29;
+
protected:
unsigned short getSubclassDataFromValue() const { return SubclassData; }
void setValueSubclassData(unsigned short D) { SubclassData = D; }
enum { NumLowBitsAvailable = 2 };
};
-/// MaximumAlignment - This is the greatest alignment value supported by
-/// load, store, and alloca instructions, and global values.
-static const unsigned MaximumAlignment = 1u << 29;
-
} // End llvm namespace
#endif
if (ParseUInt32(Alignment)) return true;
if (!isPowerOf2_32(Alignment))
return Error(AlignLoc, "alignment is not a power of two");
- if (Alignment > MaximumAlignment)
+ if (Alignment > Value::MaximumAlignment)
return Error(AlignLoc, "huge alignments are not supported yet");
return false;
}
TrailZ = std::min(TrailZ, unsigned(sizeof(unsigned) * CHAR_BIT - 1));
unsigned Align = 1u << std::min(BitWidth - 1, TrailZ);
+ unsigned MaxAlign = Value::MaximumAlignment;
// LLVM doesn't support alignments larger than this currently.
- Align = std::min(Align, MaximumAlignment);
+ Align = std::min(Align, MaxAlign);
if (PrefAlign > Align)
Align = EnforceKnownAlignment(V, Align, PrefAlign);