Commit Graph

127224 Commits

Author SHA1 Message Date
Yvan Roux 78a14aa81e arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS for LRA.
2013-11-29  Yvan Roux  <yvan.roux@linaro.org>

        * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS
        for LRA.

From-SVN: r205527
2013-11-29 13:17:04 +00:00
Yvan Roux b2ddad83bc arm.md (store_minmaxsi): Use only when optimize_function_for_size_p.
2013-11-29  Yvan Roux  <yvan.roux@linaro.org>

         * config/arm/arm.md (store_minmaxsi): Use only when
        optimize_function_for_size_p.

From-SVN: r205526
2013-11-29 13:10:52 +00:00
H.J. Lu d7947e191b Properly handle function without arguments
PR c/59309
	* cilk.c (gimplify_cilk_spawn): Properly handle function without
	arguments.

From-SVN: r205525
2013-11-29 05:00:35 -08:00
Jakub Jelinek 35814b0346 re PR sanitizer/59063 (ASAN: segfault in __interceptor_clock_gettime)
gcc/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * config/gnu-user.h: Removed old code for setting up sanitizer
        libs.
        * gcc.c: Using libsanitizer spec instead of explicit libs.

gcc/testsuite/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * c-c++-common/asan/pr59063-1.c: New test.
        * c-c++-common/asan/pr59063-2.c: Likewise.
        * lib/asan-dg.exp: Add path to libsanitizer.spec to cflags.
        * lib/ubsan-dg.exp: Likewise.

libsanitizer/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * libsanitizer.spec.in: Add spec file to hold link flags for
        various sanitizer libs.
        * configure.ac: Check whether clock_* routines come from librt.
        * asan/Makefile.am (libasan_la_LDFLAGS): Libs now come from
        configure.ac.
        * tsan/Makefile.am (libtsan_la_LDFLAGS): Likewise.
        * ubsan/Makefile.am (libubsan_la_LDFLAGS): Likewise.
        * lsan/Makefile.am (liblsan_la_LDFLAGS): Likewise.
        * asan/Makefile.in: Regenerate.
        * interception/Makefile.in: Regenerate.
        * lsan/Makefile.in: Regenerate.
        * sanitizer_common/Makefile.in: Regenerate.
        * tsan/Makefile.in: Regenerate.
        * ubsan/Makefile.in: Regenerate.
        * Makefile.in: Regenerate.
        * configure: Regenerate.


Co-Authored-By: Yury Gribov <y.gribov@samsung.com>

From-SVN: r205524
2013-11-29 12:30:36 +00:00
Eric Botcazou 08c5a7c685 * gnat.dg/opt29.ad[sb]: New test.
From-SVN: r205523
2013-11-29 12:16:07 +00:00
Ilya Enkovich 089d122746 revert: cgraph.h (varpool_node): Add need_bounds_init field.
Reverted:
	2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
	* cgraph.h (varpool_node): Add need_bounds_init field.
	* lto-cgraph.c (lto_output_varpool_node): Output
	need_bounds_init value.
	(input_varpool_node): Read need_bounds_init value.
	* varpool.c (dump_varpool_node): Dump need_bounds_init field.

	Reverted:
	2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
	* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
	* dwarf2out.c (gen_subprogram_die): Ignore bound args.
	(gen_type_die_with_usage): Skip pointer bounds.
	(dwarf2out_global_decl): Likewise.

	Reverted:
	2013-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
	* builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
	* chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
	* cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
	* gimple.c (gimple_call_get_nobnd_arg_index): Remove.
	* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
	(gimple_call_with_bounds_p): New.
	(gimple_call_set_with_bounds): New.
	(gimple_call_num_nobnd_args): Remove.
	(gimple_call_nobnd_arg): Remove.
	* tree.h (CALL_WITH_BOUNDS_P): New.
	* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.

	Reverted:
	2013-11-08  Ilya Enkovich  <ilya.enkovich@intel.com>
	* common.opt (fcheck-pointer-bounds): Move to ...
	* c-family/c.opt: ... here.
	* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
	* langhooks.h (lang_hooks): Remove chkp_supported field.
	* toplev.c (process_options): Remove chkp_supported check.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
	* tree.h (POINTER_BOUNDS_P): New.
	(BOUNDED_TYPE_P): New.
	(BOUNDED_P): New.
	(pointer_bounds_type_node): New.
	* tree.c (build_common_tree_nodes): Initialize
	pointer_bounds_type_node.
	* gimple.h (gimple_call_get_nobnd_arg_index): New.
	(gimple_call_num_nobnd_args): New.
	(gimple_call_nobnd_arg): New.
	(gimple_return_retbnd): New.
	(gimple_return_set_retbnd): New
	* gimple.c (gimple_build_return): Increase number of ops
	for return statement.
	(gimple_call_get_nobnd_arg_index): New.
	* gimple-pretty-print.c (dump_gimple_return): Print second op.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* ipa.c (cgraph_build_static_cdtor_1): Support contructors
	with "chkp ctor" and "bnd_legacy" attributes.
	* gimplify.c (gimplify_init_constructor): Avoid infinite
	loop during gimplification of bounds initializer.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
	(handle_bnd_legacy): New.
	(c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
	* doc/extend.texi: Document bnd_variable_size and bnd_legacy
	attributes.

	Reverted:
	2013-10-29  Ilya Enkovich  <ilya.enkovich@intel.com>
	* builtin-types.def (BT_FN_VOID_CONST_PTR): New.
	(BT_FN_PTR_CONST_PTR): New.
	(BT_FN_CONST_PTR_CONST_PTR): New.
	(BT_FN_PTR_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_VOID_PTRPTR_CONST_PTR): New.
	(BT_FN_VOID_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
	* chkp-builtins.def: New.
	* builtins.def: include chkp-builtins.def.
	(DEF_CHKP_BUILTIN): New.
	* builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
	BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
	BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
	BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
	BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
	BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
	BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
	BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
	* common.opt (fcheck-pointer-bounds): New.
	* toplev.c (process_options): Check Pointer Bounds Checker is
	supported.
	* doc/extend.texi: Document Pointer Bounds Checker built-in functions.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* target.def (builtin_chkp_function): New.
	(chkp_bound_type): New.
	(chkp_bound_mode): New.
	(fn_abi_va_list_bounds_size): New.
	(load_bounds_for_arg): New.
	(store_bounds_for_arg): New.
	* targhooks.h (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_fn_abi_va_list_bounds_size): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode): New.
	(default_builtin_chkp_function): New.
	* targhooks.c (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_fn_abi_va_list_bounds_size): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode); New.
	(default_builtin_chkp_function): New.
	* doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
	(TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_BOUND_TYPE): New.
	(TARGET_CHKP_BOUND_MODE): New.
	* doc/tm.texi: Regenerated.
	* langhooks.h (lang_hooks): Add chkp_supported field.
	* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
	(LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.

	Reverted:
	2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
	* config/i386/constraints.md (B): New.
	(Ti): New.
	(Tb): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
	* config/i386/i386-modes.def (BND32): New.
	(BND64): New.
	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.c (isa_opts): Add mmpx.
	(regclass_map): Add bound registers.
	(dbx_register_map): Likewise.
	(dbx64_register_map): Likewise.
	(svr4_dbx_register_map): Likewise.
	(PTA_MPX): New.
	(ix86_option_override_internal): Support MPX ISA.
	(ix86_conditional_register_usage): Support bound registers.
	(print_reg): Likewise.
	(ix86_code_end): Add MPX bnd prefix.
	(output_set_got): Likewise.
	(ix86_output_call_insn): Likewise.
	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
	(ix86_print_operand_punct_valid_p): Likewise.
	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
	UNSPEC_BNDMK_ADDR.
	(ix86_class_likely_spilled_p): Add bound regs support.
	(ix86_hard_regno_mode_ok): Likewise.
	(x86_order_regs_for_local_alloc): Likewise.
	(ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
	(FIXED_REGISTERS): Add bound registers.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_NREGS): Likewise.
	(TARGET_MPX): New.
	(VALID_BND_REG_MODE): New.
	(FIRST_BND_REG): New.
	(LAST_BND_REG): New.
	(reg_class): Add BND_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BND_REGNO_P): New.
	(ANY_BND_REG_P): New.
	(BNDmode): New.
	(HI_REGISTER_NAMES): Add bound registers.
	* config/i386/i386.md (UNSPEC_BNDMK): New.
	(UNSPEC_BNDMK_ADDR): New.
	(UNSPEC_BNDSTX): New.
	(UNSPEC_BNDLDX): New.
	(UNSPEC_BNDLDX_ADDR): New.
	(UNSPEC_BNDCL): New.
	(UNSPEC_BNDCU): New.
	(UNSPEC_BNDCN): New.
	(UNSPEC_MPX_FENCE): New.
	(BND0_REG): New.
	(BND1_REG): New.
	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_immediate): Likewise.
	(prefix_0f): Likewise.
	(memory): Likewise.
	(prefix_rep): Check for bnd prefix.
	(length_nobnd): New.
	(length): Use length_nobnd if specified.
	(BND): New.
	(bnd_ptr): New.
	(BNDCHECK): New.
	(bndcheck): New.
	(*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
	(*jcc_2): Likewise.
	(jump): Likewise.
	(simple_return_internal): Likewise.
	(simple_return_pop_internal): Likewise.
	(*indirect_jump): Add MPX bnd prefix.
	(*tablejump_1): Likewise.
	(simple_return_internal_long): Likewise.
	(simple_return_indirect_internal): Likewise.
	(<mode>_mk): New.
	(*<mode>_mk): New.
	(mov<mode>): New.
	(*mov<mode>_internal_mpx): New.
	(<mode>_<bndcheck>): New.
	(*<mode>_<bndcheck>): New.
	(<mode>_ldx): New.
	(*<mode>_ldx): New.
	(<mode>_stx): New.
	(*<mode>_stx): New.
	* config/i386/predicates.md (lea_address_operand): Rename to...
	(address_no_seg_operand): ... this.
	(address_mpx_no_base_operand): New.
	(address_mpx_no_index_operand): New.
	(bnd_mem_operator): New.
	* config/i386/i386.opt (mmpx): New.
	* doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
	* doc/rtl.texi Add documentation for BND32mode and BND64mode.

	Reverted:
	2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
	* mode-classes.def (MODE_POINTER_BOUNDS): New.
	* tree.def (POINTER_BOUNDS_TYPE): New.
	* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
	(POINTER_BOUNDS_MODE): New.
	(make_pointer_bounds_mode): New.
	* machmode.h (POINTER_BOUNDS_MODE_P): New.
	* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
	(layout_type): Support POINTER_BOUNDS_TYPE.
	* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
	* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
	(type_contains_placeholder_1): Likewise.
	* tree.h (POINTER_BOUNDS_TYPE_P): New.
	* varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
	* doc/rtl.texi (MODE_POINTER_BOUNDS): New.

From-SVN: r205522
2013-11-29 12:12:39 +00:00
Richard Biener b8815bd32f re PR middle-end/59338 (error: position plus size exceeds size of referenced object in BIT_FIELD_REF)
2013-11-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/59338
	* tree-cfg.c (verify_expr): Restrict bounds verification of
	BIT_FIELD_REF arguments to non-aggregate typed base objects.

	* gcc.dg/torture/pr59338.c: New testcase.

From-SVN: r205521
2013-11-29 12:09:12 +00:00
Richard Biener b54fc5b7ee re PR tree-optimization/59334 (r205486 caused many failures)
2013-11-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59334
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
	in previous commit.

From-SVN: r205515
2013-11-29 10:47:52 +00:00
Jakub Jelinek e06f9964af re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c)
PR lto/59326
	* omp-low.c (simd_clone_create): Return NULL if for definition
	!cgraph_function_with_gimple_body_p (old_node).  Call cgraph_get_body
	before calling cgraph_function_versioning.
	(expand_simd_clones): Look for "omp declare simd" attribute first.
	Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
	Punt if node->global.inlined_to.
	(pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
	Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
	* lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
lto/
	* lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
testsuite/
	* gcc.dg/vect/vect-simd-clone-12.c: New test.
	* gcc.dg/vect/vect-simd-clone-12a.c: New test.
	* gcc.dg/vect/vect-simd-clone-10a.c: Remove extern keywords.

Co-Authored-By: Richard Biener <rguenther@suse.de>

From-SVN: r205514
2013-11-29 11:41:12 +01:00
Jakub Jelinek c193f58b67 re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c)
PR lto/59326
	* tree-core.h (enum omp_clause_schedule_kind): Add
	OMP_CLAUSE_SCHEDULE_LAST.
	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
	(enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
	(enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
	* lto-streamer-out.c (lto_is_streamable): Allow streaming
	OMP_CLAUSE.
	(DFS_write_tree_body): Handle OMP_CLAUSE.
	* tree-streamer-out.c (pack_ts_omp_clause_value_fields): New
	function.
	(streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
	(write_ts_omp_clause_tree_pointers): New function.
	(streamer_write_tree_body): Call it for OMP_CLAUSE.
	(streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
	* tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New
	function.
	(unpack_value_fields): Call it for OMP_CLAUSE.
	(streamer_alloc_tree): Handle OMP_CLAUSE.
	(lto_input_ts_omp_clause_tree_pointers): New function.
	(streamer_read_tree_body): Call it for OMP_CLAUSE.
lto/
	* lto.c (mentions_vars_p_omp_clause): New function.
	(mentions_vars_p): Call it for OMP_CLAUSE.  Remove break;
	after return stmts.

From-SVN: r205512
2013-11-29 11:36:10 +01:00
Jakub Jelinek fad7652e6e re PR c/59280 (ICE with attribute((constructor(invalid))))
PR c/59280
	* c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
	goto invalid.  If it is error_mark_node, don't issue further
	diagnostics.
testsuite/
	* c-c++-common/pr59280.c: New test.

From-SVN: r205510
2013-11-29 08:42:23 +01:00
Zhenqiang Chen b82e0d0d70 lp1243022.c: Skip target arm-neon.
testsuite/ChangeLog:

2013-11-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc.target/arm/lp1243022.c: Skip target arm-neon.

From-SVN: r205509
2013-11-29 05:39:08 +00:00
Joseph Myers 6763b9f736 re PR c/57574 (-std=c99 inline function incorrectly has external linkage with prior static declaration)
PR c/57574
c:
	* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
	an inline function following a static declaration.

testsuite:
	* gcc.dg/inline-35.c: New test.

From-SVN: r205506
2013-11-29 01:30:42 +00:00
Joseph Myers b76f5d160b implement-c.texi: Document C11 implementation-defined behavior.
* doc/implement-c.texi: Document C11 implementation-defined
	behavior.  Refer to -ffp-contract=fast for contraction behavior.
	* doc/invoke.texi (-std=c99, std=c11): Update description of
	completeness.
	(-std=gnu99): Don't mention as future default.
	(-std=gnu11): Mention as intended future default.
	* doc/standards.texi: Update descriptions of C99 and C11 support.
	Limit statement about C99 facilities for freestanding
	implementations to some platforms only.

From-SVN: r205505
2013-11-29 00:39:50 +00:00
GCC Administrator a6797ed61f Daily bump.
From-SVN: r205504
2013-11-29 00:17:27 +00:00
Jakub Jelinek e3f505d873 re PR c++/59297 (ICE: openmp atomic with indirect LHS)
PR c++/59297
	* semantics.c (finish_omp_atomic): Call finish_expr_stmt
	rather than add_stmt.

	* g++.dg/gomp/pr59297.C: New test.

From-SVN: r205500
2013-11-28 23:53:50 +01:00
Jakub Jelinek 3dc87cc0d0 re PR middle-end/59327 (warning in expand_used_vars)
PR middle-end/59327
	* cfgexpand.c (expand_used_vars): Avoid warning on 32-bit
	HWI hosts.

From-SVN: r205499
2013-11-28 23:52:40 +01:00
Vladimir Makarov 8d49e7ef0a re PR target/57293 (not needed frame pointers on IA-32 (performance regression?))
2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57293
	* ira.h (ira_setup_eliminable_regset): Remove parameter.
	* ira.c (ira_setup_eliminable_regset): Ditto.  Add
	SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
	Don't call lra_init_elimination.
	(ira): Call ira_setup_eliminable_regset without arguments.
	* loop-invariant.c (calculate_loop_reg_pressure): Remove argument
	from ira_setup_eliminable_regset call.
	* gcse.c (calculate_bb_reg_pressure): Ditto.
	* haifa-sched.c (sched_init): Ditto.
	* lra.h (lra_init_elimination): Remove the prototype.
	* lra-int.h (lra_insn_recog_data): New member sp_offset.  Move
	used_insn_alternative upper.
	(lra_eliminate_regs_1): Add one more parameter.
	(lra-eliminate): Ditto.
	* lra.c (lra_invalidate_insn_data): Set sp_offset.
	(setup_sp_offset): New.
	(lra_process_new_insns): Call setup_sp_offset.
	(lra): Add argument to lra_eliminate calls.
	* lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
	(get_equiv_with_elimination): New.
	(process_addr_reg): Call get_equiv_with_elimination instead of
	get_equiv_substitution.
	(equiv_address_substitution): Ditto.
	(loc_equivalence_change_p): Ditto.
	(loc_equivalence_callback, lra_constraints): Ditto.
	(curr_insn_transform): Ditto.  Print the sp offset
	(process_alt_operands): Prevent stack pointer reloads.
	(lra_constraints): Remove one argument from lra_eliminate call.
	Move it up.  Mark used hard regs bfore it.  Use
	get_equiv_with_elimination instead of get_equiv_substitution.
	* lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
	assert for param values combination.  Use sp offset.  Add argument
	to lra_eliminate_regs_1 calls.
	(lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
	(curr_sp_change): New static var.
	(mark_not_eliminable): Add parameter.  Update curr_sp_change.
	Don't prevent elimination to sp if we can calculate its change.
	Pass the argument to mark_not_eliminable calls.
	(eliminate_regs_in_insn): Add a parameter.  Use sp offset.  Add
	argument to lra_eliminate_regs_1 call.
	(update_reg_eliminate): Move calculation of hard regs for spill
	lower.  Switch off lra_in_progress temporarily to generate regs
	involved into elimination.
	(lra_init_elimination): Rename to init_elimination.  Make it
	static.  Set up insn sp offset, check the offsets at the end of
	BBs.
	(process_insn_for_elimination): Add parameter.  Pass its value to
	eliminate_regs_in_insn.
	(lra_eliminate): : Add parameter.  Pass its value to
	process_insn_for_elimination.  Add assert for param values
	combination.  Call init_elimination.  Don't update offsets in
	equivalence substitutions.
	* lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
	for created stack slot.
	(remove_pseudos): Call lra_eliminate_regs_1 before changing memory
	onto stack slot.

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

	PR target/57293
	* gcc.target/i386/pr57293.c: New.

From-SVN: r205498
2013-11-28 21:45:21 +00:00
Kyrylo Tkachov fca0efebc4 iterators.md (vrint_conds): New int attribute.
[gcc/]
2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/iterators.md (vrint_conds): New int attribute.
	* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
	(smax<mode>3): Likewise.
	(smin<mode>3): Likewise.

[gcc/testsuite/]
2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* gcc.target/arm/vrinta-ce.c: New testcase.

From-SVN: r205492
2013-11-28 16:36:07 +00:00
Ian Lance Taylor b8ddd61b74 dwarf.c (find_address_ranges): New static function, broken out of build_address_map.
* dwarf.c (find_address_ranges): New static function, broken out
	of build_address_map.
	(build_address_map): Call it.
	* btest.c (check): Check for missing filename or function, rather
	than crashing.
	(f3): Check that enough frames were returned.

From-SVN: r205490
2013-11-28 16:19:57 +00:00
Richard Sandiford f5c8b24c73 tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
gcc/
	* tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
	* tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
	* tree-ssanames.h (set_range_info): Add range_type argument.
	(duplicate_ssa_name_range_info): Likewise.
	* tree-ssanames.c (set_range_info): Take the range type as argument
	and store it in SSA_NAME_ANTI_RANGE_P.
	(duplicate_ssa_name_range_info): Likewise.
	(get_range_info): Use SSA_NAME_ANTI_RANGE_P.
	(set_nonzero_bits): Update call to set_range_info.
	(duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
	* tree-ssa-copy.c (fini_copy_prop): Likewise.
	* tree-vrp.c (remove_range_assertions): Update call to set_range_info.
	(vrp_finalize): Likewise, passing anti-ranges directly.

From-SVN: r205489
2013-11-28 16:15:52 +00:00
Uros Bizjak 3c716922ad sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.

From-SVN: r205488
2013-11-28 16:31:23 +01:00
Richard Biener 4d85879997 re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026)
2013-11-28  Richard Biener  <rguenther@suse.de>

	PR lto/59323
	* gcc.dg/lto/pr59323-2_0.c: New testcase.

From-SVN: r205487
2013-11-28 15:22:55 +00:00
Richard Biener c54e20229d re PR middle-end/59330 (Crash in is_gimple_reg_type)
2013-11-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59330
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
	and fix delayed marking of free calls not necessary.

	* gcc.dg/torture/pr59330.c: New testcase.

From-SVN: r205486
2013-11-28 14:52:44 +00:00
Andrew MacLeod 0c6b087cc1 tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to is_gimple_reg_type.
2013-11-28  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
	is_gimple_reg_type.
	* ipa-prop.c (determine_known_aggregate_parts): Likewise.

From-SVN: r205485
2013-11-28 14:11:12 +00:00
Terry Guo 2f3be69812 arm.c (v7m_extra_costs): New table.
2013-11-28  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (v7m_extra_costs): New table.
	(arm_v7m_tune): Use it.

From-SVN: r205484
2013-11-28 12:31:51 +00:00
Rainer Orth ff082cab81 Add -lrt on Solaris
gcc/cp:
	* g++spec.c (TIMELIB): Define.
	(WITHLIBC, SKIPOPT): Adjust values.
	(lang_specific_driver): Add TIME_LIBRARY if not passed explicitly.

	gcc:
	* config/sol2.h (TIME_LIBRARY): Define.

From-SVN: r205483
2013-11-28 12:27:58 +00:00
Jakub Jelinek 049558ed48 re PR sanitizer/59106 (Failure to link against static libasan)
2013-11-28  Jakub Jelinek  <jakub@redhat.com>
	    Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/59106
	* ubsan/Makefile.am (AM_CXXFLAGS): Disable -frtti for files that
	don't need it.
	* ubsan/Makefile.in: Regenerated.

Co-Authored-By: Yury Gribov <y.gribov@samsung.com>

From-SVN: r205482
2013-11-28 12:20:23 +00:00
Richard Biener 53a5717ecd re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026)
2013-11-28  Richard Biener  <rguenther@suse.de>

	PR lto/59323
	* lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
	CONST_DECLs in function context are not indexable.

	* gcc.dg/lto/pr59323_0.c: New testcase.

From-SVN: r205481
2013-11-28 12:09:10 +00:00
Matthew Leach cceeb9a978 linux-unwind.h (aarch64_fallback_frame_state): Check for correct opcodes on BE.
2013-11-26  Matthew Leach  <matthew.leach@arm.com>

	* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state):	Check
	for correct opcodes on BE.

From-SVN: r205479
2013-11-28 10:59:38 +00:00
Chung-Ju Wu 506cb36189 nds32.c (nds32_rtx_costs): Adjust MULT cost if it is not optimized for size.
* config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
	not optimized for size.

From-SVN: r205478
2013-11-28 09:03:25 +00:00
Jakub Jelinek e361382f65 cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb fields.
* cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
	fields.
	(expand_stack_vars): For -fsanitize=address, use (and set initially)
	data->asan_base as base for vars and update asan_alignb.
	(expand_used_vars): Initialize data.asan_base and data.asan_alignb.
	Pass them to asan_emit_stack_protection.
	* asan.c (asan_detect_stack_use_after_return): New variable.
	(asan_emit_stack_protection): Add pbase and alignb arguments.
	Implement use after return sanitization.
	* asan.h (asan_emit_stack_protection): Adjust prototype.
	(ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.

From-SVN: r205476
2013-11-28 09:18:59 +01:00
Sergey Ostanevich 8b5e12023b common.opt: Introduced a new option -fsimd-cost-model.
gcc/
	* common.opt: Introduced a new option -fsimd-cost-model.
	* doc/invoke.texi: Introduced a new openmp-simd warning and
	a new -fsimd-cost-model option.
	* tree-vectorizer.h (unlimited_cost_model): Interface updated
	to rely on the particular loop info.
	* tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
	(vect_peeling_hash_choose_best_peeling): Ditto.
	(vect_enhance_data_refs_alignment): Ditto.
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
	plus added openmp-simd warining.

gcc/c-family/
	* c.opt (Wopenmp-simd): New.

gcc/fortran/
	* lang.opt (Wopenmp-simd): New.

From-SVN: r205475
2013-11-28 07:54:58 +00:00
GCC Administrator d0da87f378 Daily bump.
From-SVN: r205471
2013-11-28 00:16:30 +00:00
H.J. Lu 362805fc2f Also handle REG_XXX notes in spill_pseudos
PR rtl-optimization/59311
	* dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
	* lra-spills.c (spill_pseudos): Handle REG_XXX notes.

From-SVN: r205468
2013-11-27 15:54:26 -08:00
Jakub Jelinek e7bd1de1d4 re PR c/59310 (FAIL: gcc.dg/gomp/openmp-simd-1.c (test for excess errors))
PR c/59310
	* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
	to p_name before calling c_parser_omp_teams instead of after.
	(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
	argument.  Remove unused p_name variable.

	* parser.c (cp_parser_omp_target): Call keep_next_level only
	if flag_openmp.

From-SVN: r205467
2013-11-28 00:42:48 +01:00
Jakub Jelinek e1b6062615 re PR middle-end/57393 (error: definition in block 4 follows the use / internal compiler error: verify_ssa failed)
PR middle-end/57393
	PR tree-optimization/58018
	PR tree-optimization/58131
	* gcc.dg/torture/pr57393-1.c: New test.
	* gcc.dg/torture/pr57393-2.c: New test.
	* gcc.dg/torture/pr57393-3.c: New test.
	* gcc.dg/torture/pr58018.c: New test.
	* gcc.dg/torture/pr58131.c: New test.
	* gfortran.dg/pr57393-1.f90: New test.
	* gfortran.dg/pr57393-2.f90: New test.

From-SVN: r205466
2013-11-28 00:41:56 +01:00
Bill Schmidt 64ae6dd6ba nan_7.f90: Disable for little endian PowerPC.
2013-11-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.

From-SVN: r205464
2013-11-27 23:36:22 +00:00
Uros Bizjak a3458d2231 op-4.h: Update from glibc.
* soft-fp/op-4.h: Update from glibc.

From-SVN: r205462
2013-11-27 22:57:52 +01:00
Eric Botcazou 35af99b462 var-tracking.c (track_expr_p): Do not track declarations for parts of tracked parameters.
* var-tracking.c (track_expr_p): Do not track declarations for parts
	of tracked parameters.
	(add_stores): Do not track values for tracked parameters passed in
	multiple locations.
	(vt_get_decl_and_offset): Handle PARALLEL.
	(vt_add_function_parameter): Handle parameters with incoming PARALLEL.

From-SVN: r205461
2013-11-27 21:16:21 +00:00
Jeff Law fa788bb403 tree-ssa-threadupdate.c (thread_through_all_blocks): Do not clobber the loop structure thread_block was unsuccessful.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
	clobber the loop structure thread_block was unsuccessful.  If
	thread_block was unsuccessful, cleanup appropriately.

From-SVN: r205459
2013-11-27 11:47:43 -07:00
Uros Bizjak df7a98a6c1 re PR target/56788 (_mm_frcz_sd and _mm_frcz_ss ignore their second argument)
PR target/56788
	* gcc.target/i386/xop-frczX.c: New test.


Co-Authored-By: Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>

From-SVN: r205458
2013-11-27 19:07:22 +01:00
Jakub Jelinek 30f5fc6a42 re PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu)
PR tree-optimization/59014
	* gcc.c-torture/execute/pr59014-2.c: New test.

From-SVN: r205454
2013-11-27 18:03:27 +01:00
Chen Liqin e18a9b0997 * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
From-SVN: r205453
2013-11-27 09:49:21 -07:00
Bernd Edlinger b3ecff82d7 2013-11-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
reverted r205398 on request: Remove parameter keep_aligning from
	get_inner_reference.

From-SVN: r205452
2013-11-27 16:33:01 +00:00
Vladimir Makarov 36db5f3000 re PR rtl-optimization/57410 (ICE: in emit_spill_move, at lra-constraints.c:863 with -fpeel-loops and uninitialised variable)
2013-11-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/57410
	* gcc.target/i386/pr57410.c: New.

From-SVN: r205451
2013-11-27 16:30:48 +00:00
Rainer Orth 0fe530b6f0 Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9
* testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
	Use dg-require-cmath instead.

From-SVN: r205450
2013-11-27 16:15:35 +00:00
Paolo Carlini 6f831b6df7 re PR c++/58647 (ICE with function pointer)
/cp
2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58647
	* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
	Handle function COMPONENT_REFs.

/testsuite
2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58647
	* g++.dg/parse/crash66.C: New.

From-SVN: r205449
2013-11-27 15:55:18 +00:00
Kenneth Zadeck 2e25208425 c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* gcc.dg/c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
	* gcc.dg/c99-const-expr-8.c: Look for overflow on INT_MIN % -1.

2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* fold-const.c
	(int_const_binop_1): Make INT_MIN % -1 return 0 with the overflow
	bit set.

From-SVN: r205448
2013-11-27 15:42:02 +00:00
Richard Biener e9287a41df re PR middle-end/58723 (ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction)
2013-11-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/58723
	* cgraphbuild.c (build_cgraph_edges): Do not build edges
	for internal calls.
	(rebuild_cgraph_edges): Likewise.
	* ipa-inline-analysis.c (estimate_function_body_sizes):
	Skip internal calls.
	* tree-inline.c (estimate_num_insns): Estimate size of internal
	calls as 0.
	(gimple_expand_calls_inline): Do not try inline-expanding
	internal calls.
	* lto-streamer-in.c (input_cfg): Stream loop safelen,
	force_vect and simduid.
	(input_struct_function_base): Stream has_force_vect_loops
	and has_simduid_loops.
	(input_function): Adjust.
	* lto-streamer-out.c (output_cfg): Stream loop safelen,
	force_vect and simduid.
	(output_struct_function_base): Stream has_force_vect_loops
	and has_simduid_loops.

From-SVN: r205447
2013-11-27 15:18:23 +00:00