From acaaf6500c59ac52bda07bc307f5e3249562da6a Mon Sep 17 00:00:00 2001 From: uros Date: Thu, 26 Jun 2014 20:23:34 +0000 Subject: [PATCH] PR target/61586 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX. testsuite/ChangeLog: 2014-06-26 Uros Bizjak PR target/61586 * gcc.target/alpha/pr61586.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212053 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 155 ++++++++++++++++--------------- gcc/config/alpha/alpha.c | 6 ++ gcc/testsuite/ChangeLog | 16 +++- gcc/testsuite/gcc.target/alpha/pr61586.c | 10 ++ 4 files changed, 108 insertions(+), 79 deletions(-) create mode 100644 gcc/testsuite/gcc.target/alpha/pr61586.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2fecad45baa..13eb7f3dee5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-06-26 Uros Bizjak + + PR target/61586 + * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX. + 2014-06-26 Jan Hubicka * doc/invoke.texi (-fsemantic-interposition): Document. @@ -36,8 +41,7 @@ * opts.c (default_options_optimization): Set PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast. * doc/invoke.texi (allow-load-data-races) - (allow-packed-load-data-races, allow-packed-store-data-races): - Removed. + (allow-packed-load-data-races, allow-packed-store-data-races): Removed. (allow-store-data-races): Document the new default. 2014-06-26 Martin Jambor @@ -59,59 +63,59 @@ 2014-06-26 Bernd Schmidt - * Makefile.in (COLLECT2_OBJS): Add collect-utils.o. - (LTO_WRAPPER_OBJS): New variable. - (lto-wrapper$(exeext)): Use it. - * collect2.c: Include "collect-utils.h". - (verbose, debug): Remove variables. - (at_file_supplied): No longer static. - (tool_name): New variable. - (do_wait, fork_execute, maybe_unlink): Don't declare. - (tool_cleanup): No longer static. - (notice): Remove function. - (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to - fork_execute calls. - (collect_wait, do_wait, collect_execute): Remove functions. - (maybe_unlink): No longer static. - * collect2.h (verbose, debug): Don't declare. - (at_file_supplied): Declare. - * collect-utils.c (utils_cleanup): New arg from_signal. All callers - changed. - (collect_execute): Replace with implementation from collect2, plus a - new arg use_atfile. All callers changed. - (collect_wait): Replace with implementation from collect2. - (maybe_unlink_file): Remove function. - (fork_execute): Replace with implementation from collect2, plus a - new arg use_atfile. All callers changed. - (do_wait): Add call to utils_cleanup to the error path. - * collect-utils.h (collect_execute, fork_execute, utils_cleanup) - (tool_cleanup): Adjust declarations. - * lto-wrapper.c (tool_cleanup): Add unused bool argument. - * tlink.c: Include "collect-utils.h". - (tlink_execute): New arg use_atfile. All callers changed. - (tlink_init, tlink_execute): Remove declarations. - - * collect-utils.c (save_temps): New variable. - (do_wait): Use it instead of debug. Use fatal_error. - * collect-utils.h (save_temps): Declare. - * collect2.c (verbose): Rename from vflag. All uses changed. - (tool_cleanup): New function, copied from collect_atexit. - (collect_atexit, handler): Just call it. - * collect2.h (verbose): Declaration renamed from vflag. - * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of - debug. - - * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o. - (lto-wrapper$(exeext)): Link with collect-utils.o. - * collect-utils.c: New file. - * collect-utils.h: New file. - * lto-wrapper.c: Include "collect-utils.h". - (args_name): Delete variable. - (tool_name): New variable. - (tool_cleanup): New function. - (maybe_unlink): Renamed from maybe_unlink_file. All callers changed. - (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait, - fork_execute): Remove functions. + * Makefile.in (COLLECT2_OBJS): Add collect-utils.o. + (LTO_WRAPPER_OBJS): New variable. + (lto-wrapper$(exeext)): Use it. + * collect2.c: Include "collect-utils.h". + (verbose, debug): Remove variables. + (at_file_supplied): No longer static. + (tool_name): New variable. + (do_wait, fork_execute, maybe_unlink): Don't declare. + (tool_cleanup): No longer static. + (notice): Remove function. + (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to + fork_execute calls. + (collect_wait, do_wait, collect_execute): Remove functions. + (maybe_unlink): No longer static. + * collect2.h (verbose, debug): Don't declare. + (at_file_supplied): Declare. + * collect-utils.c (utils_cleanup): New arg from_signal. All callers + changed. + (collect_execute): Replace with implementation from collect2, plus a + new arg use_atfile. All callers changed. + (collect_wait): Replace with implementation from collect2. + (maybe_unlink_file): Remove function. + (fork_execute): Replace with implementation from collect2, plus a + new arg use_atfile. All callers changed. + (do_wait): Add call to utils_cleanup to the error path. + * collect-utils.h (collect_execute, fork_execute, utils_cleanup) + (tool_cleanup): Adjust declarations. + * lto-wrapper.c (tool_cleanup): Add unused bool argument. + * tlink.c: Include "collect-utils.h". + (tlink_execute): New arg use_atfile. All callers changed. + (tlink_init, tlink_execute): Remove declarations. + + * collect-utils.c (save_temps): New variable. + (do_wait): Use it instead of debug. Use fatal_error. + * collect-utils.h (save_temps): Declare. + * collect2.c (verbose): Rename from vflag. All uses changed. + (tool_cleanup): New function, copied from collect_atexit. + (collect_atexit, handler): Just call it. + * collect2.h (verbose): Declaration renamed from vflag. + * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of + debug. + + * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o. + (lto-wrapper$(exeext)): Link with collect-utils.o. + * collect-utils.c: New file. + * collect-utils.h: New file. + * lto-wrapper.c: Include "collect-utils.h". + (args_name): Delete variable. + (tool_name): New variable. + (tool_cleanup): New function. + (maybe_unlink): Renamed from maybe_unlink_file. All callers changed. + (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait) + (fork_execute): Remove functions. 2014-06-26 Nick Clifton @@ -139,12 +143,16 @@ 2014-06-25 Jan Hubicka - * toplev.c (backend_init_target): Move init_emit_regs and init_regs to... + * toplev.c (backend_init_target): Move init_emit_regs and + init_regs to... (backend_init) ... here; skip ira_init_once and backend_init_target. - (target_reinit) ... and here; clear this_target_rtl->lang_dependent_initialized. - (lang_dependent_init_target): Clear this_target_rtl->lang_dependent_initialized; + (target_reinit) ... and here; clear + this_target_rtl->lang_dependent_initialized. + (lang_dependent_init_target): Clear + this_target_rtl->lang_dependent_initialized; break out rtl initialization to ... - (initialize_rtl): ... here; call also backend_init_target and ira_init_once. + (initialize_rtl): ... here; call also backend_init_target + and ira_init_once. * toplev.h (initialize_rtl): New function. * function.c: Include toplev.h (init_function_start): Call initialize_rtl. @@ -241,7 +249,8 @@ (set_writeonly_bit): Likewise. * lto-cgraph.c: Implementation of new symtab_node member functions that uses new IPA REF functions. - * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF function used. + * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF + function used. * lto-streamer-out.c (output_symbol_p): Likewise. * lto-streamer.h (referenced_from_this_partition_p): Argument type changed. @@ -447,9 +456,9 @@ tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c, tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-threadupdate.c, tree-ssa-uncprop.c, -tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c, -tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c, -vtable-verify.c, vtable-verify.h: Adjust. + tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c, + tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c, + vtable-verify.c, vtable-verify.h: Adjust. 2014-06-24 Richard Biener @@ -503,8 +512,8 @@ vtable-verify.c, vtable-verify.h: Adjust. * varpool.c (dump_varpool_node): Dump used_by_single_function. * tree-pass.h (make_pass_ipa_single_use): New pass. * cgraph.h (used_by_single_function): New flag. - * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream - it. + * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): + Stream it. * passes.def (pass_ipa_single_use): Scedule. * ipa.c (BOTTOM): New macro. (meet): New function @@ -518,10 +527,8 @@ vtable-verify.c, vtable-verify.h: Adjust. 2014-06-23 Kai Tietz PR target/39284 - * passes.def (peephole2): Move peephole2 pass before - before sched2 pass. - * config/i386/i386.md (peehole2): Combine memories - and indirect jumps. + * passes.def (peephole2): Move peephole2 pass before sched2 pass. + * config/i386/i386.md (peehole2): Combine memories and indirect jumps. 2014-06-23 Richard Biener @@ -628,8 +635,8 @@ vtable-verify.c, vtable-verify.h: Adjust. variant but not df. (vreinterpretv1df*, vreinterpret*v1df): New. (vreinterpretdf*, vreinterpret*df): Remove. - * config/aarch64/aarch64-simd.md (aarch64_create, aarch64_reinterpret*): - Generate V1DFmode pattern not DFmode. + * config/aarch64/aarch64-simd.md (aarch64_create, + aarch64_reinterpret*): Generate V1DFmode pattern not DFmode. * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF. (VD1): New. * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions. @@ -660,8 +667,8 @@ vtable-verify.c, vtable-verify.h: Adjust. 2014-06-23 Jan Hubicka - * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority - directly. + * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini + priority directly. 2014-06-23 Zhenqiang Chen @@ -1044,7 +1051,7 @@ vtable-verify.c, vtable-verify.h: Adjust. expand variant and aarch64_emit_call_insn. 2014-06-18 Radovan Obradovic - Tom de Vries + Tom de Vries * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter. * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index b06a5aafa6d..50b7320431e 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -8717,6 +8717,11 @@ alpha_handle_trap_shadows (void) } break; + case BARRIER: + /* __builtin_unreachable can expand to no code at all, + leaving (barrier) RTXes in the instruction stream. */ + goto close_shadow_notrapb; + case JUMP_INSN: case CALL_INSN: case CODE_LABEL: @@ -8732,6 +8737,7 @@ alpha_handle_trap_shadows (void) n = emit_insn_before (gen_trapb (), i); PUT_MODE (n, TImode); PUT_MODE (i, TImode); + close_shadow_notrapb: trap_pending = 0; shadow.used.i = 0; shadow.used.fp = 0; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8c003524225..9decbd955f3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-06-26 Uros Bizjak + + PR target/61586 + * gcc.target/alpha/pr61586.c: New test. + 2014-06-26 Paolo Carlini PR c++/57573 @@ -252,7 +257,7 @@ * gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Likewise. * gcc.dg/vect/pr26359.c: Likewise. * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Likewise. - + 2014-06-23 Marek Polacek * c-c++-common/pr49706-2.c: New test. @@ -316,10 +321,11 @@ * gcc.target/aarch64/aapcs/test_64x1_1.c: New test. * gcc.target/aarch64/aapcs/func-ret-64x1_1.c: New test. * gcc.target/aarch64/simd/ext_f64_1.c (main): Compare vector elements. - * gcc.target/aarch64/vadd_f64.c: Rewrite with macro to use vector types. + * gcc.target/aarch64/vadd_f64.c: Rewrite with macro to use + vector types. * gcc.target/aarch64/vsub_f64.c: Likewise. - * gcc.target/aarch64/vdiv_f.c (INDEX*, RUN_TEST): Remove indexing scheme - as now the same for all variants. + * gcc.target/aarch64/vdiv_f.c (INDEX*, RUN_TEST): Remove indexing + scheme as now the same for all variants. * gcc.target/aarch64/vrnd_f64_1.c (compare_f64): Return float64_t not float64x1_t. @@ -375,7 +381,7 @@ 2014-06-20 Martin Jambor PR ipa/61540 - * g++.dg/ipa/pr61540.C: New test. + * g++.dg/ipa/pr61540.C: New test. 2014-06-20 Yury Gribov Max Ostapenko diff --git a/gcc/testsuite/gcc.target/alpha/pr61586.c b/gcc/testsuite/gcc.target/alpha/pr61586.c new file mode 100644 index 00000000000..afb1af3597f --- /dev/null +++ b/gcc/testsuite/gcc.target/alpha/pr61586.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mieee" } */ + +void foo (int *dimensions, double **params, int hh) +{ + if (params[hh]) + ; + else if (dimensions[hh] > 0) + params[hh][0] = 1.0f; +} -- 2.11.4.GIT