[PATCH][MC/SPARC] Add support for EH to SPARC backend

Venkatraman Govindaraju venkatra at cs.wisc.edu
Fri Sep 6 07:50:04 PDT 2013


Hi Rafael,

  Thank you for the reviews.
   Now. I split the patch into three patches.
  First patch implements parsing and emitting .cfi_window_save and checks
the binary output also. Second patch teaches AsmPrinter how to emit
.cfi_register, which is required for implemening exceptionhandling for
SPARC. The final patch implements ExceptionHandling support in sparc
backend.

  Originally I named EmitCFIGNUWIndowSave because the corresponding enum in
llvm/Support/dwarf.h is DW_CFA_GNU_window_save. Now, I renamed the
functions as CFIWindowSave to be consistent with the .cfi_window_save as
suggested.

  The EmitCFIWindowSave() and ParseCFIWindowSave() functions still start
with uppercase letter to be consistent with other methods in the
AsmStreamer and AsmParser class.

Thanks,
Venkatraman


On Thu, Sep 5, 2013 at 1:45 PM, Rafael EspĂ­ndola <rafael.espindola at gmail.com
> wrote:

> Why the EmitCFIGNUWindowSave name? The other methods are named almost
> 1:1 with the instruction. Also, please start new methods with a
> lowercase letter.
>
> +  case MCCFIInstruction::OpRegister:
> +    OutStreamer.EmitCFIRegister(Inst.getRegister(), Inst.getRegister2());
> +    break;
>
> Is this related?
>
> +  ExceptionsType = ExceptionHandling::DwarfCFI;
>
> Can you split this and lib/Target/Sparc/SparcFrameLowering.cpp  to a
> followup patch? In fact, please make the first patch be just about
> parsing and emitting .cfi_window_save. The testcase should check the
> binary output too.
>
>
> On 1 September 2013 13:37, Venkatraman Govindaraju <venkatra at cs.wisc.edu>
> wrote:
> >
> > Thank you for the comment. I updated the patch with support for the new
> CFI
> > directive in MC/MCParser/AsmParser.cpp.
> >
> > Please let me know if it is okay to commit.
> >
> > Thanks,
> > Venkatraman
> >
> >
> > On Thu, Aug 29, 2013 at 6:11 PM, Bill Wendling <wendling at apple.com>
> wrote:
> >>
> >> Hi Venkatraman,
> >>
> >> One comment, you should also add parsing support for the new CFI
> directive
> >> in lib/MC/MCParser/AsmParser.cpp.
> >>
> >> -bw
> >>
> >> On Aug 28, 2013, at 1:34 PM, Venkatraman Govindaraju
> >> <venkatra at cs.wisc.edu> wrote:
> >>
> >> > Ping.
> >> >
> >> >
> >> > On Fri, Aug 9, 2013 at 10:57 PM, Venkatraman Govindaraju
> >> > <venkatra at cs.wisc.edu> wrote:
> >> > Please review the attached patch.
> >> >
> >> > This patch enables exception handling (using DwarfCFI) for SPARC.
> >> >
> >> > This patch also modifies MC layer so that the SPARC backend can emit
> >> > ".cfi_window_save" and ".cfi_register" directives, which are required
> for EH
> >> > to work correctly in SPARC.
> >> >
> >> > Thanks,
> >> > Venkatraman
> >> >
> >> > _______________________________________________
> >> > llvm-commits mailing list
> >> > llvm-commits at cs.uiuc.edu
> >> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >>
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130906/bccb43d5/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-cfi-window-save.patch
Type: application/octet-stream
Size: 9227 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130906/bccb43d5/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Allow-asmprinter-to-emit-cfi-register.patch
Type: application/octet-stream
Size: 981 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130906/bccb43d5/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-support-eh-for-sparc.patch
Type: application/octet-stream
Size: 8136 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130906/bccb43d5/attachment-0002.obj>


More information about the llvm-commits mailing list