For now, disable shrink-wrapping (a new optimization pass that computes
the safe point to insert the prologue and epilogue of the function) on X86. This prevents problems with some functions using TLS, such as in jemalloc, and which was the cause for Address Sanitizer crashes. The correct fix is still being discussed upstream.
This commit is contained in:
parent
a49d8b6ecc
commit
5529affd65
@ -2593,6 +2593,9 @@ bool X86FrameLowering::canUseAsEpilogue(const MachineBasicBlock &MBB) const {
|
||||
bool X86FrameLowering::enableShrinkWrapping(const MachineFunction &MF) const {
|
||||
// If we may need to emit frameless compact unwind information, give
|
||||
// up as this is currently broken: PR25614.
|
||||
#if 1
|
||||
return false;
|
||||
#else
|
||||
return (MF.getFunction()->hasFnAttribute(Attribute::NoUnwind) || hasFP(MF)) &&
|
||||
// The lowering of segmented stack and HiPE only support entry blocks
|
||||
// as prologue blocks: PR26107.
|
||||
@ -2601,6 +2604,7 @@ bool X86FrameLowering::enableShrinkWrapping(const MachineFunction &MF) const {
|
||||
// - adjustForHiPEPrologue
|
||||
MF.getFunction()->getCallingConv() != CallingConv::HiPE &&
|
||||
!MF.shouldSplitStack();
|
||||
#endif
|
||||
}
|
||||
|
||||
MachineBasicBlock::iterator X86FrameLowering::restoreWin32EHStackPointers(
|
||||
|
Loading…
x
Reference in New Issue
Block a user