Skip to content
Snippets Groups Projects
  1. Nov 28, 2017
    • Julia Koval's avatar
      Remove Cilk Plus support. · 5e9d6aa4
      Julia Koval authored
      
      	* Makefile.def (target_modules): Remove libcilkrts.
      	* Makefile.in: Ditto.
      	* configure: Ditto.
      	* configure.ac: Ditto.
      
      contrib/
      	* contrib/gcc_update: Ditto.
      
      gcc/
      	* Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, 
      	c-family/c-cilkplus.o, c-family/array-notation-common.o,
      	cilk-common.o, cilk.h, cilk-common.c): Remove.
      	* builtin-types.def
      	(BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
      	* builtins.c (is_builtin_name): Remove cilkplus condition.
      	(BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
      	* builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
      	cilk-builtins.def, cilkplus.def): Remove.
      	* cif-code.def (CILK_SPAWN): Remove.
      	* cilk-builtins.def: Delete.
      	* cilk-common.c: Ditto.
      	* cilk.h: Ditto.
      	* cilkplus.def: Ditto.
      	* config/darwin.h (fcilkplus): Delete.
      	* cppbuiltin.c: Ditto.
      	* doc/extend.texi: Remove cilkplus doc.
      	* doc/generic.texi: Ditto.
      	* doc/invoke.texi: Ditto.
      	* doc/passes.texi: Ditto.
      	* gcc.c (fcilkplus): Remove.
      	* gengtype.c (cilk.h): Remove.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support.
      	* gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove.
      	* gimplify.c (gimplify_return_expr, maybe_fold_stmt,
      	gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr,
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
      	gimplify_omp_for, gimplify_expr): Remove cilkplus conditions.
      	* ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
      	inline_read_section): Ditto.
      	* ipa-inline-analysis.c (cilk.h): Remove.
      	* ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
      	* lto-wrapper.c (merge_and_complain, append_compiler_options,
      	append_linker_options): Remove condition for fcilkplus.
      	* lto/lto-lang.c (cilk.h): Remove.
      	(lto_init): Remove condition for fcilkplus.
      	* omp-expand.c (expand_cilk_for_call): Delete.
      	(expand_omp_taskreg, expand_omp_for_static_chunk,
      	expand_omp_for): Remove cilkplus
      	conditions.
      	(expand_cilk_for): Delete.
      	* omp-general.c (omp_extract_for_data): Remove cilkplus support.
      	* omp-low.c (scan_sharing_clauses, create_omp_child_function,
      	execute_lower_omp, diagnose_sb_0): Ditto.
      	* omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
      	* tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree-nested.c: Ditto.
      	* tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
      	(dump_generic_node): Ditto.
      	* tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree.def (cilk_simd, cilk_for, cilk_spawn_stmt,
      	cilk_sync_stmt): Delete.
      	* tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
      
      gcc/c-family/
      	* array-notation-common.c: Delete.
      	* c-cilkplus.c: Ditto.
      	* c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
      	* c-common.def (ARRAY_NOTATION_REF): Remove.
      	* c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
      	build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
      	c_validate_cilk_plus_loop, cilkplus_an_parts,
      	cilk_ignorable_spawn_rhs_op,
      	cilk_recognize_spawn): Remove.
      	* c-gimplify.c (CILK_SPAWN_STMT): Remove.
      	* c-omp.c: Remove CILK_SIMD check.
      	* c-pragma.c: Ditto.
      	* c-pragma.h: Remove CILK related pragmas.
      	* c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
      	ARRAY_NOTATION_REF condition.
      	(c_pretty_printer::expression): Ditto.
      	* c.opt (fcilkplus): Remove.
      	* cilk.c: Delete.
      
      gcc/c/
      	* Make-lang.in (c/c-array-notation.o): Remove.
      	* c-array-notation.c: Delete.
      	* c-decl.c: Remove cilkplus condition.
      	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
      	c_parser_cilk_verify_simd, c_parser_array_notation,
      	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
      	c_parser_cilk_simd_fn_vector_attrs,
      	c_finish_cilk_simd_fn_tokens): Delete.
      	(c_parser_declaration_or_fndef): Remove cilkplus condition.
      	(c_parser_direct_declarator_inner): Ditto.
      	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
      	(c_parser_attributes, c_parser_compound_statement,
      	c_parser_statement_after_labels, c_parser_if_statement,
      	c_parser_switch_statement, c_parser_while_statement,
      	c_parser_do_statement, c_parser_for_statement,
      	c_parser_unary_expression, c_parser_postfix_expression,
      	c_parser_postfix_expression_after_primary,
      	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
      	c_parser_omp_for_loop,
      	c_finish_omp_declare_simd): Remove cilkplus support.
      	* c-typeck.c (build_array_ref, build_function_call_vec,
      	convert_arguments, lvalue_p, build_compound_expr, c_finish_return,
      	c_finish_if_stmt, c_finish_loop,
      	build_binary_op): Remove cilkplus support.
      	
      gcc/cp/
      	* Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete.
      	* call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus.
      	* constexpr.c (potential_constant_expression_1): Ditto.
      	* cp-array-notation.c: Delete.
      	* cp-cilkplus.c: Ditto.
      	* cp-cilkplus.h: Ditto.
      	* cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove
      	cilkplus condition.
      	* cp-objcp-common.c (ARRAY_NOTATION_REF): Delete.
      	* cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete.
      	* decl.c (grokfndecl, finish_function): Remove cilkplus condition.
      	* error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition.
      	* lambda.c (cp-cilkplus.h): Remove.
      	* parser.c (cp_parser_cilk_simd, cp_parser_cilk_for,
      	cp_parser_cilk_simd_vectorlength): Delete.
      	(cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body,
      	cp_parser_postfix_expression, cp_parser_postfix_open_square_expression,
      	cp_parser_statement, cp_parser_jump_statement,
      	cp_parser_direct_declarator,
      	cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list,
      	cp_parser_omp_clause_name, cp_parser_omp_clause_aligned,
      	cp_parser_omp_clause_linear, cp_parser_omp_all_clauses,
      	cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr,
      	cp_parser_omp_for_loop_init, cp_parser_omp_for_loop,
      	cp_parser_omp_declare_simd): Remove cilkplus support.
      	(CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info,
      	cp_parser_cilk_grainsize): Remove.
      	(cp_parser_pragma, c_parse_file): Remove cilkplus support.
      	(cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear,
      	cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses,
      	cp_parser_cilk_simd, cp_parser_cilk_for): Remove.
      	* parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove.
      	* pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove
      	cilkplus support.
      	* semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body,
      	finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr,
      	finish_omp_clauses, finish_omp_clauses,
      	finish_omp_for): Remove cilkplus support.
      	* tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon.
      	* typeck.c (cp_build_array_ref, cp_build_compound_expr,
      	check_return_expr): Remove cilkplus support.
      
      gcc/testsuite/
      	* c-c++-common/attr-simd-3.c: Delete.
      	* c-c++-common/cilk-plus/AN/an-if.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test1.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test2.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test_ND.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete.
      	* c-c++-common/cilk-plus/AN/comma_exp.c: Delete.
      	* c-c++-common/cilk-plus/AN/conditional.c: Delete.
      	* c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete.
      	* c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr.c: Delete.
      	* c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather_scatter.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/misc.c: Delete.
      	* c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors2.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors3.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors4.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57490.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57577.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr58942.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61191.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61962.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61963.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr62008.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr63884.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/side-effects-1.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete.
      	* c-c++-common/cilk-plus/AN/tst_lngth.c: Delete.
      	* c-c++-common/cilk-plus/AN/vla.c: Delete.
      	* c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-fors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete.
      	* c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c
      	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr59631.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60469.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60586.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr63307.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-4.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-7.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Delete.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Delete.
      	* c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Delete.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Delete.
      	* c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/body.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses1.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses2.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses3.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses4.c: Delete.
      	* c-c++-common/cilk-plus/PS/for1.c: Delete.
      	* c-c++-common/cilk-plus/PS/for2.c: Delete.
      	* c-c++-common/cilk-plus/PS/for3.c: Delete.
      	* c-c++-common/cilk-plus/PS/pr69363.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/run-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/safelen.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error2.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error3.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test2.c: Delete.
      	* c-c++-common/cilk-plus/SE/vlength_errors.c: Delete.
      	* g++.dg/cilk-plus/AN/array_function.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/braced_list.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/postincr_test.c: Delete.
      	* g++.dg/cilk-plus/AN/preincr_test.c: Delete.
      	* g++.dg/cilk-plus/CK/catch_exc.c: Delete.
      	* g++.dg/cilk-plus/CK/cf3.c: Delete.
      	* g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/const_spawn.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/for1.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/pr60586.c: Delete.
      	* g++.dg/cilk-plus/CK/pr66326.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68001.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68997.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69024.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69048.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69267.c: Delete.
      	* g++.dg/cilk-plus/CK/pr80038.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_test.c: Delete.
      	* g++.dg/cilk-plus/cilk-plus.exp
      	* g++.dg/cilk-plus/ef_test.C: Delete.
      	* g++.dg/cilk-plus/for.C: Delete.
      	* g++.dg/cilk-plus/for2.C: Delete.
      	* g++.dg/cilk-plus/for3.C: Delete.
      	* g++.dg/cilk-plus/for4.C: Delete.
      	* g++.dg/cilk-plus/pr60967.C: Delete.
      	* g++.dg/cilk-plus/pr69028.C: Delete.
      	* g++.dg/cilk-plus/pr70565.C: Delete.
      	* g++.dg/pr57662.C: Delete.
      	* gcc.dg/cilk-plus/cilk-plus.exp
      	* gcc.dg/cilk-plus/for1.c: Delete.
      	* gcc.dg/cilk-plus/for2.c: Delete.
      	* gcc.dg/cilk-plus/jump-openmp.c: Delete.
      	* gcc.dg/cilk-plus/jump.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-1.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-2.c: Delete.
      	* gcc.dg/cilk-plus/pr78306.c: Delete.
      	* gcc.dg/cilk-plus/pr79116.c: Delete.
      	* gcc.dg/graphite/id-28.c: Delete.
      	* lib/cilk-plus-dg.exp: Delete.
      	* lib/target-supports.exp (cilkplus_runtime): Delete.
      
      Co-Authored-By: default avatarSebastian Peryt <sebastian.peryt@intel.com>
      
      From-SVN: r255195
      5e9d6aa4
    • Ramana Radhakrishnan's avatar
      [Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd · 1be49a38
      Ramana Radhakrishnan authored
      The canonical examples is :
      
          double
          foo (double x, double y)
            {
              return x / y;
            }
      
          with -march=armv8-a+nosimd
      
      generates a function that calls __divdf3. Ofcourse on AArch64 we don't
      have any software floating point and this causes issues.
      
      There is also a problem in +nosimd that has existed since the dawn of
      time in the port with respect to long doubles (128 bit floating
      point), here the ABI and the compiler expect the presence of the SIMD
      unit as these parameters are passed in the vector registers. Thus
      while +nosimd tries to prevent the use of SIMD instructions in the
      compile we don't get this right as we end up using ldr qN / str qN
      instructions and even there I think things go wrong in a simple
      example that I tried.
      
      Is that sufficient to consider marking +nosimd as deprecated in GCC-8
      and remove this in a future release ?
      
      That is not a subject for this patch but something separate but I
      would like to put this into trunk and the release
      branches. Bootstrapped and regression tested on my aarch64 desktop.
      
      Ok ?
      
      From-SVN: r255194
      1be49a38
    • Jakub Jelinek's avatar
      re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp... · 3c88da0d
      Jakub Jelinek authored
      re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp -fno-tree-coalesce-vars -fno-tree-vrp)
      
      	PR rtl-optimization/81020
      	* gcc.dg/pr81020.c: New test.
      
      From-SVN: r255193
      3c88da0d
    • Jakub Jelinek's avatar
      tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. · 9e851845
      Jakub Jelinek authored
      	* tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
      	Adjust comment.
      	* tree.h (SWITCH_LABELS): Remove.
      	* gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
      	assert SWITCH_BODY is non-NULL.
      	* tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
      	handling.
      	* tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
      c/
      	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
      	of build3.
      cp/
      	* cp-gimplify.c (genericize_switch_stmt): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      ada/
      	* gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
      	using build2 instead of build3.
      jit/
      	* jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
      	of build3.  Formatting fixes.  Adjust funciton comment.
      fortran/
      	* trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
      	using fold_build2_loc instead of fold_build3_loc.
      	* trans-io.c (io_result): Likewise.
      	* trans-stmt.c (gfc_trans_integer_select, gfc_trans_character_select):
      	Likewise.
      go/
      	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      brig/
      	* brigfrontend/brig-branch-inst-handler.cc
      	(brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2
      	instead of build3.
      
      From-SVN: r255192
      9e851845
    • Jakub Jelinek's avatar
      re PR tree-optimization/80788 (ICE in set_value_range, at tree-vrp.c:252) · 11c1e63c
      Jakub Jelinek authored
      	PR tree-optimization/80788
      	* match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
      	has TREE_OVERFLOW set, call drop_tree_overflow.
      
      	* gcc.dg/pr80788.c: New test.
      
      From-SVN: r255191
      11c1e63c
    • Richard Biener's avatar
      re PR target/83158 (gcc.target/i386/pr78057.c fail) · 6a7a7f92
      Richard Biener authored
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83158
      	* tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more
      	cases.
      
      From-SVN: r255190
      6a7a7f92
    • Julia Koval's avatar
      * MAINTAINERS (write after approval): Add myself. · d2eaaa89
      Julia Koval authored
      From-SVN: r255189
      d2eaaa89
    • Segher Boessenkool's avatar
      rs6000: Improve comparison rtx_cost (PR81288) · b8adcbd9
      Segher Boessenkool authored
      The current rs6000 rtx_cost for comparisons against 0 is very high if
      TARGET_ISEL && !TARGET_MFCRF, much higher than for reg-reg comparisons,
      much higher than a load of 0 and such a reg-reg-comparison.  This leads
      to infinite recursion in CSE (see PR81288).
      
      This patch removes the too-high cost, also simplifying this code.
      
      
      	PR 81288/target
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
      	TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
      
      From-SVN: r255188
      b8adcbd9
    • Segher Boessenkool's avatar
      rs6000: Improve scc isel · fd8bf76c
      Segher Boessenkool authored
      If we have a negative condition we can use a literal 0 in the isel,
      instead of having to load it into a register.  If the condition is from
      a comparison with an immediate we can change e.g. LT to LE and adjust
      the immediate, saving a li instruction.
      
      
      	* config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
      	LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
      
      From-SVN: r255186
      fd8bf76c
    • GCC Administrator's avatar
      Daily bump. · 2ac1a8d8
      GCC Administrator authored
      From-SVN: r255185
      2ac1a8d8
    • Martin Sebor's avatar
      PR c++/83058 - ICE on C++ code with negative array index: in warn_placement_new_too_small · 9ca1eaac
      Martin Sebor authored
      gcc/cp/ChangeLog:
      
      	PR c++/83058
      	* init.c (warn_placement_new_too_small): Use offset_int instead of
      	HOST_WIDE_INT.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/83058
      	* g++.dg/warn/Wplacement-new-size-5.C: New test.
      
      From-SVN: r255182
      9ca1eaac
  2. Nov 27, 2017
    • Jakub Jelinek's avatar
      re PR c++/81888 (Structured bindings stopped working) · de3d4fd0
      Jakub Jelinek authored
      	PR c++/81888
      	* parser.c (cp_parser_decomposition_declaration): Reject just
      	BRACE_ENCLOSED_INITIALIZER_P initializers with nelts != 1 rather
      	than all such CONSTRUCTORs, and only if is_direct_init is true.
      
      	* g++.dg/cpp1z/decomp30.C: Add a test for structured binding with
      	= {} and = { a, a } initializers.
      	* g++.dg/cpp1z/decomp31.C: New test.
      
      From-SVN: r255180
      de3d4fd0
    • Jason Merrill's avatar
      pt.c (primary_template_specialization_p): Rename from · 528c7559
      Jason Merrill authored
      	* pt.c (primary_template_specialization_p): Rename from
      
      	primary_template_instantiation_p.  Don't check
      	DECL_TEMPLATE_INSTANTIATION.
      	* call.c, cp-tree.h, decl2.c: Adjust.
      
      From-SVN: r255179
      528c7559
    • Michael Meissner's avatar
      [gcc] · 32c95bca
      Michael Meissner authored
      2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR middle_end/82333
      	* varasm.c (compare_constant): Take the mode of the constants into
      	account when comparing floating point constants.
      
      [gcc/testsuite]
      2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR middle_end/82333
      	* gcc.target/powerpc/pr82333.c: New test.
      
      From-SVN: r255177
      32c95bca
    • Stephan Bergmann's avatar
      Add missing noexcept in string_view::find_first_of declaration · 0f42ffd7
      Stephan Bergmann authored
      2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
      
      	* include/std/string_view (basic_string_view::find_first_of): Add
      	missing noexcept.
      
      From-SVN: r255176
      0f42ffd7
    • Gerald Pfeifer's avatar
      hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit... · 4c71819d
      Gerald Pfeifer authored
      hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper.
      
      	* hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
      	from explicit instantiation of debug_helper.
      	* vec.h (DEFINE_DEBUG_VEC): Ditto.
      
      From-SVN: r255175
      4c71819d
    • Stephan Bergmann's avatar
      Fix std::unordered_map deduction guide · 68e601d8
      Stephan Bergmann authored
      2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
      
      	* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
      	* include/debug/unordered_map (unordered_map): Likewise.
      
      From-SVN: r255174
      68e601d8
    • Richard Biener's avatar
      gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit. · 42f74245
      Richard Biener authored
      2017-11-27  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
      	refactor a bit.
      
      From-SVN: r255172
      42f74245
    • Richard Biener's avatar
      tree.c (wide_int_to_tree): Free discarded INTEGER_CST. · 53d2b7cb
      Richard Biener authored
      2017-11-27  Richard Biener  <rguenther@suse.de>
      
      	* tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
      	(type_hash_canon): Also clear int_cst_hash_table entry for
      	TYPE_MIN/MAX_VALUE.
      	(build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
      
      From-SVN: r255171
      53d2b7cb
    • Tamar Christina's avatar
      extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). · d7dccfa3
      Tamar Christina authored
      2017-11-27  Tamar Christina  <tamar.christina@arm.com>
      
      	* doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      	* doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      	* doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      
      From-SVN: r255169
      d7dccfa3
    • Jakub Jelinek's avatar
      re PR c++/81675 (attribute(noreturn) of destructor in :? not honored) · cb358080
      Jakub Jelinek authored
      	PR c++/81675
      	* cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately
      	for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is
      	INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall
      	through into normal folding, otherwise just rebuild x if any op
      	changed.
      
      	* g++.dg/warn/pr81675.C: New test.
      
      From-SVN: r255167
      cb358080
    • Markus Trippelsdorf's avatar
      Fix UB in hash-map.h · 04f91503
      Markus Trippelsdorf authored
      bootstrap-ubsan shows:
        gcc/hash-map.h:277:19: runtime error: member access within null pointer of type 'struct hash_map'
      
      Fix the issue by returning early.
      
      From-SVN: r255166
      04f91503
    • Eric Botcazou's avatar
      cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. · ff27462e
      Eric Botcazou authored
      	* cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
      	* loop-unroll.c (decide_unroll_constant_iterations): Implement it.
      	(decide_unroll_runtime_iterations): Likewise.
      	(decide_unroll_stupid): Likewise.
      
      From-SVN: r255165
      ff27462e
    • Igor Tsimbalist's avatar
      Fix code generation for buildtin_longjmp with CET. · 39335d14
      Igor Tsimbalist authored
      According to the description of  inssp instruction from Intel CET it
      adusts the shadow stack pointer (ssp) only by value in the range of
      [0..255]. As a number of adjustment could be greater than 255 there
      should be a loop generated to adjust ssp.
      
      gcc/
      	* config/i386/i386.md: Add a loop with incssp.
      	* testsuite/gcc.target/i386/cet-sjlj-1.c: Fix test.
      	* testsuite/gcc.target/i386/cet-sjlj-4.c: Likewise.
      
      From-SVN: r255164
      39335d14
    • Martin Jambor's avatar
      [PR 81248] Fix ipa-sra size check · be025a2d
      Martin Jambor authored
      2017-11-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/81248
      	* tree-sra.c (splice_param_accesses): Remove size check.
      	(decide_one_param_reduction): Fix size check.
      	* gimple-pretty-print.c (dump_profile): Silence warning.
      	* params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
      
      	testsuite/
      	* g++.dg/ipa/pr81248.C: New test.
      	* gcc.dg/tree-ssa/ssa-pre-31.c: Disable IPA-SRA.
      	* gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c: Likewise.
      
      From-SVN: r255163
      be025a2d
    • Jakub Jelinek's avatar
      null-8.C (bar): New function. · 8cb71598
      Jakub Jelinek authored
      	* g++.dg/ubsan/null-8.C (bar): New function.
      	(foo): Use bar instead of __builtin_printf.
      
      From-SVN: r255162
      8cb71598
    • Jakub Jelinek's avatar
      re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · b8cb3096
      Jakub Jelinek authored
      	PR debug/81307
      	* dbxout.c (lastlineno): New variable.
      	(dbx_debug_hooks): Use dbxout_switch_text_section as
      	switch_text_section debug hook.
      	(dbxout_function_end): Switch to current_function_section
      	rather than function_section.  If crtl->has_bb_partition,
      	output just one N_FUN, depending on in_cold_section_p.
      	(dbxout_source_line): Remember last lineno in lastlineno.
      	(dbxout_switch_text_section): New function.
      	(dbxout_function_decl): Adjust dbxout_block caller.
      	(dbx_block_with_cold_children): New function.
      	(dbxout_block): Return true if any LBRAC/RBRAC have been
      	emitted.  Use dbx_block_with_cold_children at depth == 0
      	in second partition.  Add PARENT_BLOCKNUM argument, pass
      	it optionally adjusted to children.  Output LBRAC/RBRAC
      	around recursive call only if the block is in the current
      	partition, if not and anything was output, emit empty
      	range LBRAC/RBRAC.
      	* final.c (final_scan_insn): Compute cold_function_name
      	before calling switch_text_section debug hook.  Call
      	that hook even if dwarf2out_do_frame if not emitting
      	dwarf debug info.
      
      	* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
      	workaround.
      
      From-SVN: r255161
      b8cb3096
    • Jakub Jelinek's avatar
      re PR target/83100 (powerpc: internal compiler error: in get_variable_section,... · 9adeb64a
      Jakub Jelinek authored
      re PR target/83100 (powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections)
      
      	PR target/83100
      	* varasm.c (bss_initializer_p): Return true for DECL_COMMON
      	TREE_READONLY decls.
      
      	* gcc.dg/pr83100-1.c: New test.
      	* gcc.dg/pr83100-2.c: New test.
      	* gcc.dg/pr83100-3.c: New test.
      	* gcc.dg/pr83100-4.c: New test.
      
      From-SVN: r255160
      9adeb64a
    • Markus Trippelsdorf's avatar
      Fix PR82488 - signed integer overflow in expr.c · 99282f81
      Markus Trippelsdorf authored
      bootstrap-ubsan shows:
       gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int'
      
      Fix by handling the saw_unknown case earlier.
      
      	PR rtl-optimization/82488
      	* expr.c (fixup_args_size_notes): Avoid signed integer overflow.
      
      diff --git a/gcc/expr.c b/gcc/expr.c
      index ee07de5aaa44..e9d8555c9452 100644
      --- a/gcc/expr.c
      +++ b/gcc/expr.c
      @@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size)
             if (STACK_GROWS_DOWNWARD)
       	this_delta = -(unsigned HOST_WIDE_INT) this_delta;
      
      -      args_size -= this_delta;
      +      if (saw_unknown)
      +	args_size = INT_MIN;
      +      else
      +	args_size -= this_delta;
           }
      
      -  return saw_unknown ? INT_MIN : args_size;
      +  return args_size;
       }
      
       #ifdef PUSH_ROUNDING
      --
      Markus
      
      From-SVN: r255159
      99282f81
    • GCC Administrator's avatar
      Daily bump. · 62e8530c
      GCC Administrator authored
      From-SVN: r255158
      62e8530c
  3. Nov 26, 2017
    • Uros Bizjak's avatar
      i386.c (processor_target_table): Add skylake_cost for skylake-avx512. · c234d831
      Uros Bizjak authored
      	* config/i386/i386.c (processor_target_table): Add skylake_cost for
      	skylake-avx512.
      	* config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
      	skylake_cost): New.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu):
      	Detect skylake-avx512.
      
      	* config.gcc: Add -march=cannonlake.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
      	* config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
      	(PTA_CANNONLAKE): New.
      	(processor_target_table): Add cannonlake.
      	(ix86_option_override_internal): Ditto.
      	(fold_builtin_cpu): Ditto.
      	(get_builtin_code_for_version): Handle cannonlake.
      	(M_INTEL_COREI7_CANNONLAKE): New.
      	* config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
      	* doc/invoke.texi: Add -march=cannonlake.
      
      gcc/testsuite/
      
      	* gcc.target/i386/funcspec-56.inc: Handle new march.
      	* g++.dg/ext/mv16.C: Ditto.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake.
      	* config/i386/cpuinfo.h (processor_subtypes): Add
      	INTEL_COREI7_CANNONLAKE.
      
      From-SVN: r255155
      c234d831
    • Boris Kolpackov's avatar
      Plugin support on Windows/MinGW · 8c7dbea9
      Boris Kolpackov authored
      config/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* gcc-plugin.m4: Add support for MinGW.
      
      gcc/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* plugin.c (add_new_plugin): Use platform-specific library extensions.
      	(try_init_one_plugin): Alternative implementation for MinGW.
      	* Makefile.in (plugin_implib): New.
      	(gengtype-lex.c): Fix broken AIX workaround.
      	* configure: Regenerate.
      	* doc/plugins.texi: Document support for MinGW.
      
      gcc/c/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c.install-plugin): Install backend import library.
      
      gcc/cp/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c++.install-plugin): Install backend import library.
      
      libcc1/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* configure: Regenerate.
      
      From-SVN: r255154
      8c7dbea9
    • GCC Administrator's avatar
      Daily bump. · 44dfb822
      GCC Administrator authored
      From-SVN: r255153
      44dfb822
  4. Nov 25, 2017
  5. Nov 24, 2017
    • Jakub Jelinek's avatar
      re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type... · 3b3e6283
      Jakub Jelinek authored
      re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max')
      
      	PR fortran/81304
      	* trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set
      	attr.implicit_type in intrinsic_sym to avoid undesirable warning.
      
      	* testsuite/libgomp.fortran/pr81304.f90: New test.
      
      From-SVN: r255144
      3b3e6283
    • Jackson Woodruff's avatar
      Factor out division by squares · 19cf3a36
      Jackson Woodruff authored
      This patch implements the some of the division optimizations discussed in
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026.
      
      The division reciprocal optimization now handles divisions by squares:
      
           x / (y * y) -> x  * (1 / y) * (1 / y)
      
      This requires at least one more division by y before it triggers - the
      3 divisions of (1/ y) are then CSEd into a single division.  Overall
      this changes 1 division into 1 multiply, which is generally much faster.
      
      
      2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
      
          gcc/
      	PR tree-optimization/71026
      	* tree-ssa-math-opts (is_division_by_square, is_square_of): New.
      	(insert_reciprocals): Change to insert reciprocals before a division
      	by a square and to insert the square of a reciprocal.
      	(execute_cse_reciprocals_1): Change to consider division by a square.
      	(register_division_in): Add importance parameter.
      
          testsuite/
      	PR tree-optimization/71026
      	* gfortran.dg/extract_recip_1.f: New test.
      	* gcc.dg/extract_recip_3.c: New test.
      	* gcc.dg/extract_recip_4.c: New test.
      
      From-SVN: r255141
      19cf3a36
    • Richard Biener's avatar
      re PR tree-optimization/82402 (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set) · 15b6695a
      Richard Biener authored
      2017-11-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82402
      	* tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
      	set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
      
      	* gcc.dg/torture/pr82402.c: New testcase.
      
      From-SVN: r255140
      15b6695a
Loading