llvm/lib
Bill Wendling d0446b08c4 The DWARF to compact encoding converter assumes that the DW_CFA_def_cfa_offset
comes after the DW_CFA_def_cfa_register, because the CFA is really ESP from the
start of the function and only gets an offset when the "subl $xxx,%esp"
instruction happens, not the other way around.

And reapply r72898:

The DWARF unwind info was incorrect. While compiling with
`-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a
lot of function, and then they would be `0'. The linker (at least on Darwin)
needs to encode the stack size. In some cases, the stack size is too large to
directly encode. So the linker checks to see if there is a "subl $xxx,%esp"
instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If
so, the compact encoding records the offset in the function to where the stack
size is embedded. But because the `DW_CFA_advance_loc' instructions are missing,
it looks before the function and dies.

So, instead of emitting the EH debug label before the stack adjustment
operations, emit it afterwards, right before the frame move stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73465 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 04:06:15 +00:00
..
Analysis Support vector casts in more places, fixing a variety of assertion 2009-06-15 22:12:54 +00:00
Archive Avoid leaking memory in an error path. Noticed 2009-06-11 08:09:49 +00:00
AsmParser Fix a typo in a diagnostic. 2009-06-15 21:52:11 +00:00
Bitcode Don't remove aggregate-typed module level constants before encoding functions 2009-06-12 05:20:12 +00:00
CodeGen Fix typos. 2009-06-16 04:02:03 +00:00
CompilerDriver -write-graph now can be used with -o. 2009-03-27 12:57:14 +00:00
Debugger
ExecutionEngine After obtaining the lock, look if the function has been codegen'd by 2009-06-12 14:11:08 +00:00
Linker Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
Support Add support for outputting ANSI colors to raw_fd_ostream. 2009-06-04 07:09:50 +00:00
System glibc has two versions of strerror_r, a standards compliant one and a GNU 2009-06-15 18:05:46 +00:00
Target The DWARF to compact encoding converter assumes that the DW_CFA_def_cfa_offset 2009-06-16 04:06:15 +00:00
Transforms Use Type::getScalarType. 2009-06-16 00:20:26 +00:00
VMCore Use Type::isIntOrIntVector and Type::isFPOrFPVector. 2009-06-15 22:25:12 +00:00
Makefile