[PowerPC] Make sure the first probe is full size or is the last probe when stack...
authorKai Luo <lkail@cn.ibm.com>
Wed, 9 Jun 2021 06:24:14 +0000 (06:24 +0000)
committerKai Luo <lkail@cn.ibm.com>
Wed, 9 Jun 2021 06:35:35 +0000 (06:35 +0000)
commitbf58600badb1138a501ad81b07298207a7a64b2a
tree892ed2081292a53331d13e0af6990c430aabe75e
parent674dd9d08ec085a82f2a4b3236a890644b4d0bc2
[PowerPC] Make sure the first probe is full size or is the last probe when stack is realigned

When `-fstack-clash-protection` is enabled and stack has to be realigned, some parts of redzone is written prior the probe, so probe might overwrite content already written in redzone. To avoid it, we have to make sure the first probe is at full probe size or is the last probe so that we can skip redzone.

It also fixes violation of ABI under PPC where `r1` isn't updated atomically.

This fixes https://bugs.llvm.org/show_bug.cgi?id=49903.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D100290
llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
llvm/test/CodeGen/PowerPC/pr46759.ll
llvm/test/CodeGen/PowerPC/stack-clash-prologue-nounwind.ll
llvm/test/CodeGen/PowerPC/stack-clash-prologue.ll