[llvm-commits] [PATCH] __builtin_debugtrap() intrinsic function (change to Clang and CodeGen)
Michael Liao
michael.liao at intel.com
Fri Oct 19 11:44:47 PDT 2012
On Fri, 2012-10-19 at 11:23 -0700, Shuxin Yang wrote:
> Hi,
>
> This patch is to fix radar://8426430. It is about llvm support of
> __builtin_debugtrap()
> which is supposed to consistently raise SIGTRAP across all systems. In
> contrast,
> __builtin_trap() behave differently on different systems. e.g. it raises
> SIGTRAP on ARM, and
> SIGILL on X86. The purpose of __builtin_debugtrap() is to consistently
> provide "trap"
> functionality, in the mean time preserve the compatibility with on gcc
> on __builtin_trap().
>
> The X86 backend is already able to handle debugtrap(). This patch is to:
> 1) make front-end recognize "__builtin_debugtrap()" (emboddied in the
> one-line change to Clang).
> 2) In DAG legalization phase, by default, "debugtrap" will be
> replaced with "trap", which
> make the __builtin_debugtrap() "available" to all existing ports
> without the hassle of
> changing their code.
> 3) If trap-function is specified (via -trap-func=xyz to llc), both
> __builtin_debugtrap() and
> __builtin_trap() will be expanded into the function call of the
> specified trap function.
> This behavior may need change in the future.
LGTM for the X86 specific part.
- Michael
>
> The provided testing-case is to make sure 2) and 3) are working for
> ARM port, and we
> already have a testing case for x86.
>
> This change pass regression test, SingleSource and MultipleSource test.
>
> Thanks
> Shuxin
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list