Commit d989dba8 by Tom de Vries Committed by Tom de Vries

[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
parent a77e3a39
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. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment