Commit Graph

29 Commits

Author SHA1 Message Date
Chris Lattner
1611273351 change EH related stuff (other than EH_LABEL) to use MCSymbol
instead of label ID's.  This cleans up and regularizes a bunch 
of code and makes way for future progress.

Unfortunately, this pointed out to me that JITDwarfEmitter.cpp
is largely copy and paste from DwarfException/MachineModuleInfo
and other places.  This is very sad and disturbing. :(

One major change here is that TidyLandingPads moved from being
called in DwarfException::BeginFunction to being called in
DwarfException::EndFunction.  There should not be any 
functionality change from doing this, but I'm not an EH expert.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 01:41:15 +00:00
Chris Lattner
0d941c15c0 remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:49:32 +00:00
Anton Korobeynikov
9184b25fa5 Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:35:59 +00:00
Bill Wendling
0a9abcbffe Use an index instead of pointers into the vector. If the vector resizes, then
the pointer values could be invalid.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95813 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 21:41:57 +00:00
Dan Gohman
f451cb870e Fix "the the" and similar typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 16:03:48 +00:00
Chris Lattner
eec791afb1 constify a bunch of dwarf stuff now that the registerinfo method
is constified.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 23:18:02 +00:00
Chris Lattner
3a9be0ee36 mcstreamerize .no_dead_strip and .reference for static ctors/dtors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23 05:51:36 +00:00
Chris Lattner
066c9acca3 rename the dwarf class to DwarfPrinter. This matches the filename
and much more accurately describes what it is all about.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94233 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22 22:23:57 +00:00
Chris Lattner
7a2ba94d03 rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase,
and add an explicit ForcePrivate argument.

Switch FunctionEHFrameInfo to be MCSymbol based instead of string based.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-16 18:37:32 +00:00
Chris Lattner
4bbf4ee149 Remove isPod() from DenseMapInfo, splitting it out to its own
isPodLike type trait.  This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15 07:26:43 +00:00
Nick Lewycky
381afae68f Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89075 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17 09:17:08 +00:00
Bill Wendling
7378b1bd00 Refactor the code that creates the "dot-label" difference. This may be used in
more than one place. No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17 01:23:53 +00:00
Bill Wendling
ed060dcb5c Refactor code that checks if it's a call to a "nounwind" function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12 21:59:20 +00:00
Bill Wendling
711bb91574 --- Reverse-merging r82282 into '.':
U    lib/CodeGen/AsmPrinter/DwarfException.cpp
U    lib/CodeGen/AsmPrinter/DwarfException.h

--- Reverse-merging r82274 into '.':
U    lib/Target/TargetLoweringObjectFile.cpp
G    lib/CodeGen/AsmPrinter/DwarfException.cpp

These revisions were breaking everything.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82396 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 09:13:15 +00:00
Bill Wendling
f41b6e5d06 Factor out label difference creation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82282 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18 21:37:56 +00:00
Bill Wendling
bb3e29932d Add helpful comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 00:04:48 +00:00
Bill Wendling
52783c63a1 Believe it or not, this is a simplification. :-)
Basically, this patch is working towards removing the hard-coded values that are
output for the CIE. In particular, the CIE augmentation and the CIE augmentation
size. Both of these should be calculated. In the process, I was able to make a
bunch of code simpler.

The encodings for the personality, LSDA, and FDE in the CIE are still not
correct. They should be generated either from target-specific callbacks (blech!)
or grokked from first-principles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 23:56:55 +00:00
Bill Wendling
7ccda0f2aa - Rename EmitCommonInformationEntry to EmitCIE.
- Rename EmitFunctionDescriptionEntry to EmitFDE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 08:08:33 +00:00
Bill Wendling
a6f91da8b2 Rename functions to something more descriptive. At the very least mention the
CIE and FDE in their names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 02:27:42 +00:00
Chris Lattner
af76e592c7 Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:48:53 +00:00
Jim Grosbach
8b818d7e98 Move the sjlj exception handling conversions to a back-end pass where they
more properly belong. This allows removing the front-end conditionalized
SJLJ code, and cleans up the generated IR considerably. All of the
infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is
added by the SjLjEHPrepare pass.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 16:41:22 +00:00
Jim Grosbach
1b747ad8a0 SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.

The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.

Built on Darwin and verified no llvm-core "make check" regressions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 00:09:57 +00:00
Bill Wendling
ade025c65c - Temporarily unbreak the build by forcing the TType "absptr", which isn't
correct. But what are you going to do? I'll fix this in the future.
- Move another large loop into its own method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 00:31:35 +00:00
Bill Wendling
d4609622ad Doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 23:23:00 +00:00
Bill Wendling
5e953ddfa3 Split out large loop into it's very own method. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-28 23:22:13 +00:00
Chris Lattner
6f37f8f9c3 fix include guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76228 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:32:07 +00:00
Devang Patel
208622db8a Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74215 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 22:36:02 +00:00
Bill Wendling
0310d768a1 Split out the DwarfDebug module from the DwarfWriter module.
Again, no intendtional functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71854 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15 09:23:25 +00:00
Bill Wendling
eb9072195c Split out the DwarfException class into its own file. No functionality change,
though the classes have been marked with "VISIBILITY_HIDDEN".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15 01:12:28 +00:00