Emit smaller exception tables for non-SJLJ mode.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 9 Feb 2018 17:13:37 +0000 (17:13 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 9 Feb 2018 17:13:37 +0000 (17:13 +0000)
commitc052fa0bd384f52bcf4c5ddb510b9b0939183edc
tree3833c7d5ae10a242dba38d7a0dccbe4635fbe1de
parentd09b416943fec535f73950b0954e0fcd17719a75
Emit smaller exception tables for non-SJLJ mode.

* Use uleb128 for code offsets in the LSDA call site table.
* Omit the TTBase offset if the type table is empty.

This change can reduce the size of the DWARF/Itanium LSDA by about half.

Patch by Ryan Prichard!

llvm-svn: 324750
llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
llvm/test/CodeGen/ARM/dwarf-eh.ll
llvm/test/CodeGen/ARM/ehabi-handlerdata-nounwind.ll
llvm/test/CodeGen/ARM/ehabi-handlerdata.ll
llvm/test/CodeGen/X86/eh-label.ll
llvm/test/CodeGen/X86/eh-unknown.ll
llvm/test/CodeGen/X86/patchpoint-invoke.ll
llvm/test/CodeGen/X86/push-cfi-obj.ll
llvm/test/CodeGen/X86/statepoint-invoke.ll
llvm/test/CodeGen/XCore/exception.ll