[c++] Don't emit exception tables for UI_NONE
If a target does not support exceptions, it can indicate this by returning UI_NONE in TARGET_EXCEPT_UNWIND_INFO. Currently the compiler still emits exception tables for such a target. This patch makes sure that no exception tables are emitted if the target does not support exceptions. This allows us to remove a workaround in TARGET_ASM_BYTE_OP in the nvptx port. Build on x86_64 with nvptx accelerator, and tested libgomp. Build and reg-tested on x86_64. 2018-08-03 Tom de Vries <tdevries@suse.de> * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return UI_NONE. * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define. * except.c (output_function_exception_table): Do early exit if targetm_common.except_unwind_info (&global_options) == UI_NONE. From-SVN: r263287
This commit is contained in:
parent
a77e3a39de
commit
d989dba8ef
4 changed files with 11 additions and 5 deletions
|
@ -1,3 +1,11 @@
|
|||
2018-08-03 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return
|
||||
UI_NONE.
|
||||
* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define.
|
||||
* except.c (output_function_exception_table): Do early exit if
|
||||
targetm_common.except_unwind_info (&global_options) == UI_NONE.
|
||||
|
||||
2018-08-03 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* predict.c (dump_prediction): Change to 2 digits
|
||||
|
|
|
@ -33,7 +33,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
enum unwind_info_type
|
||||
nvptx_except_unwind_info (struct gcc_options *opts ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return UI_TARGET;
|
||||
return UI_NONE;
|
||||
}
|
||||
|
||||
#undef TARGET_HAVE_NAMED_SECTIONS
|
||||
|
|
|
@ -6051,9 +6051,6 @@ nvptx_can_change_mode_class (machine_mode, machine_mode, reg_class_t)
|
|||
#undef TARGET_HAVE_SPECULATION_SAFE_VALUE
|
||||
#define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
|
||||
|
||||
#undef TARGET_ASM_BYTE_OP
|
||||
#define TARGET_ASM_BYTE_OP "// .byte "
|
||||
|
||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
|
||||
#include "gt-nvptx.h"
|
||||
|
|
|
@ -3189,7 +3189,8 @@ output_function_exception_table (int section)
|
|||
rtx personality = get_personality_function (current_function_decl);
|
||||
|
||||
/* Not all functions need anything. */
|
||||
if (!crtl->uses_eh_lsda)
|
||||
if (!crtl->uses_eh_lsda
|
||||
|| targetm_common.except_unwind_info (&global_options) == UI_NONE)
|
||||
return;
|
||||
|
||||
/* No need to emit any boilerplate stuff for the cold part. */
|
||||
|
|
Loading…
Add table
Reference in a new issue