gcc.git
9 years agoRename fuse-caller-save
Tom de Vries [Wed, 3 Dec 2014 10:28:25 +0000 (10:28 +0000)]
Rename fuse-caller-save

2014-12-03  Tom de Vries  <tom@codesourcery.com>

PR rtl-optimization/63957
* doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
* final.c (rest_of_handle_final): Replace flag_use_caller_save with
flag_ipa_ra.
(get_call_reg_set_usage): Same.
* lra-assigns.c (lra_assign): Same.
* lra-constraints.c (need_for_call_save_p): Same.
* lra-lives.c (process_bb_lives): Same.
* lra.c (lra): Same.
* calls.c (expand_call): Same.
(emit_library_call_value_1): Same.
* config/arm/arm.c (arm_option_override): Same.
* opts.c (default_options_table): Replace OPT_fuse_caller_save with
OPT_fipa_ra.
* target.def (call_fusage_contains_non_callee_clobbers): Replace
fuse-caller-save with fipa-ra.
* doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
* common.opt: Same.

* gcc.dg/ira-shrinkwrap-prep-1.c: Replace -fno-use-caller-save with
-fno-ipa-ra.
* gcc.dg/ira-shrinkwrap-prep-2.c: Same.
* gcc.target/aarch64/aapcs64/aapcs64.exp: Same.
* gcc.dg/fuse-caller-save.c: Replace -fuse-caller-save with -fipa-ra.
* gcc.target/aarch64/fuse-caller-save.c: Same.
* gcc.target/arm/fuse-caller-save.c: Same.
* gcc.target/i386/fuse-caller-save-rec.c: Same.
* gcc.target/i386/fuse-caller-save-xmm-run.c: Same.
* gcc.target/i386/fuse-caller-save-xmm.c: Same.
* gcc.target/i386/fuse-caller-save.c: Same.
* gcc.target/mips/fuse-caller-save-micromips.c: Same.
* gcc.target/mips/fuse-caller-save-mips16.c: Same.
* gcc.target/mips/fuse-caller-save.c: Same.
* gcc.target/mips/mips.exp: Replace use-caller-save with ipa-ra in
-ffoo/-fno-foo options.

From-SVN: r218305

9 years agoImprove optimization of ASan checks.
Yury Gribov [Wed, 3 Dec 2014 09:23:28 +0000 (09:23 +0000)]
Improve optimization of ASan checks.

2014-12-03  Yury Gribov  <y.gribov@samsung.com>

gcc/
* sanopt.c (maybe_get_single_definition): New function.
(maybe_get_dominating_check): Ditto.
(can_remove_asan_check): Ditto.
(struct tree_map_traits): New struct.
(struct sanopt_ctx): Use custom traits for asan_check_map.
(maybe_optimize_ubsan_null_ifn): Move code to
maybe_get_dominating_check.
(maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
into account when optimizing.
(sanopt_optimize_walker): Optimize ASan checks even when
recovering.

From-SVN: r218304

9 years agoconstraints.md (Yr): New.
Ilya Enkovich [Wed, 3 Dec 2014 08:45:45 +0000 (08:45 +0000)]
constraints.md (Yr): New.

gcc/

* config/i386/constraints.md (Yr): New.
* config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
* config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
which use only NO_REX_SSE_REGS.
(vec_set<mode>_0): Likewise.
(*vec_setv4sf_sse4_1): Likewise.
(sse4_1_insertps): Likewise.
(*sse4_1_extractps): Likewise.
(*sse4_1_mulv2siv2di3<mask_name>): Likewise.
(*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
(*sse4_1_<code><mode>3<mask_name>): Likewise.
(*sse4_1_<code><mode>3): Likewise.
(*sse4_1_eqv2di3): Likewise.
(sse4_2_gtv2di3): Likewise.
(*vec_extractv4si): Likewise.
(*vec_concatv2si_sse4_1): Likewise.
(vec_concatv2di): Likewise.
(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
(<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
(<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
(<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
(<sse4_1_avx2>_mpsadbw): Likewise.
(<sse4_1_avx2>packusdw<mask_name>): Likewise.
(<sse4_1_avx2>_pblendvb): Likewise.
(sse4_1_pblendw): Likewise.
(sse4_1_phminposuw): Likewise.
(sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
(sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
(sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
(sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
(sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
(sse4_1_<code>v2siv2di2<mask_name>): Likewise.
(sse4_1_ptest): Likewise.
(<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
(sse4_1_round<ssescalarmodesuffix>): Likewise.
* config/i386/subst.md (mask_prefix4): New.
* config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.

gcc/testsuites/

* gcc.target/i386/sse2-init-v2di-2.c: Adjust to changed
vec_concatv2di template.

From-SVN: r218303

9 years agore PR rtl-optimization/52714 (ICE in fixup_reorder_chain, at cfglayout.c:880)
Segher Boessenkool [Wed, 3 Dec 2014 06:00:54 +0000 (07:00 +0100)]
re PR rtl-optimization/52714 (ICE in fixup_reorder_chain, at cfglayout.c:880)

PR rtl-optimization/52714
* combine.c (try_combine): Allow combining two insns into two
new insns if at least one of those is a noop.

gcc/testsuite/
* gcc.target/m68k/pr52714.c: New testcase.

From-SVN: r218302

9 years agotarget.def (fusion_priority): Wrap code with @smallexample.
Bin Cheng [Wed, 3 Dec 2014 05:25:40 +0000 (05:25 +0000)]
target.def (fusion_priority): Wrap code with @smallexample.

* target.def (fusion_priority): Wrap code with @smallexample.
* doc/tm.texi: Regenerated.

From-SVN: r218301

9 years agore PR libstdc++/64161 (bootstrap error: condition_variable.cc:134:7: error: 'atexit...
Jonathan Wakely [Wed, 3 Dec 2014 01:34:03 +0000 (01:34 +0000)]
re PR libstdc++/64161 (bootstrap error: condition_variable.cc:134:7: error: 'atexit' is not a member of 'std')

PR libstdc++/64161
* src/c++11/condition_variable.cc: Include <cstdlib>.

From-SVN: r218300

9 years agoDaily bump.
GCC Administrator [Wed, 3 Dec 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218299

9 years agoerror.c (warnings_not_errors): Use bool.
Tobias Burnus [Tue, 2 Dec 2014 23:39:49 +0000 (00:39 +0100)]
error.c (warnings_not_errors): Use bool.

2014-12-02  Tobias Burnus  <burnus@net-b.de>
            Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * error.c (warnings_not_errors): Use bool.
        (gfc_clear_error): Update.
        (gfc_get_errors): Ditto. Use bool argument.
        * gfortran.h (gfc_get_errors): Update prototype.
        * resolve.c (resolve_global_procedure): Update call.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r218296

9 years agolibcpp uses diagnostic->override_column to give a custom column number to diagnostics.
Manuel López-Ibáñez [Tue, 2 Dec 2014 23:16:21 +0000 (23:16 +0000)]
libcpp uses diagnostic->override_column to give a custom column number to diagnostics.

libcpp uses diagnostic->override_column to give a custom column number to
diagnostics. This is taken into account when building the prefix, but it was
missing when placing the caret.

2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* diagnostic.c (diagnostic_show_locus): Honor override_column when
placing the caret.

From-SVN: r218295

9 years agodownload_prerequisites: Download ISL 0.14 instead of 0.12.2.
Tobias Burnus [Tue, 2 Dec 2014 22:41:01 +0000 (23:41 +0100)]
download_prerequisites: Download ISL 0.14 instead of 0.12.2.

2014-12-02  Tobias Burnus  <burnus@net-b.de>

        * download_prerequisites: Download ISL 0.14 instead of 0.12.2.

From-SVN: r218294

9 years agoasan: support for globals in kernel
Dmitry Vyukov [Tue, 2 Dec 2014 18:58:59 +0000 (10:58 -0800)]
asan: support for globals in kernel

2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
* asan.c: (asan_finish_file): Use default priority for constructors
in kernel mode.

From-SVN: r218281

9 years agoavx512ifma-vpmaddhuq-2.c: Define AVX512IFMA.
Uros Bizjak [Tue, 2 Dec 2014 17:32:27 +0000 (18:32 +0100)]
avx512ifma-vpmaddhuq-2.c: Define AVX512IFMA.

* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Define AVX512IFMA.
* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermb-2.c: Define AVX512VBMI.
* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.

From-SVN: r218280

9 years agoconstexpr.c (cxx_eval_check_shift_p): New function.
Marek Polacek [Tue, 2 Dec 2014 17:23:34 +0000 (17:23 +0000)]
constexpr.c (cxx_eval_check_shift_p): New function.

* constexpr.c (cxx_eval_check_shift_p): New function.
(cxx_eval_binary_expression): Call it.  Set NON_CONSTANT_P if it
returns true.

* g++.dg/cpp0x/constexpr-shift1.C: New test.
* g++.dg/cpp1y/constexpr-shift1.C: New test.
* g++.dg/ubsan/pr63956.C: Add dg-errors.

From-SVN: r218279

9 years agoline-map.h (linemap_assert_fails): Declare.
Manuel López-Ibáñez [Tue, 2 Dec 2014 16:03:31 +0000 (16:03 +0000)]
line-map.h (linemap_assert_fails): Declare.

libcpp/ChangeLog:

2014-12-02  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* include/line-map.h (linemap_assert_fails): Declare.
* line-map.c (linemap_position_for_loc_and_offset): Use it.

From-SVN: r218277

9 years agoline-map.c (linemap_add): Fix typo.
Manuel López-Ibáñez [Tue, 2 Dec 2014 16:00:33 +0000 (16:00 +0000)]
line-map.c (linemap_add): Fix typo.

2014-12-02  Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * line-map.c (linemap_add): Fix typo.
        (linemap_line_start): Fix whitespace.

From-SVN: r218276

9 years agore PR target/64115 (ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000...
Ulrich Weigand [Tue, 2 Dec 2014 14:27:46 +0000 (14:27 +0000)]
re PR target/64115 (ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051)

PR target/64115
* config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.

From-SVN: r218273

9 years agoStop only if there aren't any usable algorithms
H.J. Lu [Tue, 2 Dec 2014 14:10:23 +0000 (14:10 +0000)]
Stop only if there aren't any usable algorithms

When searching for an usable algorithm with -minline-all-stringops,
decide_alg stops when it sees libcall even if there is a usable
algorithm.  It goes into an infinite loop.  This patch changes
decide_alg to stop searching only if there aren't any usable algorithms.
Testd on Linux/x86-64.

gcc/

PR target/64108
* config/i386/i386.c (decide_alg): Stop only if there aren't
any usable algorithms.

gcc/testsuite/

PR target/64108
* gcc.target/i386/memset-strategy-2.c: New test.

From-SVN: r218272

9 years agore PR rtl-optimization/63718 (ARM Thumb1 bootstrap fail after fuse-caller-save info...
Tom de Vries [Tue, 2 Dec 2014 13:35:10 +0000 (13:35 +0000)]
re PR rtl-optimization/63718 (ARM Thumb1 bootstrap fail after fuse-caller-save info in cprop-hardreg)

2014-12-02  Tom de Vries  <tom@codesourcery.com>

PR rtl-optimization/63718
* config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
Thumb1.

From-SVN: r218271

9 years agostatus_cxx2011.xml: Update.
Jonathan Wakely [Tue, 2 Dec 2014 13:26:18 +0000 (13:26 +0000)]
status_cxx2011.xml: Update.

* doc/xml/manual/status_cxx2011.xml: Update.
* doc/xml/manual/status_cxx2014.xml: Update.
* doc/html/manual/status.html: Regenerate.

From-SVN: r218270

9 years agomatch.pd: When combining divisions exclude the degenerate case involving INT_MIN...
Richard Biener [Tue, 2 Dec 2014 13:09:13 +0000 (13:09 +0000)]
match.pd: When combining divisions exclude the degenerate case involving INT_MIN from...

2014-12-02  Richard Biener  <rguenther@suse.de>

* match.pd: When combining divisions exclude the degenerate
case involving INT_MIN from overflow handling.

* gcc.dg/torture/20141202-1.c: New testcase.

From-SVN: r218269

9 years agoAdd a test for PR ipa/63814
H.J. Lu [Tue, 2 Dec 2014 12:47:29 +0000 (12:47 +0000)]
Add a test for PR ipa/63814

PR ipa/63814
* g++.dg/ipa/pr63814.C: New test.

From-SVN: r218268

9 years ago[AArch64/testsuite] Add missing testcase
Jiong Wang [Tue, 2 Dec 2014 11:57:08 +0000 (11:57 +0000)]
[AArch64/testsuite] Add missing testcase

  Add the missing testcase.
  (forget svn add in previous commit ...)

From-SVN: r218267

9 years ago[PATCH] Improve spillcost of literal pool loads
Wilco Dijkstra [Tue, 2 Dec 2014 11:55:08 +0000 (11:55 +0000)]
[PATCH] Improve spillcost of literal pool loads

2014-12-02  Wilco Dijkstra  <wdijkstr@arm.com>

  gcc/
    ira-costs.c (scan_one_insn): Improve spill cost adjustment.

  gcc/testsuite
    gcc.target/aarch64/remat1.c: New testcase.

From-SVN: r218266

9 years agore PR ipa/63814 (g++.dg/ipa/pr61160-1.C fails with -m32 -fPIC)
Martin Jambor [Tue, 2 Dec 2014 10:12:27 +0000 (11:12 +0100)]
re PR ipa/63814 (g++.dg/ipa/pr61160-1.C fails with -m32 -fPIC)

2014-12-02  Martin Jambor  <mjambor@suse.cz>

PR ipa/63814
* ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
(cgraph_edge_brings_value_p): New parameter dest, use
same_node_or_its_all_contexts_clone_p and check availability.
(cgraph_edge_brings_value_p): Likewise.
(get_info_about_necessary_edges): New parameter dest, pass it to
cgraph_edge_brings_value_p.  Update caller.
(gather_edges_for_value): Likewise.
(perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
both the destination and availability.

From-SVN: r218265

9 years agore PR target/64113 (Gcc on Alpha: Error: No lda !gpdisp!282 was found)
Uros Bizjak [Tue, 2 Dec 2014 10:04:14 +0000 (11:04 +0100)]
re PR target/64113 (Gcc on Alpha: Error: No lda !gpdisp!282 was found)

PR target/64113
* config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
using post-reload splitter.  Use peephole2 pass instead.
(call_value_osf_tlsldm): Ditto.
(TLS_CALL): New int iterator.
(tls): New int attribute.
(call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
and call_value_tlsldm using TLS_CALL int iterator.

From-SVN: r218264

9 years agogenmatch.c: Include hash-set.h.
Richard Biener [Tue, 2 Dec 2014 09:30:15 +0000 (09:30 +0000)]
genmatch.c: Include hash-set.h.

2014-12-02  Richard Biener  <rguenther@suse.de>
Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c: Include hash-set.h.
(fatal_at): Add source_location overload.
(parser::record_operlist): New method.
(parser::push_simplify): Likewise.
(parser::oper_lists_set): New member.
(parser::oper_lists): Likewise.
(parser::parse_operation): Record seen operator list references.
(parser::parse_c_expr): Likewise.
(parser::parse_simplify): Init oper_lists_set and oper_lists
and use push_simplify.
(parser::parser): Init oper_lists_set and oper_lists.

Co-Authored-By: Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
From-SVN: r218261

9 years agomatch.pd: Restrict division combining to trunc_div and exact_div.
Richard Biener [Tue, 2 Dec 2014 09:03:44 +0000 (09:03 +0000)]
match.pd: Restrict division combining to trunc_div and exact_div.

2014-12-02  Richard Biener  <rguenther@suse.de>

* match.pd: Restrict division combining to trunc_div and
exact_div.

From-SVN: r218260

9 years agore PR fortran/64137 (Fortran FE builds invalid GENERIC)
Richard Biener [Tue, 2 Dec 2014 08:50:57 +0000 (08:50 +0000)]
re PR fortran/64137 (Fortran FE builds invalid GENERIC)

2014-12-02  Richard Biener  <rguenther@suse.de>

PR fortran/64137
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Check
proper expressions type, use proper type for computing
-Huge - 1.

From-SVN: r218259

9 years agosparc.c (sparc_atomic_assign_expand_fenv): Remove NULL last argument from create_tmp_...
Jakub Jelinek [Tue, 2 Dec 2014 07:45:36 +0000 (08:45 +0100)]
sparc.c (sparc_atomic_assign_expand_fenv): Remove NULL last argument from create_tmp_var calls.

* config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
Remove NULL last argument from create_tmp_var calls.
* config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
* config/i386/i386.c (add_condition_to_bb,
ix86_atomic_assign_expand_fenv): Likewise.
* config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
* config/aarch64/aarch64-builtins.c
(aarch64_atomic_assign_expand_fenv): Likewise.
* config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
Likewise.
* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.

From-SVN: r218257

9 years agoalpha.c (alpha_gimple_fold_builtin): Use gimple_build_assign instead of gimple_build_...
Jakub Jelinek [Tue, 2 Dec 2014 07:32:54 +0000 (08:32 +0100)]
alpha.c (alpha_gimple_fold_builtin): Use gimple_build_assign instead of gimple_build_assign_with_ops and swap the...

* config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
gimple_build_assign instead of gimple_build_assign_with_ops and swap
the order of first two arguments.
* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
Likewise.  Remove last NULL_TREE argument.

From-SVN: r218256

9 years agoDefine *_at_thread_exit() functions.
Jonathan Wakely [Tue, 2 Dec 2014 01:51:25 +0000 (01:51 +0000)]
Define *_at_thread_exit() functions.

* config/abi/pre/gnu.ver: Add new exports.
* include/std/condition_variable (notify_all_at_thread_exit): Declare.
(__at_thread_exit_elt): New base class.
* include/std/future: Add comments documenting the implementation.
(__future_base::_State_baseV2::_State_baseV2()): Use brace-or-equal
initializers and define constructor as defaulted.
(__future_base::_State_baseV2::_M_ready): Replace member function
with member variable.
(__future_base::_State_baseV2::_M_set_result): Set _M_ready.
(__future_base::_State_baseV2::_M_set_delayed_result): Define.
(__future_base::_State_baseV2::_M_break_promise): Set _M_ready.
(__future_base::_State_baseV2::_Make_ready): New helper class.
(__future_base::_Deferred_state::_M_has_deferred): Remove requirement
for caller to own mutex.
(__future_base::_Async_state_impl::~_Async_state_impl): Call join
directly.
(__future_base::_Task_state_base::_M_run): Take arguments by
reference.
(__future_base::_Task_state_base::_M_run_delayed): Declare new pure
virtual function.
(__future_base::_Task_state::_M_run_delayed): Define override.
(promise::set_value_at_thread_exit): Define.
(promise::set_exception_at_thread_exit): Define.
(packaged_task::make_ready_at_thread_exit): Define.
* src/c++11/condition_variable.cc (notify_all_at_thread_exit): Define.
* src/c++11/future.cc
(__future_base::_State_baseV2::_Make_ready::_M_set): Define.
* testsuite/30_threads/condition_variable/members/3.cc: New.
* testsuite/30_threads/packaged_task/members/at_thread_exit.cc: New.
* testsuite/30_threads/promise/members/at_thread_exit.cc: New.

From-SVN: r218255

9 years agoDaily bump.
GCC Administrator [Tue, 2 Dec 2014 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218254

9 years agore PR rtl-optimization/59278 (combine does not replace matched insn)
Oleg Endo [Mon, 1 Dec 2014 23:53:12 +0000 (23:53 +0000)]
re PR rtl-optimization/59278 (combine does not replace matched insn)

testsuite/
PR rtl-optimization/59278
* gcc.target/sh/pr59278.c: New.

From-SVN: r218251

9 years agore PR rtl-optimization/59278 (combine does not replace matched insn)
Segher Boessenkool [Mon, 1 Dec 2014 23:48:26 +0000 (00:48 +0100)]
re PR rtl-optimization/59278 (combine does not replace matched insn)

PR rtl-optimization/59278
combine (reg_dead_at_p): Consider REG_UNUSED notes.

From-SVN: r218250

9 years ago* combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
Segher Boessenkool [Mon, 1 Dec 2014 22:37:34 +0000 (23:37 +0100)]
* combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.

From-SVN: r218249

9 years agocombine.c (is_parallel_of_n_reg_sets): New function.
Segher Boessenkool [Mon, 1 Dec 2014 22:36:12 +0000 (23:36 +0100)]
combine.c (is_parallel_of_n_reg_sets): New function.

* combine.c (is_parallel_of_n_reg_sets): New function.
(can_split_parallel_of_n_reg_sets): New function.
(try_combine): If I2 is a PARALLEL of two SETs, split it into
two insns if possible.

From-SVN: r218248

9 years agore PR middle-end/64017 (Support ISL 0.14.0 (to fix ICE with gfortran.dg/graphite...
Tobias Burnus [Mon, 1 Dec 2014 19:07:37 +0000 (20:07 +0100)]
re PR middle-end/64017 (Support ISL 0.14.0 (to fix ICE with gfortran.dg/graphite/pr42393.f90))

2014-12-01  Tobias Burnus  <burnus@net-b.de>
            Jack Howarth  <howarth@bromo.med.uc.edu>

        PR middle-end/64017
        * configure.ac
        * (ac_has_isl_schedule_constraints_compute_schedule):
        New check.
        * doc/install.texi (ISL): Permit ISL 0.14.
        * graphite-optimize-isl.c (getScheduleForBandList,
        * optimize_isl):
        Conditionally use ISL 0.13+ functions.
        * graphite-interchange.c: Make 'extern "C"' conditional.
        * graphite-isl-ast-to-gimple.c: Ditto.
        * graphite-poly.c: Ditto.
        * graphite-sese-to-poly.c: Ditto.
        * config.in: Regenerate.
        * gcc/configure: Regenerate.

Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
From-SVN: r218247

9 years agoImprovements to documentation of gcc_jit_context_release
David Malcolm [Mon, 1 Dec 2014 18:53:44 +0000 (18:53 +0000)]
Improvements to documentation of gcc_jit_context_release

gcc/jit/ChangeLog:
* docs/examples/tut02-square.c (main): Release the context
earlier, to show that this is possible.  Update error-handling
to avoid a double-release of the context, and to avoid
releasing a NULL result.
* docs/intro/tutorial02.rst: Discuss gcc_jit_context_release.
* docs/topics/functions.rst (GCC_JIT_FUNCTION_EXPORTED): Emphasize
* docs/topics/results.rst (gcc_jit_result): Mention that this
controls the lifetimes of machine code functions.
(gcc_jit_result_get_code): Spell out the requirements for this
to succeed, and the lifetime of the result.
(gcc_jit_result_release): Mention that this invalidates any code
that was obtained from the result.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r218245

9 years agore PR c++/60859 (Value-initialization of scalar in aggregate yields "braces around...
Paolo Carlini [Mon, 1 Dec 2014 18:52:05 +0000 (18:52 +0000)]
re PR c++/60859 (Value-initialization of scalar in aggregate yields "braces around scalar initializer")

/cp
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60859
* decl.c (reshape_init_r): Do not reject value-initialization of
scalar array element.

/testsuite
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60859
* g++.dg/cpp0x/initlist88.C: New.

From-SVN: r218244

9 years agoPR jit/64018: Add description of error-handling to the JIT tutorial
David Malcolm [Mon, 1 Dec 2014 18:47:31 +0000 (18:47 +0000)]
PR jit/64018: Add description of error-handling to the JIT tutorial

gcc/jit/ChangeLog:
PR jit/64018
* docs/intro/tutorial02.rst: Spell out lifetime of generated code.
Add description of error-handling, taken in part from...
* docs/topics/contexts.rst (Error-handling): Expand, and move some
content to tutorial02.rst.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r218243

9 years ago* combine.c (distribute_links): Handle multiple SETs.
Segher Boessenkool [Mon, 1 Dec 2014 18:28:07 +0000 (19:28 +0100)]
* combine.c (distribute_links): Handle multiple SETs.

From-SVN: r218242

9 years agocombine.c (struct insn_link): New field `regno'.
Segher Boessenkool [Mon, 1 Dec 2014 18:26:20 +0000 (19:26 +0100)]
combine.c (struct insn_link): New field `regno'.

* combine.c (struct insn_link): New field `regno'.
(alloc_insn_link): New parameter `regno'.  Use it.
(find_single_use): Check the new field.
(can_combine_def_p, can_combine_use_p): New functions.  Split
off from ...
(create_log_links): ... here.  Correct data type of `regno'.
Adjust call to alloc_insn_link.
(adjust_for_new_dest): Find regno, use it in call to
alloc_insn_link.
(try_combine): Check reg_used_between_p when combining a PARALLEL
as earlier insn.  Adjust call to alloc_insn_link.
(distribute_links): Check the new field.

From-SVN: r218241

9 years agoPR jit/64020: Fixes to handling of builtins
David Malcolm [Mon, 1 Dec 2014 18:23:37 +0000 (18:23 +0000)]
PR jit/64020: Fixes to handling of builtins

PR jit/64020
* docs/topics/types.rst (Standard types) Add new enum values to
the table of enum gcc_jit_types: GCC_JIT_TYPE_COMPLEX_FLOAT,
GCC_JIT_TYPE_COMPLEX_DOUBLE, GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
Widen the left-hand column so that
GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE will fit.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

* jit-builtins.c: Include stringpool.h and jit-playback.h.
Move everything out of the gcc::jit::recording namespace into
just gcc::jit.
(struct builtin_data): Add fields "fnclass", "attr", and
"implicit_p".
(DEF_BUILTIN): Update macro so populate the new fields.
(builtins_manager::builtins_manager): Update for move out of
recording namespace.  Initialize the m_attributes array.
(builtins_manager::get_builtin_function): Likewise.
(builtins_manager::get_builtin_function_by_id): New function.
(builtins_manager::make_builtin_function): Update for move out of
recording namespace.  Add fix for PR jit/64020 by detecting
specific builtin ids and having them ensure that builtins for
other ids are created as necessary.
(builtins_manager::get_type): Update for move out of recording
namespace.
(builtins_manager::make_type): Likewise.  Add some missing
#undefs.
(builtins_manager::make_primitive_type): Update for move out of
recording namespace.  Implement the three BT_COMPLEX_ cases and
BT_DOUBLE_PTR.
(builtins_manager::make_fn_type): Update for move out of recording
namespace.
(builtins_manager::make_ptr_type): Likewise.
(builtins_manager::finish_playback): New function.
(builtins_manager::get_class): New function.
(builtins_manager::implicit_p): New function.
(builtins_manager::get_attrs_tree): Two new functions.
(builtins_manager::make_attrs_tree): New function.

* jit-builtins.h: Move everything out of the gcc::jit::recording
namespace into just gcc::jit.
(enum built_in_attribute): New.
(builtins_manager::builtins_manager): Update decl for namespace
change.
(builtins_manager::get_builtin_function): Likewise.
(builtins_manager::get_class): New.
(builtins_manager::implicit_p): New.
(builtins_manager::get_attrs_tree): Two new functions.
(builtins_manager::make_attrs_tree): New function.
(builtins_manager::finish_playback): New.
(builtins_manager::get_builtin_function_by_id): New.
(builtins_manager::make_builtin_function): Update decl for
namespace change.
(builtins_manager::get_type): Likewise.
(builtins_manager::make_type): Likewise.
(builtins_manager::make_primitive_type): Likewise.
(builtins_manager::make_fn_type): Likewise.
(builtins_manager::make_ptr_type): Likewise.
(builtins_manager): Likewise for fields.  Add new field
"m_attributes".

* jit-common.h (NUM_GCC_JIT_TYPES): Update.
(builtins_manager): Update forward decl to reflect namespace
change.

* jit-playback.c: Include attribs.h and jit-builtins.h.
(gcc::jit::playback::context::get_tree_node_for_type): Add cases
for the new COMPLEX_ types.
(gcc::jit::playback::context::new_function): If creating a
builtin, set the DECL_BUILT_IN_CLASS and attributes on the fndecl,
and call set_builtin_decl.
(gcc::jit::playback::context::replay): If we have a
builtins_manager, call its finish_playback method when we're done.

* jit-playback.h:
(gcc::jit::playback::context::get_builtins_manager): New function.

* jit-recording.c
(gcc::jit::recording::context::get_builtins_manager): New function.
(gcc::jit::recording::get_builtin_function): Use
get_builtins_manager, in case we're a child context.
(gcc::jit::recording::memento_of_get_type::dereference): Add the
COMPLEX_ types.
(gcc::jit::recording::memento_of_get_type::is_int): Likewise.
(gcc::jit::recording::memento_of_get_type::is_float): Likewise.
(gcc::jit::recording::memento_of_get_type::is_bool): Likewise.
(get_type_strings): Likewise.

* jit-recording.h
(gcc::jit::recording::context::get_builtins_manager): New.

* libgccjit.h (enum gcc_jit_types): Add
GCC_JIT_TYPE_COMPLEX_FLOAT, GCC_JIT_TYPE_COMPLEX_DOUBLE,
GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.

From-SVN: r218240

9 years agojit-builtins.c: Fix segfault on unsupported builtins
David Malcolm [Mon, 1 Dec 2014 18:16:37 +0000 (18:16 +0000)]
jit-builtins.c: Fix segfault on unsupported builtins

gcc/jit/ChangeLog:
* jit-builtins.c
(gcc::jit::recording::builtins_manager::get_builtin_function):
Check for NULL return from make_builtin_function.
(gcc::jit::recording::builtins_manager::make_builtin_function):
Check for NULL return from get_type.

From-SVN: r218239

9 years agojit-playback: Move dso-creation into its own function
David Malcolm [Mon, 1 Dec 2014 18:02:45 +0000 (18:02 +0000)]
jit-playback: Move dso-creation into its own function

gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::compile): Move DSO
creation code into...
(gcc::jit::playback::context::convert_to_dso): New function.
* jit-playback.h (gcc::jit::playback::context::convert_to_dso):
New function.

From-SVN: r218238

9 years agojit-playback: Move argv-creation to its own function
David Malcolm [Mon, 1 Dec 2014 17:56:34 +0000 (17:56 +0000)]
jit-playback: Move argv-creation to its own function

gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::compile): Use an
auto_vec<const char *> rather than a const char *[20] for the
top-level argv, and move the logic to build it to...
(gcc::jit::playback::context::make_fake_args): New function.
* jit-playback.h (gcc::jit::playback::context::make_fake_args):
New function.

From-SVN: r218237

9 years agoMove gcc_jit_result implementation to a new files jit-result.{h|c}
David Malcolm [Mon, 1 Dec 2014 17:52:03 +0000 (17:52 +0000)]
Move gcc_jit_result implementation to a new files jit-result.{h|c}

gcc/jit/ChangeLog:
* Make-lang.in (jit_OBJS): Add jit/jit-result.o.
* jit-playback.c: Include new header jit-result.h.
(gcc::jit::result::result): Move to new file jit-result.c.
(gcc::jit::result::~result): Likewise.
(gcc::jit::playback::result): Likewise.
* jit-recording.h (class gcc::jit::result): Move to new
header jit-result.h.
* jit-result.c: New file, to contain...
(gcc::jit::result::result): Move here from jit-playback.c,
removing erroneous "playback" namespace from comment.
(gcc::jit::result::~result): Likewise.
(gcc::jit::playback::result): Likewise.
* jit-result.h: New file, to contain...
(class gcc::jit::result): Move from jit-recording.h.
* libgccjit.c: Include jit-result.h.
(gcc_jit_result_get_code): Update comment to reflect move
of implementation.
(gcc_jit_result_release): Likewise.

From-SVN: r218236

9 years agoPR jit/63854: Fix leaks in toyvm.c
David Malcolm [Mon, 1 Dec 2014 17:40:03 +0000 (17:40 +0000)]
PR jit/63854: Fix leaks in toyvm.c

gcc/jit/ChangeLog:
PR jit/63854
* docs/examples/tut04-toyvm/toyvm.c
(toyvm_compiled_function): New typedef.
(toyvm_compiled_func) Rename to...
(toyvm_compiled_code) ...this.
(struct toyvm_compiled_function): New struct.
(toyvm_function_compile): Return a toyvm_compiled_function *
rather than a toyvm_compiled_func, so that the caller can fully
clean things up.  Free "funcname".
(test_script): Update for change to toyvm_function_compile.
Clean up the toyvm_compiled_function.
(main): Likewise.
(docs/intro/tutorial04.rst): Update to reflect the above changes,
and to better spell out the lifetime of the compiled code.

From-SVN: r218234

9 years agoPR jit/63854: Fix leak in real.c for i386:init_ext_80387_constants
David Malcolm [Mon, 1 Dec 2014 17:28:28 +0000 (17:28 +0000)]
PR jit/63854: Fix leak in real.c for i386:init_ext_80387_constants

gcc/ChangeLog:
PR jit/63854
* real.c (real_from_string): Add missing mpfr_clear.

From-SVN: r218233

9 years ago[AArch64][obvious] Gate fuse_adrp_add_1.c test on aarch64_small.
Kyrylo Tkachov [Mon, 1 Dec 2014 17:26:35 +0000 (17:26 +0000)]
[AArch64][obvious] Gate fuse_adrp_add_1.c test on aarch64_small.

* gcc.target/aarch64/fuse_adrp_add_1.c: Gate test on aarch64_small.

From-SVN: r218232

9 years agoPR jit/63854: Fix leak within jit-builtins.c
David Malcolm [Mon, 1 Dec 2014 17:22:19 +0000 (17:22 +0000)]
PR jit/63854: Fix leak within jit-builtins.c

gcc/jit/ChangeLog:
PR jit/63854
* jit-builtins.c
(gcc::jit::recording::builtins_manager::make_fn_type): Call the
context's new_function_type method, rather than directly creating
a function_type instance.
* jit-recording.c
(gcc::jit::recording::context::new_function_type): New method,
adapted from part of...
(gcc::jit::recording::context::new_function_ptr_type): ...this.
Update to call new_function_type.
* jit-recording.h
(gcc::jit::recording::context::new_function_type): New method.

From-SVN: r218231

9 years agoPR jit/63854: Fix leak in tree-ssa-math-opts.c
David Malcolm [Mon, 1 Dec 2014 17:16:04 +0000 (17:16 +0000)]
PR jit/63854: Fix leak in tree-ssa-math-opts.c

gcc/ChangeLog:
PR jit/63854
* tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
release of stmts by converting it to an auto_vec.

From-SVN: r218230

9 years agojit.exp: Verify the exit status of the spawnee
David Malcolm [Mon, 1 Dec 2014 16:25:59 +0000 (16:25 +0000)]
jit.exp: Verify the exit status of the spawnee

gcc/testsuite/ChangeLog:
* jit.dg/jit.exp (verify_exit_status): New function.
(fixed_host_execute): Verify the exit status of the spawnee.

From-SVN: r218229

9 years agojit.exp: fix timeout bug inherited from dejagnu.exp
David Malcolm [Mon, 1 Dec 2014 16:18:57 +0000 (16:18 +0000)]
jit.exp: fix timeout bug inherited from dejagnu.exp

gcc/testsuite/ChangeLog:
* jit.dg/jit.exp (fixed_host_execute): Fix timeout bug.

From-SVN: r218228

9 years agoPR jit/63854: Add support for running "make check-jit" under valgrind
David Malcolm [Mon, 1 Dec 2014 16:13:29 +0000 (16:13 +0000)]
PR jit/63854: Add support for running "make check-jit" under valgrind

gcc/testsuite/ChangeLog:
PR jit/63854
* jit.dg/jit.exp (report_leak): New.
(parse_valgrind_logfile): New.
(fixed_host_execute): Detect if RUN_UNDER_VALGRIND is present
in the environment, and if so, run the executable under
valgrind, capturing valgrind's output to a logfile.  Parse the
log file, generating PASSes and XFAILs for the summary of leaks.
Use "wait" before "close": valgrind might not have finished
writing the log out before we parse it, so we need to wait for
the spawnee to finish.

From-SVN: r218227

9 years agoPR jit/63969: Fix segfault in error-handling when driver isn't found
David Malcolm [Mon, 1 Dec 2014 15:58:11 +0000 (15:58 +0000)]
PR jit/63969: Fix segfault in error-handling when driver isn't found

gcc/jit/ChangeLog:
PR jit/63969
* jit-playback.c: Ensure that ctxt_progname is non-NULL.

gcc/testsuite/ChangeLog:
PR jit/63969
* jit.dg/harness.h (CHECK_STRING_STARTS_WITH): New.
(check_string_starts_with): New.
* jit.dg/test-error-pr63969-missing-driver.c: New.

From-SVN: r218226

9 years agojit.exp: Avoid embedding full paths into test results
David Malcolm [Mon, 1 Dec 2014 15:48:46 +0000 (15:48 +0000)]
jit.exp: Avoid embedding full paths into test results

gcc/testsuite/ChangeLog:
* jit.dg/jit.exp (jit-dg-test): Use $name rathen than $prog
when calling jit_check_compile to avoid embedding the full path of
the testcase into the test results.

From-SVN: r218225

9 years agoMakefile.in (gimple-match.o-warn): Use -Wno-unused instead of -Wno-unused-variable...
Richard Biener [Mon, 1 Dec 2014 15:46:46 +0000 (15:46 +0000)]
Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of -Wno-unused-variable and...

2014-12-01  Richard Biener  <rguenther@suse.de>

* Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
-Wno-unused-variable and -Wno-unused-but-set-variable to restore
bootstrap with old GCC.
(generic-match.o-warn): Likewise.

From-SVN: r218224

9 years agofold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
Richard Biener [Mon, 1 Dec 2014 15:43:58 +0000 (15:43 +0000)]
fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.

2014-12-01  Richard Biener  <rguenther@suse.de>

* fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
Properly handle FIXED_CST shifts by INTEGER_CST.
(const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
VEC_WIDEN_MULT_ODD_EXPR handling here from ...
(fold_binary_loc): ... here.  Call const_binop overload
with result type.

From-SVN: r218223

9 years agore PR tree-optimization/64121 (ICE: SSA corruption with -O -fsanitize=undefined)
Marek Polacek [Mon, 1 Dec 2014 15:37:55 +0000 (15:37 +0000)]
re PR tree-optimization/64121 (ICE: SSA corruption with -O -fsanitize=undefined)

PR sanitizer/64121
* ubsan.c (instrument_object_size): Stop searching if the base
occurs in abnormal phi.

* c-c++-common/ubsan/pr64121.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r218222

9 years agore PR sanitizer/63956 ([UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc...
Marek Polacek [Mon, 1 Dec 2014 15:29:11 +0000 (15:29 +0000)]
re PR sanitizer/63956 ([UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc/cp/constexpr.c)

PR sanitizer/63956
* ubsan.c (is_ubsan_builtin_p): Check also built-in class.
cp/
* constexpr.c: Include ubsan.h.
(cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS}
internal functions and for ubsan builtins.
* error.c: Include internal-fn.h.
(dump_expr): Add printing of internal functions.
testsuite/
* c-c++-common/ubsan/shift-5.c: Add xfails.
* g++.dg/ubsan/div-by-zero-1.C: Don't use -w.  Add xfail.
* g++.dg/ubsan/pr63956.C: New test.

From-SVN: r218221

9 years agoconstexpr.c (literal_type_p): Return true for void type in C++14.
Marek Polacek [Mon, 1 Dec 2014 15:26:10 +0000 (15:26 +0000)]
constexpr.c (literal_type_p): Return true for void type in C++14.

* constexpr.c (literal_type_p): Return true for void type in C++14.

* g++.dg/cpp0x/constexpr-function2.C: Limit dg-error to C++11.
* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
* g++.dg/cpp1y/constexpr-void1.C: New test.

From-SVN: r218220

9 years agore PR c++/60845 (print original type for typedef classes in diagnostics)
Paolo Carlini [Mon, 1 Dec 2014 14:58:01 +0000 (14:58 +0000)]
re PR c++/60845 (print original type for typedef classes in diagnostics)

/cp
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60845
* typeck.c (finish_class_member_access_expr): Use %q#T instead of
%qD in error message.

/testsuite
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60845
* g++.dg/parse/error55.C: New.

From-SVN: r218218

9 years agogimple.h (gimple_build_assign_stat): Remove prototype.
Jakub Jelinek [Mon, 1 Dec 2014 13:58:10 +0000 (14:58 +0100)]
gimple.h (gimple_build_assign_stat): Remove prototype.

* gimple.h (gimple_build_assign_stat): Remove prototype.
(gimple_build_assign): Remove define.  Add overload prototypes
with tree lhs and either a tree rhs, or enum tree_code and
1, 2 or 3 tree operands.
* gimple.c (gimple_build_assign_stat): Renamed to...
(gimple_build_assign): ... this.  Add overloads with
enum tree_code and 1, 2 or 3 tree operands.
(gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
Rename the 3 operand overload to ...
(gimple_build_assign_1): ... this.  Make it static inline.
* tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
instead of gimple_build_assign_with_ops, swap the order of first
two arguments and adjust formatting where necessary.
* tree-vect-slp.c (vect_get_constant_vectors,
vect_create_mask_and_perm): Likewise.
* tree-ssa-forwprop.c (simplify_rotate): Likewise.
* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
* tsan.c (instrument_builtin_call): Likewise.
* tree-chkp.c (chkp_compute_bounds_for_assignment,
chkp_generate_extern_var_bounds): Likewise.
* tree-loop-distribution.c (generate_memset_builtin): Likewise.
* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
* gimple-builder.c (build_assign, build_type_cast): Likewise.
* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
* value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
gimple_mod_subtract): Likewise.
* gimple-match-head.c (maybe_push_res_to_seq): Likewise.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern,
vect_recog_sad_pattern, vect_handle_widen_op_by_const,
vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
adjust_bool_pattern_cast, adjust_bool_pattern,
vect_recog_bool_pattern): Likewise.
* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
insert_initializers, introduce_cast_before_cand,
replace_one_candidate): Likewise.
* tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
powi_as_mults, build_and_insert_binop, build_and_insert_cast,
pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
Likewise.
* tree-tailcall.c (adjust_return_value_with_ops,
update_accumulator_with_ops): Likewise.
* tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
* tree-ssa-reassoc.c (build_and_add_sum,
optimize_range_tests_to_bit_test, update_ops,
maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
negate_value, repropagate_negates, attempt_builtin_powi,
reassociate_bb): Likewise.
* tree-vect-loop.c (vect_is_simple_reduction_1,
get_initial_def_for_induction, vect_create_epilog_for_reduction):
Likewise.
* ipa-split.c (split_function): Likewise.
* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
abs_replacement, neg_replacement): Likewise.
* tree-profile.c (gimple_gen_edge_profiler): Likewise.
* tree-vrp.c (simplify_truth_ops_using_ranges,
simplify_float_conversion_using_ranges,
simplify_internal_call_using_ranges): Likewise.
* gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
* tree-vect-generic.c (expand_vector_divmod,
optimize_vector_constructor): Likewise.
* ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
instrument_bool_enum_load): Likewise.
* tree-ssa-loop-manip.c (create_iv): Likewise.
* omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
expand_cilk_for, simd_clone_adjust): Likewise.
* trans-mem.c (expand_transaction): Likewise.
* tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
vect_setup_realignment, vect_permute_load_chain,
vect_shift_permute_load_chain): Likewise.
* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
vectorizable_simd_clone_call, vect_gen_widened_results_half,
vect_create_vectorized_demotion_stmts, vectorizable_conversion,
vectorizable_shift, vectorizable_operation, vectorizable_store,
permute_vec_elements, vectorizable_load): Likewise.

From-SVN: r218216

9 years agore PR libstdc++/63840 (std::function copy constructor deletes an uninitialized pointe...
Jonathan Wakely [Mon, 1 Dec 2014 13:49:20 +0000 (13:49 +0000)]
re PR libstdc++/63840 (std::function copy constructor deletes an uninitialized pointer if new fails)

PR libstdc++/63840
* include/std/functional (function::function(const function&)): Set
_M_manager after operations that might throw.
* include/tr1/functional (function::function(const function&),
function::function(_Functor, _Useless)): Likewise.
* testsuite/20_util/function/63840.cc: New.
* testsuite/tr1/3_function_objects/function/63840.cc: New.

From-SVN: r218215

9 years agore PR middle-end/64111 (ICE: conversion of register to a different size)
Richard Biener [Mon, 1 Dec 2014 13:42:45 +0000 (13:42 +0000)]
re PR middle-end/64111 (ICE: conversion of register to a different size)

2014-12-01  Richard Biener  <rguenther@suse.de>

PR middle-end/64111
* tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
htab_hash_pointer to not break PCH.

From-SVN: r218212

9 years agore PR tree-optimization/15346 ([tree-ssa] combine two successive divisions)
Richard Biener [Mon, 1 Dec 2014 13:13:28 +0000 (13:13 +0000)]
re PR tree-optimization/15346 ([tree-ssa] combine two successive divisions)

2014-12-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/15346
* Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
add -Wno-unused-but-set-variable.
* match.pd: Combine two successive divisions.

* gcc.dg/tree-ssa/forwprop-32.c: New testcase.

From-SVN: r218211

9 years agore PR tree-optimization/64126 (FAIL: gcc.dg/pr37289.c scan-tree-dump original "-...
Richard Biener [Mon, 1 Dec 2014 13:08:10 +0000 (13:08 +0000)]
re PR tree-optimization/64126 (FAIL: gcc.dg/pr37289.c scan-tree-dump original "-\\(long unsigned int\\) x")

2014-12-01  Richard Biener  <rguenther@suse.de>

PR middle-end/64126
* match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
and -1 - A -> ~A.
* fold-const.c (fold_binary_loc): Remove transforms here.

From-SVN: r218210

9 years agomips.c (mips16_build_call_stub): Move the save of the return address in $18 ahead...
Maciej W. Rozycki [Mon, 1 Dec 2014 12:56:08 +0000 (12:56 +0000)]
mips.c (mips16_build_call_stub): Move the save of the return address in $18 ahead of passing arguments to FPRs.

* config/mips/mips.c (mips16_build_call_stub): Move the save of
the return address in $18 ahead of passing arguments to FPRs.

From-SVN: r218209

9 years agore PR target/64055 (gnat.dg/derived_aggregate.adb FAILs on 32-bit i386)
Ilya Enkovich [Mon, 1 Dec 2014 12:43:04 +0000 (12:43 +0000)]
re PR target/64055 (gnat.dg/derived_aggregate.adb FAILs on 32-bit i386)

PR target/64055
* tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
values in array domain.

From-SVN: r218207

9 years agore PR tree-optimization/63941 (ICE on valid code at -O3 and above on x86_64-linux...
Yuri Rumyantsev [Mon, 1 Dec 2014 12:19:28 +0000 (12:19 +0000)]
re PR tree-optimization/63941 (ICE on valid code at -O3 and above on x86_64-linux-gnu)

gcc/

PR tree-optimization/63941
* tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
DOM_BB has non-true predicate, conditionally set non-true predicate
for BB.

gcc/testsuite/

PR tree-optimization/63941
* gcc.dg/torture/pr63941.c: New test.

From-SVN: r218206

9 years agore PR tree-optimization/63551 (wrong code (segfaults) at -Os on x86_64-linux-gnu)
Martin Jambor [Mon, 1 Dec 2014 12:05:41 +0000 (13:05 +0100)]
re PR tree-optimization/63551 (wrong code (segfaults) at -Os on x86_64-linux-gnu)

2014-12-01  Martin Jambor  <mjambor@suse.cz>

PR ipa/63551
* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
value of the argument to the type of the value in the condition.

testsuite/
* gcc.dg/ipa/pr63551.c: New test.
* gcc.dg/ipa/pr64041.c: Likewise.

From-SVN: r218205

9 years agoReplace -DAVX512* options with defines inside tests.
Ilya Tocar [Mon, 1 Dec 2014 09:57:44 +0000 (09:57 +0000)]
Replace -DAVX512* options with defines inside tests.

gcc/testsuite/

* gcc.target/i386/avx512bw-vdbpsadbw-2.c: Move defines from options.
* gcc.target/i386/avx512bw-vmovdqu16-2.c: Ditto.
* gcc.target/i386/avx512bw-vmovdqu8-2.c: Ditto.
* gcc.target/i386/avx512bw-vpabsb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpabsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpackssdw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpacksswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpackusdw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpackuswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddsb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddusb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddusw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpaddw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpalignr-2.c: Ditto.
* gcc.target/i386/avx512bw-vpavgb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpavgw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpblendmb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpblendmw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpbroadcastb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpbroadcastw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpeqb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpequb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpequw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpeqw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgeb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgeub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgeuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgew-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgtb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgtub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgtuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpgtw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpleb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpleub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpleuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmplew-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpltb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpltub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpltuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpltw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpneqb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpnequb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpnequw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpneqw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpcmpw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpermi2w-2.c: Ditto.
* gcc.target/i386/avx512bw-vpermt2w-2.c: Ditto.
* gcc.target/i386/avx512bw-vpermw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaddubsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaddwd-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaxsb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaxsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaxub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmaxuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpminsb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpminsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpminub-2.c: Ditto.
* gcc.target/i386/avx512bw-vpminuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovb2m-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovm2b-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovm2w-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovsxbw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovw2m-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovzxbw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmulhrsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmulhuw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmulhw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmullw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpshufb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpshufhw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpshuflw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsllvw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsllw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsllwi-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsravw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsraw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsrawi-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsrlvw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsrlw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsrlwi-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubsb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubsw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubusb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubusw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpsubw-2.c: Ditto.
* gcc.target/i386/avx512bw-vptestmb-2.c: Ditto.
* gcc.target/i386/avx512bw-vptestmw-2.c: Ditto.
* gcc.target/i386/avx512bw-vptestnmb-2.c: Ditto.
* gcc.target/i386/avx512bw-vptestnmw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpunpckhbw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpunpckhwd-2.c: Ditto.
* gcc.target/i386/avx512bw-vpunpcklbw-2.c: Ditto.
* gcc.target/i386/avx512bw-vpunpcklwd-2.c: Ditto.
* gcc.target/i386/avx512dq-vandnpd-2.c: Ditto.
* gcc.target/i386/avx512dq-vandnps-2.c: Ditto.
* gcc.target/i386/avx512dq-vandpd-2.c: Ditto.
* gcc.target/i386/avx512dq-vandps-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcastf32x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcastf32x8-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcastf64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcasti32x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcasti32x8-2.c: Ditto.
* gcc.target/i386/avx512dq-vbroadcasti64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtpd2qq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtps2qq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtps2uqq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtqq2pd-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtqq2ps-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvttpd2qq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvttpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvttps2qq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvttps2uqq-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtuqq2pd-2.c: Ditto.
* gcc.target/i386/avx512dq-vcvtuqq2ps-2.c: Ditto.
* gcc.target/i386/avx512dq-vextractf64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vextracti64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vfpclasspd-2.c: Ditto.
* gcc.target/i386/avx512dq-vfpclassps-2.c: Ditto.
* gcc.target/i386/avx512dq-vinsertf64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vinserti64x2-2.c: Ditto.
* gcc.target/i386/avx512dq-vorpd-2.c: Ditto.
* gcc.target/i386/avx512dq-vorps-2.c: Ditto.
* gcc.target/i386/avx512dq-vpmovd2m-2.c: Ditto.
* gcc.target/i386/avx512dq-vpmovm2d-2.c: Ditto.
* gcc.target/i386/avx512dq-vpmovm2q-2.c: Ditto.
* gcc.target/i386/avx512dq-vpmovq2m-2.c: Ditto.
* gcc.target/i386/avx512dq-vpmullq-2.c: Ditto.
* gcc.target/i386/avx512dq-vrangepd-2.c: Ditto.
* gcc.target/i386/avx512dq-vrangeps-2.c: Ditto.
* gcc.target/i386/avx512dq-vreducepd-2.c: Ditto.
* gcc.target/i386/avx512dq-vreduceps-2.c: Ditto.
* gcc.target/i386/avx512dq-vxorpd-2.c: Ditto.
* gcc.target/i386/avx512dq-vxorps-2.c: Ditto.
* gcc.target/i386/avx512f-helper.h: Ditto.
* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Ditto.
* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vaddpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vaddps-2.c: Ditto.
* gcc.target/i386/avx512vl-valignd-2.c: Ditto.
* gcc.target/i386/avx512vl-valignq-2.c: Ditto.
* gcc.target/i386/avx512vl-vandnpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vandnps-2.c: Ditto.
* gcc.target/i386/avx512vl-vandpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vandps-2.c: Ditto.
* gcc.target/i386/avx512vl-vblendmpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vblendmps-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf32x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti32x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastsd-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastss-2.c: Ditto.
* gcc.target/i386/avx512vl-vcmppd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcmpps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcompresspd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcompressps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtdq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtdq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2dq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2udq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtph2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2dq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2ph-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2udq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtqq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtqq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2dq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2udq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2dq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2udq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtudq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtudq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtuqq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtuqq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vdbpsadbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vdivpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vdivps-2.c: Ditto.
* gcc.target/i386/avx512vl-vexpandpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vexpandps-2.c: Ditto.
* gcc.target/i386/avx512vl-vextractf32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vextractf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vextracti32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vextracti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vfixupimmpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfixupimmps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmaddXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmaddXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmaddsubXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmaddsubXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmsubXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmsubXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmsubaddXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfmsubaddXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfnmaddXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfnmaddXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfnmsubXXXpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfnmsubXXXps-2.c: Ditto.
* gcc.target/i386/avx512vl-vfpclasspd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfpclassps-2.c: Ditto.
* gcc.target/i386/avx512vl-vgetexppd-2.c: Ditto.
* gcc.target/i386/avx512vl-vgetexpps-2.c: Ditto.
* gcc.target/i386/avx512vl-vgetmantpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vgetmantps-2.c: Ditto.
* gcc.target/i386/avx512vl-vinsertf32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vinsertf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vinserti32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vinserti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vmaxpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vmaxps-2.c: Ditto.
* gcc.target/i386/avx512vl-vminpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vminps-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovapd-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovaps-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovddup-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqa32-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqa64-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu16-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu32-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu64-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu8-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovshdup-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovsldup-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovupd-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovups-2.c: Ditto.
* gcc.target/i386/avx512vl-vmulpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vmulps-2.c: Ditto.
* gcc.target/i386/avx512vl-vorpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vorps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackssdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpacksswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackusdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackuswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddusb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddusw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpalignr-2.c: Ditto.
* gcc.target/i386/avx512vl-vpandd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpandnd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpandnq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpandq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpavgb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpavgw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpged-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgeq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgeud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgeuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpled-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpleq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpleud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpleuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpltuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpneqd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpneqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpnequd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpnequq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcompressd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcompressq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2d-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2q-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermilpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermilpdi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermilps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermilpsi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermpdi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermq-imm-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermq-var-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2d-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2q-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpexpandd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpexpandq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddubsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminud-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovb2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovd2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovdb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2d-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2q-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovq2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovqd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovqw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsdb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsqd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsqw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxbd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxbq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxdq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxwq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovusdb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovusdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovusqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovusqd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovusqw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovuswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovw2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovwb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxbd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxbq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxdq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxwq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmuldq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhrsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulld-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmullq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmullw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmuludq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpord-2.c: Ditto.
* gcc.target/i386/avx512vl-vporq-2.c: Ditto.
* gcc.target/i386/avx512vl-vprold-2.c: Ditto.
* gcc.target/i386/avx512vl-vprolq-2.c: Ditto.
* gcc.target/i386/avx512vl-vprolvd-2.c: Ditto.
* gcc.target/i386/avx512vl-vprolvq-2.c: Ditto.
* gcc.target/i386/avx512vl-vprord-2.c: Ditto.
* gcc.target/i386/avx512vl-vprorq-2.c: Ditto.
* gcc.target/i386/avx512vl-vprorvd-2.c: Ditto.
* gcc.target/i386/avx512vl-vprorvq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshufb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshufd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshufhw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshuflw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpslld-2.c: Ditto.
* gcc.target/i386/avx512vl-vpslldi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllqi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllvd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllvq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllvw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllwi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrad-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsradi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsraq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsraqi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsravd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsravq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsravw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsraw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrawi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrld-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrldi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlqi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlvd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlvq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlvw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlwi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubusb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubusw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpternlogd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpternlogq-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmd-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmq-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmd-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmq-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhdq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhqdq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpcklbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckldq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpcklqdq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpcklwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpxord-2.c: Ditto.
* gcc.target/i386/avx512vl-vpxorq-2.c: Ditto.
* gcc.target/i386/avx512vl-vrangepd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrangeps-2.c: Ditto.
* gcc.target/i386/avx512vl-vrcp14pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrcp14ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vreducepd-2.c: Ditto.
* gcc.target/i386/avx512vl-vreduceps-2.c: Ditto.
* gcc.target/i386/avx512vl-vrndscalepd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrndscaleps-2.c: Ditto.
* gcc.target/i386/avx512vl-vrsqrt14pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrsqrt14ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vscalefpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vscalefps-2.c: Ditto.
* gcc.target/i386/avx512vl-vshuff32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vshuff64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vshufi32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vshufi64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vshufpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vshufps-2.c: Ditto.
* gcc.target/i386/avx512vl-vsqrtpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vsqrtps-2.c: Ditto.
* gcc.target/i386/avx512vl-vsubpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vsubps-2.c: Ditto.
* gcc.target/i386/avx512vl-vunpckhpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vunpckhps-2.c: Ditto.
* gcc.target/i386/avx512vl-vunpcklpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vunpcklps-2.c: Ditto.
* gcc.target/i386/avx512vl-vxorpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vxorps-2.c: Ditto.

From-SVN: r218203

9 years agore PR tree-optimization/63738 (ssa corruption when compiled with -O3)
Richard Biener [Mon, 1 Dec 2014 09:35:15 +0000 (09:35 +0000)]
re PR tree-optimization/63738 (ssa corruption when compiled with -O3)

2014-12-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63738
* gcc.dg/torture/pr63738.c: Fix call to setjmp.

From-SVN: r218201

9 years agore PR target/63986 ([SH] gcc.target/sh/pr51244-15.c failures)
Oleg Endo [Mon, 1 Dec 2014 06:50:06 +0000 (06:50 +0000)]
re PR target/63986 ([SH] gcc.target/sh/pr51244-15.c failures)

gcc/
PR target/63986
PR target/51244
* config/sh/sh.c (sh_unspec_insn_p,
sh_insn_operands_modified_between_p): New functions.
(sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
are modified or if it has side effects, may trap or is volatile.

From-SVN: r218200

9 years agocompiler: Don't crash with self-referential types.
Ian Lance Taylor [Mon, 1 Dec 2014 01:29:45 +0000 (01:29 +0000)]
compiler: Don't crash with self-referential types.

Fixes issue 6637.

From-SVN: r218199

9 years agoruntime: introduce mvifdiff.sh script to replace GCC's move-if-change
Ian Lance Taylor [Mon, 1 Dec 2014 01:06:29 +0000 (01:06 +0000)]
runtime: introduce mvifdiff.sh script to replace GCC's move-if-change

This goes towards making libgo more self-contained.

From-SVN: r218198

9 years agoDaily bump.
GCC Administrator [Mon, 1 Dec 2014 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218197

9 years agolib1funcs.S: Check value of __SHMEDIA__ instead of checking whether it's defined.
Oleg Endo [Sun, 30 Nov 2014 19:03:29 +0000 (19:03 +0000)]
lib1funcs.S: Check value of __SHMEDIA__ instead of checking whether it's defined.

libgcc/
* config/sh/lib1funcs.S: Check value of __SHMEDIA__ instead of checking
whether it's defined.

From-SVN: r218190

9 years ago* config/abi/pre/gnu.ver: Fix ios_base::failure exports.
Jonathan Wakely [Sun, 30 Nov 2014 12:51:42 +0000 (12:51 +0000)]
* config/abi/pre/gnu.ver: Fix ios_base::failure exports.

From-SVN: r218189

9 years agogfortran.h (gfc_option_t): Remove warn_aliasing,
Tobias Burnus [Sun, 30 Nov 2014 08:33:25 +0000 (09:33 +0100)]
gfortran.h (gfc_option_t): Remove warn_aliasing,

2014-11-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Remove warn_aliasing,
        * warn_ampersand,
        warn_function_elimination, warn_implicit_interface,
        warn_implicit_procedure, warn_line_truncation,
        warn_surprising, warn_underflow, warn_intrinsic_shadow,
        warn_array_temp, warn_align_commons, warn_real_q_constant,
        warn_unused_dummy_argument, warn_zerotrip, warn_realloc_lhs,
        warn_realloc_lhs_all, warn_compare_reals, warn_target_lifetime.
        * arith.c (check_result, gfc_real2real, gfc_real2complex,
        gfc_complex2real, gfc_complex2complex): Honor changed
        variable names.
        * check.c (gfc_check_transfer): Ditto.
        * expr.c (gfc_check_assign, gfc_check_pointer_assign): Ditto.
        * interface.c (compare_parameter, gfc_procedure_use,
        * gfc_ppc_use,
        gfc_arglist_matches_symbol): Ditto.
        * intrinsic.c (gfc_warn_intrinsic_shadow): Ditto.
        * primary.c (match_real_constant, match_string_constant): Ditto.
        * resolve.c (gfc_resolve_intrinsic, resolve_operator,
        gfc_resolve_iterator, resolve_select, resolve_ordinary_assign,
        resolve_charlen, gfc_resolve_finalizers): Ditto.
        * scanner.c (gfc_next_char_literal): Ditto.
        * simplify.c (simplify_achar_char, gfc_simplify_iachar): Ditto.
        * trans-array.c (gfc_trans_create_temp_array,
        gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Ditto.
        * trans-common.c (translate_common):
        * trans-decl.c (generate_local_decl): Ditto.
        * trans-expr.c (realloc_lhs_warning): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
        * decl.c (do_warn_intrinsic_shadow): Ditto. Renamed from
        warn_intrinsic_shadow.
        * frontend-passes.c (do_warn_function_elimination): Honor
        changed variable names. Renamed from do_warn_function_elimination.
        * invoke.texi (Wunderflow): Document that it is enabled by
        * default.
        * lang.opt (Waliasing, Walign-commons, Warray-temporaries,
        Wcompare-reals, Wfunction-elimination, Wimplicit-interface,
        Wimplicit-procedure, Wline-truncation, Wreal-q-constant, Wrealloc-lhs,
        Wrealloc-lhs-all, Wtarget-lifetime, Wsurprising, Wunderflow,
        Wintrinsic-shadow, Wunused-dummy-argument, Wzerotrip): Use Var(),
        add Init() and LangEnabledBy() were required.
        (Wmaybe-uninitialized, Wreturn-type, Wuninitialized): Add
        LangEnabledBy.
        * options.c (gfc_init_options, gfc_post_options,
        * gfc_handle_option):
        Remove options handled in lang.opt; handle renaming.
        (set_Wall, set_Wextra): Remove.

From-SVN: r218188

9 years agoDaily bump.
GCC Administrator [Sun, 30 Nov 2014 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218187

9 years agolocale_init.cc (locale::_Impl::_Impl(size_t)): Use new-initializer instead of loop.
Jonathan Wakely [Sat, 29 Nov 2014 22:58:38 +0000 (22:58 +0000)]
locale_init.cc (locale::_Impl::_Impl(size_t)): Use new-initializer instead of loop.

* src/c++98/locale_init.cc (locale::_Impl::_Impl(size_t)): Use
new-initializer instead of loop.
* src/c++98/localename.cc (locale::_Impl::_Impl(const char*, size_t)):
Likewise.

From-SVN: r218184

9 years agononio.h (__timepunct): Remove unused typedef.
Jonathan Wakely [Sat, 29 Nov 2014 22:58:33 +0000 (22:58 +0000)]
nonio.h (__timepunct): Remove unused typedef.

* include/bits/locale_facets/nonio.h (__timepunct): Remove unused
typedef.
(time_get): Likewise. Fix comments.

From-SVN: r218183

9 years agoAdd a testcase for PR target/64114
H.J. Lu [Sat, 29 Nov 2014 15:57:32 +0000 (15:57 +0000)]
Add a testcase for PR target/64114

PR target/64114
* gcc.target/i386/pr64114.c: New test.

From-SVN: r218182

9 years agogimple-expr.h (create_tmp_var_raw, [...]): Add default NULL value to last argument.
Jakub Jelinek [Sat, 29 Nov 2014 11:35:30 +0000 (12:35 +0100)]
gimple-expr.h (create_tmp_var_raw, [...]): Add default NULL value to last argument.

* gimple-expr.h (create_tmp_var_raw, create_tmp_var,
create_tmp_reg): Add default NULL value to last argument.
* tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
* gimple-low.c (lower_builtin_posix_memalign): Remove NULL
last argument from create_tmp_var_raw, create_tmp_var,
create_tmp_reg, make_ssa_name and copy_ssa_name calls.
* tree-ssa-strlen.c (get_string_length): Likewise.
* tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
* ipa-prop.c (ipa_modify_call_arguments): Likewise.
* tree-ssa-forwprop.c (simplify_rotate): Likewise.
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
* tsan.c (instrument_expr, instrument_builtin_call,
instrument_func_entry): Likewise.
* varpool.c (add_new_static_var): Likewise.
* tree-loop-distribution.c (generate_memset_builtin): Likewise.
* gimplify.c (internal_get_tmp_var, gimplify_return_expr,
gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
gimplify_init_ctor_eval_range, gimplify_init_constructor,
gimplify_omp_atomic, gimplify_expr): Likewise.
* gimple-builder.c (build_assign, build_type_cast): Likewise.
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
vect_loop_versioning): Likewise.
* tree-if-conv.c (version_loop_for_if_conversion): Likewise.
* gimple-match-head.c (maybe_push_res_to_seq): Likewise.
* tree-vect-patterns.c (vect_handle_widen_op_by_const,
vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
vect_recog_over_widening_pattern): Likewise.
* tree-sra.c (build_ref_for_offset, create_access_replacement):
Likewise.
* tree-cfg.c (make_blocks): Likewise.
* tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
Likewise.
* tree-ssa-propagate.c (update_call_from_tree): Likewise.
* tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
Likewise.
* tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
* tree-tailcall.c (update_accumulator_with_ops): Likewise.
* tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
execute_load_motion, reassociate_to_the_same_stmt): Likewise.
* tree-ssa-reassoc.c (build_and_add_sum,
optimize_range_tests_to_bit_test, update_ops,
maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
negate_value, repropagate_negates): Likewise.
* tree-vect-loop.c (vect_is_simple_reduction_1,
vect_create_epilog_for_reduction): Likewise.
* ipa-split.c (split_function): Likewise.
* tree-inline.c (remap_ssa_name, setup_one_parameter,
declare_return_variable, tree_function_versioning): Likewise.
* tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
* cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
Likewise.
* tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
neg_replacement): Likewise.
* gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
Likewise.
* tree-vrp.c (simplify_truth_ops_using_ranges,
simplify_float_conversion_using_ranges,
simplify_internal_call_using_ranges): Likewise.
* tree-switch-conversion.c (emit_case_bit_tests,
build_one_array, build_arrays, gen_def_assigns): Likewise.
* gimple-fold.c (gimple_fold_builtin_memory_op,
gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
* tree-vect-generic.c (expand_vector_divmod,
optimize_vector_constructor): Likewise.
* ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
ubsan_expand_objsize_ifn, instrument_si_overflow,
instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
* tree-outof-ssa.c (insert_backedge_copies): Likewise.
* tree-ssa-loop-manip.c (create_iv,
tree_transform_and_unroll_loop): Likewise.
* omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
lower_rec_input_clauses, lower_lastprivate_clauses,
expand_parallel_call, expand_omp_for_static_chunk,
expand_omp_atomic_pipeline, expand_omp_target,
maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
lower_depend_clauses, lower_omp_target, lower_omp_1,
ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
* tree-parloops.c (take_address_of, create_phi_for_local_result,
create_call_for_reduction_1, separate_decls_in_region,
create_parallel_loop): Likewise.
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
handle_scalar_deps_crossing_scop_limits): Likewise.
* trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
expand_assign_tm, expand_call_tm, expand_transaction,
ipa_tm_insert_gettmclone_call): Likewise.
* tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
Likewise.
* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
vectorizable_call, vectorizable_simd_clone_call,
vectorizable_conversion, vectorizable_store, permute_vec_elements,
vectorizable_load): Likewise.
c/
* c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign,
c_finish_stmt_expr): Remove NULL last argument from
create_tmp_var_raw and create_tmp_var calls.
* c-array-notation.c (fix_builtin_array_notation_fn,
build_array_notation_expr, fix_conditional_array_notations_1,
fix_array_notation_expr, fix_array_notation_call_expr): Likewise.
cp/
* cp-gimplify.c (cxx_omp_clause_apply_fn): Remove NULL last argument
from create_tmp_var calls.
c-family/
* c-common.c (convert_vector_to_pointer_for_subscript): Remove NULL
last argument from create_tmp_var_raw and create_tmp_var calls.
* cilk.c (gimplify_cilk_spawn): Likewise.
* c-omp.c (c_finish_omp_atomic): Likewise.
fortran/
* trans-openmp.c (gfc_omp_finish_clause,
gfc_trans_omp_array_reduction_or_udr, gfc_trans_omp_atomic): Remove
NULL last argument from create_tmp_var_raw and create_tmp_var calls.

From-SVN: r218181

9 years agoscanner.c (skip_free_comments, [...]): Use gfc_warning_now instead of ..._now_1.
Tobias Burnus [Sat, 29 Nov 2014 10:56:04 +0000 (11:56 +0100)]
scanner.c (skip_free_comments, [...]): Use gfc_warning_now instead of ..._now_1.

2014-11-29  Tobias Burnus  <burnus@net-b.de>

        * scanner.c (skip_free_comments, gfc_gobble_whitespace): Use
        gfc_warning_now instead of ..._now_1.

From-SVN: r218180

9 years agoFix off-by-one bug in utf16 conversion (PR preprocessor/41698).
Joseph Myers [Sat, 29 Nov 2014 01:56:06 +0000 (01:56 +0000)]
Fix off-by-one bug in utf16 conversion (PR preprocessor/41698).

libcpp:
2014-11-29  John Schmerge  <jbschmerge@gmail.com>

PR preprocessor/41698
* charset.c (one_utf8_to_utf16): Do not produce surrogate pairs
for 0xffff.

gcc/testsuite:
2014-11-29  Joseph Myers  <joseph@codesourcery.com>

PR preprocessor/41698
* gcc/testsuite/g++.dg/cpp/utf16-pr41698-1.C: New test.

From-SVN: r218179

10 years agoDaily bump.
GCC Administrator [Sat, 29 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218178

10 years agoopt-functions.awk (lang_enabled_by): Support || for enabled-by.
Tobias Burnus [Sat, 29 Nov 2014 00:04:48 +0000 (01:04 +0100)]
opt-functions.awk (lang_enabled_by): Support || for enabled-by.

2014-11-29  Tobias Burnus  <burnus@net-b.de>
            Manuel López-Ibáñez  <manu@gcc.gnu.org>

gcc/
        * opt-functions.awk (lang_enabled_by): Support || for
        enabled-by.
        * optc-gen.awk: Ditto.
        * doc/options.texi (LangEnabledBy, EnabledBy): Document the
        || syntax.

gcc/fortran/
        * lang.opt (Wtabs): Combine duplicated item into a single
        one using || for LangEnabledBy.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r218175

10 years agobitmap.c (bitmap_ior, bitmap_ior_and_compl): Zap current as it could be deleted.
Mike Stump [Fri, 28 Nov 2014 22:23:59 +0000 (22:23 +0000)]
bitmap.c (bitmap_ior, bitmap_ior_and_compl): Zap current as it could be deleted.

From-SVN: r218173

10 years agore PR target/64061 (ICE: in gen_rtx_SUBREG, at emit-rtl.c:894 with -O2 -g -fno-dce...
Vladimir Makarov [Fri, 28 Nov 2014 19:33:35 +0000 (19:33 +0000)]
re PR target/64061 (ICE: in gen_rtx_SUBREG, at emit-rtl.c:894 with -O2 -g -fno-dce -fno-tree-dce)

2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR target/64061
* lra.c (lra_substitute_pseudo): Ignore constant with int mode for
subreg.

2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR target/64061
* gcc.target/i386/pr64061.c: New.

From-SVN: r218171

10 years agoAdd support for a minimal version of libgfortran for accelerator targets.
Bernd Schmidt [Fri, 28 Nov 2014 17:39:15 +0000 (17:39 +0000)]
Add support for a minimal version of libgfortran for accelerator targets.

* Makefile.am (AM_CFLAGS): Add -DLIBGFOR_MINIMAL if LIBGFOR_MINIMAL.
        (gfor_io_src, gfor_heper_src, gfor_src): Split into minimal and
        always included sources.
        * Makefile.in: Regenerate.
        * configure.ac (LIBGFOR_MINIMAL): New AM_CONDITIONAL.
        * configure: Regenerate.
        * caf/single.c (caf_runtime_error): Don't print messages if
        LIBGFOR_MINIMAL.
        * runtime/compile_options.c (fatal_error_in_progress,
        show_signal, backtrace_handler, maybe_find_addr2line): Guard with
        !defined LIBGFOR_MINIMAL.
        (set_options): Likewise for the backtrace code.
        * runtime/minimal.c: New file.

From-SVN: r218170

10 years agore PR target/64093 (ICE error: unrecognizable insn with -mcpu=cell)
Segher Boessenkool [Fri, 28 Nov 2014 16:25:33 +0000 (17:25 +0100)]
re PR target/64093 (ICE error: unrecognizable insn with -mcpu=cell)

PR target/64093
* config/rs6000/rs6000.md (and<mode>3): Don't generate
and<mode>3_imm unless rs6000_gen_cell_microcode is true.

From-SVN: r218164

10 years agoc-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR instead of unsigned_...
Marek Polacek [Fri, 28 Nov 2014 15:54:52 +0000 (15:54 +0000)]
c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR instead of unsigned_type_node.

* c-ubsan.c (ubsan_instrument_shift): Use op1_utype for MINUS_EXPR
instead of unsigned_type_node.

* c-c++-common/ubsan/shift-8.c: New test.

From-SVN: r218163

10 years agore PR rtl-optimization/64087 (ICE on valid code at -O3 on x86_64-linux-gnu in in...
Vladimir Makarov [Fri, 28 Nov 2014 15:39:52 +0000 (15:39 +0000)]
re PR rtl-optimization/64087 (ICE on valid code at -O3 on x86_64-linux-gnu in in lra_create_live_ranges, at lra-lives.c:1330)

2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/64087
* lra-lives.c (process_bb_lives): Add debug output.
(lra_create_live_ranges): Don't remove dead insn on the second
call of lra_create_live_ranges_1.

2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/64087
*  gcc.dg/pr64087.c: New.

From-SVN: r218162

10 years agoPass unpromoted argument to promote_function_mode
H.J. Lu [Fri, 28 Nov 2014 15:27:55 +0000 (15:27 +0000)]
Pass unpromoted argument to promote_function_mode

This patch updates setup_incoming_promotions in combine.c to match what
is actually passed in assign_parm_setup_reg in function.c.

gcc/

PR rtl-optimization/64037
* combine.c (setup_incoming_promotions): Pass the argument
before any promotions happen to promote_function_mode.

gcc/testsuite/

PR rtl-optimization/64037
* g++.dg/pr64037.C: New test.

From-SVN: r218161

10 years agotree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to...
Evgeny Stupachenko [Fri, 28 Nov 2014 14:45:26 +0000 (14:45 +0000)]
tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to loads group of size 3.

gcc/
* tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
permutations to loads group of size 3.

gcc/testsuite/

* gcc.target/i386/pr52252-atom-1.c: Delete.

From-SVN: r218160

10 years ago[ARM] Optimize copysign/copysignf for soft-float using BFI
Jiong Wang [Fri, 28 Nov 2014 14:07:04 +0000 (14:07 +0000)]
[ARM] Optimize copysign/copysignf for soft-float using BFI

  gcc/
    * config/arm/arm.md (copysignsf3): New pattern.
    (copysigndf3): Likewise.

  gcc/testsuite/
    * gcc.target/arm/copysign_softfloat_1.c: New copysign/copysignf
    testcase for soft-float.

From-SVN: r218159

10 years agoomp-low.c (lower_omp_critical): Mark critical sections inside target functions as...
Andrey Turetskiy [Fri, 28 Nov 2014 13:59:49 +0000 (13:59 +0000)]
omp-low.c (lower_omp_critical): Mark critical sections inside target functions as offloadable.

gcc/
* omp-low.c (lower_omp_critical): Mark critical sections
inside target functions as offloadable.
libgomp/
* testsuite/libgomp.c/target-critical-1.c: New test.

Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
From-SVN: r218158