forked from OSchip/llvm-project
[NFC][Alignment] Use Align in SafeStack
This commit is contained in:
parent
6725d80640
commit
c0e85f1c3b
|
@ -127,7 +127,7 @@ class SafeStack {
|
|||
///
|
||||
/// 16 seems like a reasonable upper bound on the alignment of objects that we
|
||||
/// might expect to appear on the stack on most common targets.
|
||||
static constexpr uint64_t StackAlignment = 16;
|
||||
static constexpr Align StackAlignment = Align::Constant<16>();
|
||||
|
||||
/// Return the value of the stack canary.
|
||||
Value *getStackGuard(IRBuilder<> &IRB, Function &F);
|
||||
|
@ -201,7 +201,7 @@ public:
|
|||
bool run();
|
||||
};
|
||||
|
||||
constexpr uint64_t SafeStack::StackAlignment;
|
||||
constexpr Align SafeStack::StackAlignment;
|
||||
|
||||
uint64_t SafeStack::getStaticAllocaAllocationSize(const AllocaInst* AI) {
|
||||
uint64_t Size = DL.getTypeAllocSize(AI->getAllocatedType());
|
||||
|
@ -673,13 +673,12 @@ void SafeStack::moveDynamicAllocasToUnsafeStack(
|
|||
SP = IRB.CreateSub(SP, Size);
|
||||
|
||||
// Align the SP value to satisfy the AllocaInst, type and stack alignments.
|
||||
uint64_t Align =
|
||||
std::max(std::max(DL.getPrefTypeAlignment(Ty), AI->getAlignment()),
|
||||
StackAlignment);
|
||||
auto Align = std::max(std::max(DL.getPrefTypeAlign(Ty), AI->getAlign()),
|
||||
StackAlignment);
|
||||
|
||||
assert(isPowerOf2_32(Align));
|
||||
Value *NewTop = IRB.CreateIntToPtr(
|
||||
IRB.CreateAnd(SP, ConstantInt::get(IntPtrTy, ~uint64_t(Align - 1))),
|
||||
IRB.CreateAnd(SP,
|
||||
ConstantInt::get(IntPtrTy, ~uint64_t(Align.value() - 1))),
|
||||
StackPtrTy);
|
||||
|
||||
// Save the stack pointer.
|
||||
|
|
|
@ -52,7 +52,7 @@ class StackLayout {
|
|||
void layoutObject(StackObject &Obj);
|
||||
|
||||
public:
|
||||
StackLayout(uint64_t StackAlignment) : MaxAlignment(StackAlignment) {}
|
||||
StackLayout(Align StackAlignment) : MaxAlignment(StackAlignment) {}
|
||||
|
||||
/// Add an object to the stack frame. Value pointer is opaque and used as a
|
||||
/// handle to retrieve the object's offset in the frame later.
|
||||
|
|
Loading…
Reference in New Issue