Evan Cheng
76792992d6
Add MCObjectFileInfo and sink the MCSections initialization code from
...
TargetLoweringObjectFileImpl down to MCObjectFileInfo.
TargetAsmInfo is done to one last method. It's *almost* gone!
llvm-svn: 135569
2011-07-20 05:58:47 +00:00
Evan Cheng
67c033e6b8
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
...
better location welcome).
llvm-svn: 135438
2011-07-18 22:29:13 +00:00
Rafael Espindola
a678098f24
Initialize moveTypeModule.
...
llvm-svn: 131157
2011-05-10 21:54:59 +00:00
Rafael Espindola
fdc3e6fab6
Use .cfi_sections to put the unwind info in .debug_frame when possible. With
...
this clang will use .debug_frame in, for example,
clang -g -c -m32 test.c
This matches gcc's behaviour. It looks like .debug_frame is a bit bigger
than .eh_frame, but has the big advantage of not being allocated.
llvm-svn: 131140
2011-05-10 18:39:09 +00:00
Rafael Espindola
e406670954
Only produce the eh_frame section if we have at least one personality function.
...
llvm-svn: 130692
2011-05-02 15:49:52 +00:00
Rafael Espindola
1fc5bf9fc5
The last hack for producing bit identical output with cfi on OS X.
...
llvm-svn: 130504
2011-04-29 15:09:53 +00:00
Rafael Espindola
697edc89a5
Change DwarfCFIException's member variables to track what it actually
...
emmits: .cfi_personality, .cfi_lsda and the moves.
llvm-svn: 130503
2011-04-29 14:48:51 +00:00
Rafael Espindola
b7a012a282
Factor some code to needsCFIMoves. Avoid printing moves when we don't have to.
...
llvm-svn: 130501
2011-04-29 14:14:06 +00:00
Rafael Espindola
ce83fc3463
Remove unnecessary argument.
...
llvm-svn: 130343
2011-04-27 23:17:57 +00:00
Rafael Espindola
08704349da
Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, and
...
give it a bit more responsibility. Also implement it for MachO.
If hacked to use cfi, 32 bit MachO will produce
.cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr
and 64 bit will produce
.cfi_presonality ___gxx_personality_v0
The general idea is that .cfi_personality gets passed the final symbol. It is
up to codegen to produce it if using indirect representation (like 32 bit
MachO), but it is up to MC to decide which relocations to create.
llvm-svn: 130341
2011-04-27 23:08:15 +00:00
Rafael Espindola
a076199e71
Simplify the logic. Noticed by aKor.
...
llvm-svn: 130116
2011-04-24 19:55:34 +00:00
Rafael Espindola
5c54ecc9af
Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc.
...
Fixes PR9787.
llvm-svn: 130115
2011-04-24 19:00:34 +00:00
Benjamin Kramer
659bfb34ff
Remove unused variable.
...
llvm-svn: 129639
2011-04-16 10:30:47 +00:00
Rafael Espindola
a83b177035
Put each personality function in a section. This fixes the gnu ld warning:
...
error in foo.o; no .eh_frame_hdr table will be created.
llvm-svn: 129635
2011-04-16 03:51:21 +00:00
Rafael Espindola
a01cdb0e37
Add 129518 back with a fix for when we are producing eh just because of debug info.
...
Change ELF systems to use CFI for producing the EH tables. This reduces the
size of the clang binary in Debug builds from 690MB to 679MB.
llvm-svn: 129571
2011-04-15 15:11:06 +00:00
NAKAMURA Takumi
b5e3e9dd27
Revert r129518, "Change ELF systems to use CFI for producing the EH tables. This reduces the"
...
It broke several builds.
llvm-svn: 129557
2011-04-15 03:35:57 +00:00
Rafael Espindola
aa2a7cd828
Change ELF systems to use CFI for producing the EH tables. This reduces the
...
size of the clang binary in Debug builds from 690MB to 679MB.
llvm-svn: 129518
2011-04-14 15:18:53 +00:00
Anton Korobeynikov
9be547cfd3
Add a possibility to switch between CFI directives- and table-based frame description emission. Currently all the backends use table-based stuff.
...
llvm-svn: 123476
2011-01-14 21:58:08 +00:00
Anton Korobeynikov
b46ef57de5
Add CFI directives-based frame information emission. Not hooked yet.
...
llvm-svn: 123474
2011-01-14 21:57:53 +00:00