[llvm-dev] no-frame-pointer-elim & optimized

Carlo Kok via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 26 11:31:53 PDT 2017

On 2017-04-26 19:56, Eric Christopher wrote:
> That's really weird. I'm quite surprised that the entry block was moved
> so much later in the function but haven't had a chance to look more at
> it. Probably want to take a look and find out where that's happening and
> why.

 From irc, thegameg helped me find the -enable-shrink-wrap=false, which 
"fixes" this, although this option doesn't seem to have a switch from 
code, only from the llc command line.

Unless I'm missing something obvious, this will always screw up debug 
info on Windows 32bits.

The check in code to enable this calls:

   bool usesWindowsCFI() const {
     return ExceptionsType == ExceptionHandling::WinEH &&
            (WinEHEncodingType != WinEH::EncodingType::Invalid &&
             WinEHEncodingType != WinEH::EncodingType::X86);

Where EncodingType::X86: //Windows x86, uses no CFI, just EH tables

The comment seems to imply there are EH tables for i386 Windows, however 
I can't find them.

Carlo Kok
RemObjects Software

More information about the llvm-dev mailing list