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:
Dimitry Andric 2016-02-11 20:00:22 +00:00
parent a49d8b6ecc
commit 5529affd65
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/clang380-import/; revision=295543

View File

@ -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(