Ilya Tocar [Wed, 5 Nov 2014 15:55:44 +0000 (15:55 +0000)]
Fix dg.torture tests with avx512
gcc/
* config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
for 512-bit wide modes.
(expand_vec_perm_1): Use correct versions of patterns.
* config/i386/sse.md (avx512f_vec_dup_<mode>_1): New.
(vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
From-SVN: r217138
Christophe Lyon [Wed, 5 Nov 2014 15:22:28 +0000 (15:22 +0000)]
advsimd-intrinsics.exp: Skip tests if target does not support Neon.
2014-11-05 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Skip tests if target does not support Neon.
From-SVN: r217134
Christophe Lyon [Wed, 5 Nov 2014 15:19:19 +0000 (15:19 +0000)]
[AArch64,ARM] support bswap tests on aarch64_be.
[AArch64,ARM] support bswap tests on aarch64_be. Skip them on ARM
targets older than v6.
2014-11-05 Christophe Lyon <christophe.lyon@linaro.org>
* lib/target-supports.exp (check_effective_target_bswap): Update
conditions for AArch64 and ARM targets.
From-SVN: r217133
David Edelsohn [Wed, 5 Nov 2014 14:32:59 +0000 (14:32 +0000)]
pr59166.c: XFAIL on AIX.
* gcc.dg/torture/pr59166.c: XFAIL on AIX.
* g++.dg/ext/visitibility/anon1.C: XFAIL on AIX.
* g++.dg/opt/pr60002.C: XFAIL on AIX.
* g++.dg/torture/pr63419.C: Ignore non-standard ABI warning.
* g++.dg/ipa/ipa-icf-5.C: Require visibility support.
From-SVN: r217129
Ilya Enkovich [Wed, 5 Nov 2014 12:42:03 +0000 (12:42 +0000)]
ipa-chkp.c: New.
gcc/
2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
* ipa-chkp.c: New.
* ipa-chkp.h: New.
* tree-chkp.c: New.
* tree-chkp.h: New.
* tree-chkp-opt.c: New.
* rtl-chkp.c: New.
* rtl-chkp.h: New.
* Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
tree-chkp-opt.o.
(GTFILES): Add tree-chkp.c.
* 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-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
(type_contains_placeholder_1): Likewise.
(build_common_tree_nodes): Initialize
pointer_bounds_type_node.
* tree.h (POINTER_BOUNDS_TYPE_P): New.
(pointer_bounds_type_node): New.
(POINTER_BOUNDS_P): New.
(BOUNDED_TYPE_P): New.
(BOUNDED_P): New.
(CALL_WITH_BOUNDS_P): New.
* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
(gimple_call_with_bounds_p): New.
(gimple_call_set_with_bounds): New.
(gimple_return_retbnd): New.
(gimple_return_set_retbnd): New
* gimple.c (gimple_build_return): Increase number of ops
for return statement.
(gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
flag.
* gimple-pretty-print.c (dump_gimple_return): Print second op.
* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
* gimplify.c (gimplify_init_constructor): Avoid infinite
loop during gimplification of bounds initializer.
* calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
(special_function_p): Use original decl name when analyzing
instrumentation clone.
(arg_data): Add fields special_slot, pointer_arg and
pointer_offset.
(store_bounds): New.
(emit_call_1): Propagate instrumentation flag for CALL.
(initialize_argument_information): Compute pointer_arg,
pointer_offset and special_slot for pointer bounds arguments.
(finalize_must_preallocate): Preallocate when storing bounds
in bounds table.
(compute_argument_addresses): Skip pointer bounds.
(expand_call): Store bounds into tables separately. Return
result joined with resulting bounds.
* cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
(expand_call_stmt): Propagate bounds flag for CALL_EXPR.
(expand_return): Add returned bounds arg. Handle returned bounds.
(expand_gimple_stmt_1): Adjust to new expand_return signature.
(gimple_expand_cfg): Reset rtx bounds map.
* expr.c: Include tree-chkp.h, rtl-chkp.h.
(expand_assignment): Handle returned bounds.
(store_expr_with_bounds): New. Replaces store_expr with new bounds
target argument. Handle bounds returned by calls.
(store_expr): Now wraps store_expr_with_bounds.
* expr.h (store_expr_with_bounds): New.
* function.c: Include tree-chkp.h, rtl-chkp.h.
(bounds_parm_data): New.
(use_register_for_decl): Do not registerize decls used for bounds
stores and loads.
(assign_parms_augmented_arg_list): Add bounds of the result
structure pointer as the second argument.
(assign_parm_find_entry_rtl): Mark bounds are never passed on
the stack.
(assign_parm_is_stack_parm): Likewise.
(assign_parm_load_bounds): New.
(assign_bounds): New.
(assign_parms): Load bounds and determine a location for
returned bounds.
(diddle_return_value_1): New.
(diddle_return_value): Handle returned bounds.
* function.h (rtl_data): Add field for returned bounds.
* varasm.c: Include tree-chkp.h.
(output_constant): Support POINTER_BOUNDS_TYPE.
(output_constant_pool_2): Support MODE_POINTER_BOUNDS.
(ultimate_transparent_alias_target): Move up.
(make_decl_rtl): For instrumented function use
name of the original decl.
(assemble_start_function): Mark function as global
in case it is instrumentation clone of the global
function.
(do_assemble_alias): Follow transparent alias chain
for identifier. Check if original alias is public.
(maybe_assemble_visibility): Use visibility of the
original function for instrumented version.
(default_unique_section): Likewise.
* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
(init_emit_once): Build pointer bounds zero constants.
* explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
* target.def (builtin_chkp_function): New.
(chkp_bound_type): New.
(chkp_bound_mode): New.
(chkp_make_bounds_constant): New.
(chkp_initialize_bounds): New.
(load_bounds_for_arg): New.
(store_bounds_for_arg): New.
(load_returned_bounds): New.
(store_returned_bounds): New.
(chkp_function_value_bounds): New.
(setup_incoming_vararg_bounds): New.
(function_arg): Update hook description with new possible return
value CONST_INT.
* targhooks.h (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode): New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* targhooks.c (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode); New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* builtin-types.def (BT_BND): New.
(BT_FN_PTR_CONST_PTR): New.
(BT_FN_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR): New.
(BT_FN_CONST_PTR_BND): 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_VOID_PTR_BND): New.
(BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
* chkp-builtins.def: New.
* builtins.def: include chkp-builtins.def.
(DEF_CHKP_BUILTIN): New.
* builtins.c: Include tree-chkp.h and rtl-chkp.h.
(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_NARROW,
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
(std_expand_builtin_va_start): Init bounds for va_list.
* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
__CHKP__ macro when Pointer Bounds Checker is on.
* params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
* passes.def (pass_ipa_chkp_versioning): New.
(pass_early_local_passes): Renamed to pass_build_ssa_passes.
(pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
(pass_chkp_instrumentation_passes): New.
(pass_ipa_chkp_produce_thunks): New.
(pass_local_optimization_passes): New.
(pass_chkp_opt): New.
* tree-pass.h (make_pass_ipa_chkp_versioning): New.
(make_pass_ipa_chkp_produce_thunks): New.
(make_pass_chkp): New.
(make_pass_chkp_opt): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* passes.c (pass_manager::execute_early_local_passes): Execute
early passes in three steps.
(execute_all_early_local_passes): Renamed to ...
(execute_build_ssa_passes): This.
(pass_data_early_local_passes): Renamed to ...
(pass_data_build_ssa_passes): This.
(pass_early_local_passes): Renamed to ...
(pass_build_ssa_passes): This.
(pass_data_chkp_instrumentation_passes): New.
(pass_chkp_instrumentation_passes): New.
(pass_data_local_optimization_passes): New.
(pass_local_optimization_passes): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* c-family/c.opt (fcheck-pointer-bounds): New.
(fchkp-check-incomplete-type): New.
(fchkp-zero-input-bounds-for-main): New.
(fchkp-first-field-has-own-bounds): New.
(fchkp-narrow-bounds): New.
(fchkp-narrow-to-innermost-array): New.
(fchkp-optimize): New.
(fchkp-use-fast-string-functions): New.
(fchkp-use-nochk-string-functions): New.
(fchkp-use-static-bounds): New.
(fchkp-use-static-const-bounds): New.
(fchkp-treat-zero-dynamic-size-as-infinite): New.
(fchkp-check-read): New.
(fchkp-check-write): New.
(fchkp-store-bounds): New.
(fchkp-instrument-calls): New.
(fchkp-instrument-marked-only): New.
(Wchkp): New.
* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
(handle_bnd_legacy): New.
(handle_bnd_instrument): New.
(c_common_attribute_table): Add bnd_variable_size, bnd_legacy
and bnd_instrument. Fix documentation.
(c_common_format_attribute_table): Likewsie.
* toplev.c: include tree-chkp.h.
(process_options): Check Pointer Bounds Checker is supported.
(compile_file): Add chkp_finish_file call.
* ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
to handle instrumentation clones properly.
(propagate_constants_accross_call): Do not propagate
through instrumentation thunks.
* ipa-pure-const.c (propagate_pure_const): Support
IPA_REF_CHKP.
* ipa-inline.c (early_inliner): Check edge has summary allocated.
* ipa-split.c: Include tree-chkp.h.
(find_retbnd): New.
(split_part_set_ssa_name_p): New.
(consider_split): Do not split retbnd and retval
producers.
(insert_bndret_call_after): new.
(split_function): Propagate Pointer Bounds Checker
instrumentation marks and handle returned bounds.
* tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
into bit field and add with_bounds field.
* tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
with_bounds field for instrumented calls.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
CALL_WITH_BOUNDS_P flag for calls.
* tree-ssa-ccp.c: Include tree-chkp.h.
(insert_clobber_before_stack_restore): Handle
BUILT_IN_CHKP_BNDRET calls.
* tree-ssa-dce.c: Include tree-chkp.h.
(propagate_necessity): For free call fed by alloc check
bounds are also provided by the same alloc.
(eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
used by free calls.
* tree-inline.c: Include tree-chkp.h.
(declare_return_variable): Add arg holding
returned bounds slot. Create and initialize returned bounds var.
(remap_gimple_stmt): Handle returned bounds.
Return sequence of statements instead of a single statement.
(insert_init_stmt): Add declaration.
(remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
(copy_bb): Adjust to changed return type of remap_gimple_stmt.
Properly handle bounds in va_arg_pack and va_arg_pack_len.
(expand_call_inline): Handle returned bounds. Add bounds copy
for generated mem to mem assignments.
* tree-inline.h (copy_body_data): Add fields retbnd and
assign_stmts.
* value-prof.c: Include tree-chkp.h.
(gimple_ic): Support returned bounds.
* ipa.c (cgraph_build_static_cdtor_1): Support contructors
with "chkp ctor" and "bnd_legacy" attributes.
(symtab_remove_unreachable_nodes): Keep initial values for
pointer bounds to be used for checks eliminations.
(process_references): Handle IPA_REF_CHKP.
(walk_polymorphic_call_targets): Likewise.
* ipa-visibility.c (cgraph_externally_visible_p): Mark
instrumented 'main' as externally visible.
(function_and_variable_visibility): Filter instrumentation
thunks.
* cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
field.
(cgraph_node): Add instrumented_version, orig_decl and
instrumentation_clone fields.
(symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
(varpool_node): Add need_bounds_init field.
(cgraph_local_p): New.
* cgraph.c: Include tree-chkp.h.
(cgraph_node::remove): Fix instrumented_version
of the referenced node if any.
(cgraph_node::dump): Dump instrumentation_clone and
instrumented_version fields.
(cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
references and instrumentation thunks.
(cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
all not instrumented instrumentation clones alive.
(cgraph_redirect_edge_call_stmt_to_callee): Support
returned bounds.
* cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
reference.
(cgraph_rebuild_references): Likewise.
* cgraphunit.c: Include tree-chkp.h.
(assemble_thunks_and_aliases): Skip thunks calling instrumneted
function version.
(varpool_finalize_decl): Register statically initialized decls
in Pointer Bounds Checker.
(walk_polymorphic_call_targets): Do not mark generated call to
__builtin_unreachable as with_bounds.
(output_weakrefs): If there are both instrumented and original
versions, output only one of them.
(cgraph_node::expand_thunk): Set with_bounds flag
for created call statement.
* ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
(ipa_ref): increase size of use field.
* symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
* varpool.c (dump_varpool_node): Dump need_bounds_init field.
(ctor_for_folding): Do not fold constant bounds vars.
* lto-streamer.h (LTO_minor_version): Change minor version from
0 to 1.
* lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
pointer bounds.
(lto_output_node): Output instrumentation_clone,
thunk.add_pointer_bounds_args and orig_decl field.
(lto_output_ref): Adjust to new ipa_ref::use field size.
(input_overwrite_node): Read instrumentation_clone field.
(input_node): Read thunk.add_pointer_bounds_args and orig_decl
fields.
(input_ref): Adjust to new ipa_ref::use field size.
(input_cgraph_1): Compute instrumented_version fields and restore
IDENTIFIER_TRANSPARENT_ALIAS chains.
(lto_output_varpool_node): Output
need_bounds_init value.
(input_varpool_node): Read need_bounds_init value.
* lto-partition.c (add_symbol_to_partition_1): Keep original
and instrumented versions together.
(privatize_symbol_name): Restore transparent alias chain if required.
(add_references_to_partition): Add references to pointer bounds vars.
* 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.
(is_base_type): Support POINTER_BOUNDS_TYPE.
(gen_formal_types_die): Skip pointer bounds.
(gen_decl_die): Likewise.
* var-tracking.c (vt_add_function_parameters): Skip
bounds parameters.
* ipa-icf.c (sem_function::merge): Do not merge when instrumentation
thunk still exists.
(sem_variable::merge): Reset need_bounds_init flag.
* doc/extend.texi: Document Pointer Bounds Checker built-in functions
and attributes.
* doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_BOUND_TYPE): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
* doc/tm.texi: Regenerated.
* doc/rtl.texi (MODE_POINTER_BOUNDS): New.
(BND32mode): New.
(BND64mode): New.
* doc/invoke.texi (-mmpx): New.
(-mno-mpx): New.
(chkp-max-ctor-size): New.
* config/i386/constraints.md (w): 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: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
(regclass_map): Add bound registers.
(dbx_register_map): Likewise.
(dbx64_register_map): Likewise.
(svr4_dbx_register_map): Likewise.
(isa_opts): Add -mmpx.
(PTA_MPX): New.
(ix86_option_override_internal): Support MPX ISA.
(ix86_conditional_register_usage): Support bound registers.
(ix86_code_end): Add MPX bnd prefix.
(output_set_got): Likewise.
(print_reg): Avoid prefixes for bound registers.
(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_BNDLDX_ADDR.
(ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
(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.
(ix86_builtins): Add
IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
IX86_BUILTIN_BNDUPPER.
(builtin_isa): Add leaf_p and nothrow_p fields.
(def_builtin): Initialize leaf_p and nothrow_p.
(ix86_add_new_builtins): Handle leaf_p and nothrow_p
flags.
(bdesc_mpx): New.
(bdesc_mpx_const): New.
(ix86_init_mpx_builtins): New.
(ix86_init_builtins): Call ix86_init_mpx_builtins.
(ix86_emit_cmove): New.
(ix86_emit_move_max): New.
(ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
(ix86_function_value_bounds): New.
(ix86_builtin_mpx_function): New.
(ix86_get_arg_address_for_bt): New.
(ix86_load_bounds): New.
(ix86_store_bounds): New.
(ix86_load_returned_bounds): New.
(ix86_store_returned_bounds): New.
(ix86_mpx_bound_mode): New.
(ix86_make_bounds_constant): New.
(ix86_initialize_bounds):
(TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
(ix86_option_override_internal): Do not
support x32 with MPX.
(init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
and force_bnd_pass.
(function_arg_advance_32): Return number of used integer
registers.
(function_arg_advance_64): Likewise.
(function_arg_advance_ms_64): Likewise.
(ix86_function_arg_advance): Handle pointer bounds.
(ix86_function_arg): Likewise.
(ix86_function_value_regno_p): Mark fisrt bounds registers as
possible function value.
(ix86_function_value_1): Handle pointer bounds type/mode
(ix86_return_in_memory): Likewise.
(ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
(ix86_expand_call): Generate returned bounds.
(ix86_setup_incoming_vararg_bounds): New.
(ix86_va_start): Initialize bounds for pointers in va_list.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
* config/i386/i386.h (TARGET_MPX): New.
(TARGET_MPX_P): New.
(FIRST_PSEUDO_REGISTER): Fix to new value.
(FIXED_REGISTERS): Add bound registers.
(CALL_USED_REGISTERS): Likewise.
(REG_ALLOC_ORDER): Likewise.
(HARD_REGNO_NREGS): Likewise.
(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.
(ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
stdarg fields.
* 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.
(UNSPEC_SIZEOF): New.
(BND0_REG): New.
(BND1_REG): New.
(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(prefix_rep): Check for bnd prefix.
(prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_nobnd): New.
(length): Use length_nobnd when specified.
(memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(BND): New.
(bnd_ptr): New.
(BNDCHECK): New.
(bndcheck): New.
(*jcc_1): Add MPX bnd prefix.
(*jcc_2): Likewise.
(jump): Likewise.
(*indirect_jump): Likewise.
(*tablejump_1): Likewise.
(simple_return_internal): Likewise.
(simple_return_internal_long): Likewise.
(simple_return_pop_internal): 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.
move_size_reloc_<mode>): New.
* config/i386/predicates.md (address_mpx_no_base_operand): New.
(address_mpx_no_index_operand): New.
(bnd_mem_operator): New.
(symbol_operand): New.
(x86_64_immediate_size_operand): New.
* config/i386/i386.opt (mmpx): New.
* config/i386/i386-builtin-types.def (BND): New.
(ULONG): New.
(BND_FTYPE_PCVOID_ULONG): New.
(VOID_FTYPE_BND_PCVOID): New.
(VOID_FTYPE_PCVOID_PCVOID_BND): New.
(BND_FTYPE_PCVOID_PCVOID): New.
(BND_FTYPE_PCVOID): New.
(BND_FTYPE_BND_BND): New.
(PVOID_FTYPE_PVOID_PVOID_ULONG): New.
(PVOID_FTYPE_PCVOID_BND_ULONG): New.
(ULONG_FTYPE_VOID): New.
(PVOID_FTYPE_BND): New.
gcc/testsuite/
2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
* gcc.target/i386/chkp-builtins-1.c: New.
* gcc.target/i386/chkp-builtins-2.c: New.
* gcc.target/i386/chkp-builtins-3.c: New.
* gcc.target/i386/chkp-builtins-4.c: New.
* gcc.target/i386/chkp-remove-bndint-1.c: New.
* gcc.target/i386/chkp-remove-bndint-2.c: New.
* gcc.target/i386/chkp-const-check-1.c: New.
* gcc.target/i386/chkp-const-check-2.c: New.
* gcc.target/i386/chkp-lifetime-1.c: New.
* gcc.dg/pr37858.c: Replace early_local_cleanups pass name
with build_ssa_passes.
From-SVN: r217125
Bernd Schmidt [Wed, 5 Nov 2014 12:14:45 +0000 (12:14 +0000)]
Reorganize post-ra pipeline for targets without register allocation.
* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
pass_cleanup_barriers, pass_delay_slots,
pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
pass_shorten_branches, pass_est_nothrow_function_flags,
pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
into pass_late_compilation.
(pass_late_compilation): Add.
* passes.c (pass_data_late_compilation, pass_late_compilation,
make_pass_late_compilation): New.
* timevar.def (TV_LATE_COMPILATION): New.
From-SVN: r217124
Bernd Schmidt [Wed, 5 Nov 2014 12:14:36 +0000 (12:14 +0000)]
Allow a target to skip an unnecssary register return value for a struct return.
* target.def (omit_struct_return_reg): New data hook.
* doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
* doc/tm.texi: Regenerate.
* function.c (expand_function_end): Use it.
From-SVN: r217123
Bernd Schmidt [Wed, 5 Nov 2014 12:14:27 +0000 (12:14 +0000)]
Add a no_register_allocation target hook.
* target.def (no_register_allocation): New data hook.
* doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
* doc/tm.texi: Regenerate.
* ira.c (gate_ira): New function.
(pass_data_ira): Set has_gate.
(pass_ira): Add a gate function.
(pass_data_reload): Likewise.
(pass_reload): Add a gate function.
(pass_ira): Use it.
* reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
no register allocation happens on the target and return.
* final.c (alter_subreg): Ensure register is not a pseudo before
calling simplify_subreg.
(output_operand): Assert that x isn't a pseudo only if doing
register allocation.
From-SVN: r217122
Bernd Schmidt [Wed, 5 Nov 2014 12:14:18 +0000 (12:14 +0000)]
Don't unnecessarily call eliminate_regs.
* dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
global vars.
From-SVN: r217121
Bernd Schmidt [Wed, 5 Nov 2014 12:14:10 +0000 (12:14 +0000)]
Allow a port not to define an indirect_jump pattern.
* optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
sorry if necessary.
From-SVN: r217120
Alex Velenko [Wed, 5 Nov 2014 11:22:28 +0000 (11:22 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Div check added.
2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
gcc/
* simplify-rtx.c (simplify_binary_operation_1): Div check added.
* rtl.h (SUBREG_P): New macro added.
gcc/testsuite/
* gcc.dg/asr-div1.c: New testcase.
From-SVN: r217118
Rainer Orth [Wed, 5 Nov 2014 09:52:42 +0000 (09:52 +0000)]
Fix gnu11 fallout on Solaris 10+
libobjc:
* thr.c (_XOPEN_SOURCE): Define as 600.
libiberty:
* sigsetmask.c (_POSIX_SOURCE): Remove.
libgomp:
* config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
From-SVN: r217117
Tejas Belagod [Wed, 5 Nov 2014 08:26:54 +0000 (08:26 +0000)]
[AArch64] Restructure arm_neon.h vector types.
2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
* config/aarch64/aarch64-builtins.c
(aarch64_build_scalar_type): Remove.
(aarch64_scalar_builtin_types, aarch64_simd_type,
aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
aarch64_mangle_builtin_vector_type,
aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
aarch64_init_simd_builtin_types,
aarch64_init_simd_builtin_scalar_types): New.
(aarch64_init_simd_builtins): Refactor.
(aarch64_init_crc32_builtins): Fixup with qualifier.
* config/aarch64/aarch64-protos.h
(aarch64_mangle_builtin_type): Export.
* config/aarch64/aarch64-simd-builtin-types.def: New.
* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
(aarch64_mangle_type): Refactor.
* config/aarch64/arm_neon.h: Declare vector types based on
internal types.
* config/aarch64/t-aarch64: Update dependency.
From-SVN: r217114
Dominik Vogt [Wed, 5 Nov 2014 04:08:11 +0000 (04:08 +0000)]
* go.test/go-test.exp (go-set-goarch): Enable tests on s390[x].
From-SVN: r217112
Ian Lance Taylor [Wed, 5 Nov 2014 04:04:24 +0000 (04:04 +0000)]
go-test.exp: In +build lines, require whitespace around expected strings, fix check for negation.
* go.test/go-test.exp: In +build lines, require whitespace around
expected strings, fix check for negation.
From-SVN: r217111
Ian Lance Taylor [Wed, 5 Nov 2014 03:39:49 +0000 (03:39 +0000)]
sync/atomic: fix data races in tests
Backport https://codereview.appspot.com/
111320044 from Go
master library.
From-SVN: r217110
GCC Administrator [Wed, 5 Nov 2014 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217109
Ian Lance Taylor [Tue, 4 Nov 2014 22:39:30 +0000 (22:39 +0000)]
libgo: add s390 support
From Dominik Vogt.
* libgo/go/syscall/libcall_linux_s390.go: New file for s390 support.
* libgo/go/syscall/syscall_linux_s390.go: Ditto.
* libgo/go/syscall/libcall_linux_s390x.go: New file for s390x support.
* libgo/go/syscall/syscall_linux_s390x.go: Ditto.
* libgo/go/runtime/pprof/pprof.go (printStackRecord): Support s390 and
s390x.
* libgo/runtime/runtime.c (runtime_cputicks): Add support for s390 and
s390x
* libgo/mksysinfo.sh: Ditto.
(upcase_fields): New helper function
* libgo/go/debug/elf/file.go (applyRelocations): Implement relocations
on s390x.
(applyRelocationsS390x): Ditto.
(DWARF): Ditto.
* libgo/go/debug/elf/elf.go (R_390): New constants for S390 relocations.
(r390Strings): Ditto.
(String): Helper function for S390 relocations.
(GoString): Ditto.
* libgo/go/reflect/makefuncgo_s390.go: New file.
(S390MakeFuncStubGo): Implementation of s390 abi.
* libgo/go/reflect/makefuncgo_s390x.go: New file.
(S390xMakeFuncStubGo): Implementation of s390x abi.
* libgo/go/reflect/makefunc_s390.c: New file.
(makeFuncStub): s390 and s390x specific implementation of function.
* libgo/go/reflect/makefunc.go
(MakeFunc): Add support for s390 and s390x.
(makeMethodValue): Ditto.
(makeValueMethod): Ditto.
* libgo/Makefile.am (go_reflect_makefunc_s_file): Ditto.
(go_reflect_makefunc_file): Ditto.
* libgo/go/reflect/makefunc_dummy.c: Ditto.
* libgo/runtime/runtime.h (__go_makefunc_can_recover): Export prototype
for use in makefunc_s390.c.
(__go_makefunc_returning): Ditto.
* libgo/go/syscall/exec_linux.go (forkAndExecInChild): Fix order of the
arguments of the clone system call for s390[x].
* libgo/configure.ac (is_s390): New variable.
(is_s390x): Ditto
(LIBGO_IS_S390): Ditto.
(LIBGO_IS_S390X): Ditto.
(GOARCH): Support s390 and s390x.
* libgo/go/go/build/build.go (cgoEnabled): Ditto.
* libgo/go/go/build/syslist.go (goarchList): Ditto.
From-SVN: r217106
Pat Haugen [Tue, 4 Nov 2014 22:34:43 +0000 (22:34 +0000)]
rs6000.c (atomic_hold_decl, [...]): Guard declaration with #ifdef.
* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
atomic_update_decl): Guard declaration with #ifdef.
From-SVN: r217105
Richard Biener [Tue, 4 Nov 2014 20:46:52 +0000 (20:46 +0000)]
c-common.c (shorten_compare): Do not shorten mixed DFP and non-DFP compares.
2014-11-04 Richard Biener <rguenther@suse.de>
* c-common.c (shorten_compare): Do not shorten mixed
DFP and non-DFP compares.
From-SVN: r217101
Marek Polacek [Tue, 4 Nov 2014 19:59:35 +0000 (19:59 +0000)]
* sanopt.c (sanopt_optimize_walker): Remove unused variables.
From-SVN: r217100
Marek Polacek [Tue, 4 Nov 2014 19:43:01 +0000 (19:43 +0000)]
Makefile.in (OBJS): Add sanopt.o.
* Makefile.in (OBJS): Add sanopt.o.
(GTFILES): Add sanopt.c.
* asan.h (asan_expand_check_ifn): Declare.
* asan.c (asan_expand_check_ifn): No longer static.
(class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
* sanopt.c: ...here. New file.
testsuite/
* c-c++-common/ubsan/align-2.c: Remove dg-output.
* c-c++-common/ubsan/align-4.c: Likewise.
* g++.dg/ubsan/null-1.C: Likewise.
* g++.dg/ubsan/null-2.C: Likewise.
From-SVN: r217099
Uros Bizjak [Tue, 4 Nov 2014 18:30:32 +0000 (19:30 +0100)]
godump-1.c (dg-skip-if): Add alpha*-*-*.
* gcc.misc-tests/godump-1.c (dg-skip-if): Add alpha*-*-*.
From-SVN: r217098
Uros Bizjak [Tue, 4 Nov 2014 18:21:34 +0000 (19:21 +0100)]
devirt-44.C (dg-options): Remove -fdump-tree-optimized.
* g++.dg/ipa/devirt-44.C (dg-options): Remove -fdump-tree-optimized.
* g++.dg/ipa/devirt-45.C (dg-options): Ditto.
* g++.dg/tree-prof/morefunc.C (dg-final-use): Cleanup profile ipa dump.
* g++.dg/tree-prof/reorder.C (dg-final-use): Ditto.
* g++.dg/tree-prof/pr35545.C (dg-fina-use): Cleanup profile_estimate
ipa dump.
* gcc.dg/fold-reassoc-3.c (dg-final): Fix scan string.
Cleanup original tree dump.
* gcc.dg/tree-prof/
20050826-2.c (dg-final-use): Cleanup dom1 tree dump.
* gcc.dg/tree-prof/cmpsf-1.c (dg-final-use): Ditto.
* gcc.dg/tree-ssa/pr61144.c (dg-final): Cleanup optimized tree dump.
From-SVN: r217097
Ian Lance Taylor [Tue, 4 Nov 2014 17:49:01 +0000 (17:49 +0000)]
compiler: Logical operators should yield untyped bool for untyped operands.
Fixes issue 6671 for gccgo.
From-SVN: r217094
Martin Jambor [Tue, 4 Nov 2014 17:39:06 +0000 (18:39 +0100)]
devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body.
gcc/testsuite/
2014-11-04 Martin Jambor <mjambor@suse.cz>
* g++/dg/ipa/devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in
function body.
From-SVN: r217092
Jiong Wang [Tue, 4 Nov 2014 17:13:25 +0000 (17:13 +0000)]
[AArch64] fix unsafe access to deallocated stack
2014-11-04 Jiong Wang <jiong.wang@arm.com>
2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
gcc/
PR target/63293
* config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
stack adjustment.
From-SVN: r217091
Jonathan Wakely [Tue, 4 Nov 2014 16:54:49 +0000 (16:54 +0000)]
* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.
From-SVN: r217090
Bernd Schmidt [Tue, 4 Nov 2014 15:25:45 +0000 (15:25 +0000)]
Fix up mode confusion in combine_simplify_rtx.
The surrounding code was already fixed back when BImode was added.
* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
also verify that mode is equal to the mode of op0.
From-SVN: r217089
Bernd Schmidt [Tue, 4 Nov 2014 15:25:37 +0000 (15:25 +0000)]
Make a temporary sequence for a jump emitted only to examine its length.
* bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
emit into a sequence instead.
From-SVN: r217088
Bernd Schmidt [Tue, 4 Nov 2014 15:25:28 +0000 (15:25 +0000)]
Fix type mismatches in intrinsic functions.
* f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
scalbn, scalbnl and scalbnf.
* mathbuiltins.def (JN, YN): Use type index 5.
From-SVN: r217087
Jason Merrill [Tue, 4 Nov 2014 14:55:32 +0000 (09:55 -0500)]
g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
* lib/g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
* lib/target-supports.exp (check_effective_target_c++14_only): Likewise.
From-SVN: r217085
Jan-Benedict Glaw [Tue, 4 Nov 2014 12:41:23 +0000 (12:41 +0000)]
sh.c (emit_fpu_switch): Drop unused automatic variable.
2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
From-SVN: r217082
Andrew Stubbs [Tue, 4 Nov 2014 12:09:50 +0000 (12:09 +0000)]
pr60102.c: Move dg-skip-if after dg-options.
gcc/testsuite/
* gcc.target/powerpc/pr60102.c: Move dg-skip-if after dg-options.
* gcc.target/powerpc/swaps-p8-12.c: Skip test if there would be
conflicting -mcpu options.
* gcc.target/powerpc/ppc-target-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-7.c: Likewise.
* gcc.target/powerpc/dfp-builtin-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-7.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-1.c: Likewise.
* gcc.target/powerpc/pr48053-3.c: Likewise.
* gcc.target/powerpc/vsx-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-1.c: Likewise.
* gcc.target/powerpc/pr57744.c: Likewise.
* gcc.target/powerpc/pr47862.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-8.c: Likewise.
* gcc.target/powerpc/recip-1.c: Likewise.
* gcc.target/powerpc/darwin-longlong.c: Likewise.
* gcc.target/powerpc/bool2-p8.c: Likewise.
* gcc.target/powerpc/mmfpgpr.c: Likewise.
* gcc.target/powerpc/pr60203.c: Likewise.
* gcc.target/powerpc/direct-move-vint1.c: Likewise.
* gcc.target/powerpc/bool2-av.c: Likewise.
* gcc.target/powerpc/pr43154.c: Likewise.
* gcc.target/powerpc/ppc-fma-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-5.c: Likewise.
* gcc.target/powerpc/pr59054.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-11.c: Likewise.
* gcc.target/powerpc/440-mullhwu-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-13.c: Likewise.
* gcc.target/powerpc/ppc-target-3.c: Likewise.
* gcc.target/powerpc/cell_builtin-8.c: Likewise.
* gcc.target/powerpc/dfp-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-8.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-2.c: Likewise.
* gcc.target/powerpc/p8vector-vbpermq.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-1.c: Likewise.
* gcc.target/powerpc/bswap64-3.c: Likewise.
* gcc.target/powerpc/bcd-1.c: Likewise.
* gcc.target/powerpc/440-mulchwu-1.c: Likewise.
* gcc.target/powerpc/extend-divide-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48192.c: Likewise.
* gcc.target/powerpc/pr52775.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/pr58673-1.c: Likewise.
* gcc.target/powerpc/pr53487.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-2.c: Likewise.
* gcc.target/powerpc/recip-2.c: Likewise.
* gcc.target/powerpc/p8vector-fp.c: Likewise.
* gcc.target/powerpc/direct-move-vint2.c: Likewise.
* gcc.target/powerpc/ppc-fma-3.c: Likewise.
* gcc.target/powerpc/pr57150.c: Likewise.
* gcc.target/powerpc/pr47251.c: Likewise.
* gcc.target/powerpc/swaps-p8-6.c: Likewise.
* gcc.target/powerpc/440-mullhwu-2.c: Likewise.
* gcc.target/powerpc/bool3-p7.c: Likewise.
* gcc.target/powerpc/cell_builtin-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-14.c: Likewise.
* gcc.target/powerpc/ppc-target-4.c: Likewise.
* gcc.target/powerpc/440-mulhhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-1.c: Likewise.
* gcc.target/powerpc/440-machhw-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-3.c: Likewise.
* gcc.target/powerpc/vsx-mass-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-3.c: Likewise.
* gcc.target/powerpc/loop_align.c: Likewise.
* gcc.target/powerpc/lhs-1.c: Likewise.
* gcc.target/powerpc/sd-vsx.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-2.c: Likewise.
* gcc.target/powerpc/bcd-2.c: Likewise.
* gcc.target/powerpc/
20040121-1.c: Likewise.
* gcc.target/powerpc/pr52457.c: Likewise.
* gcc.target/powerpc/440-mulchwu-2.c: Likewise.
* gcc.target/powerpc/extend-divide-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-8.c: Likewise.
* gcc.target/powerpc/p8vector-int128-2.c: Likewise.
* gcc.target/powerpc/pr58673-2.c: Likewise.
* gcc.target/powerpc/atomic-p7.c: Likewise.
* gcc.target/powerpc/recip-3.c: Likewise.
* gcc.target/powerpc/440-maclhwu-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapsi-2.c: Likewise.
* gcc.target/powerpc/popcount-1.c: Likewise.
* gcc.target/powerpc/altivec-32.c: Likewise.
* gcc.target/powerpc/timode_off.c: Likewise.
* gcc.target/powerpc/p8vector-ldst.c: Likewise.
* gcc.target/powerpc/pack01.c: Likewise.
* gcc.target/powerpc/pr55033.c: Likewise.
* gcc.target/powerpc/ppc-fma-4.c: Likewise.
* gcc.target/powerpc/swaps-p8-7.c: Likewise.
* gcc.target/powerpc/ppu-intrinsics.c: Likewise.
* gcc.target/powerpc/440-macchwu-1.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-1.c: Likewise.
* gcc.target/powerpc/440-mulchw-1.c: Likewise.
* gcc.target/powerpc/bool3-p8.c: Likewise.
* gcc.target/powerpc/cell_builtin-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-15.c: Likewise.
* gcc.target/powerpc/440-macchw-1.c: Likewise.
* gcc.target/powerpc/440-mulhhw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-2.c: Likewise.
* gcc.target/powerpc/440-machhw-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-4.c: Likewise.
* gcc.target/powerpc/pr46728-16.c: Likewise.
* gcc.target/powerpc/vsx-builtin-1.c: Likewise.
* gcc.target/powerpc/bool3-av.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-4.c: Likewise.
* gcc.target/powerpc/ppc-pow.c: Likewise.
* gcc.target/powerpc/lhs-2.c: Likewise.
* gcc.target/powerpc/pr39902-2.c: Likewise.
* gcc.target/powerpc/
20041111-1.c: Likewise.
* gcc.target/powerpc/builtins-1.c: Likewise.
* gcc.target/powerpc/bcd-3.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-3.c: Likewise.
* gcc.target/powerpc/pr57949-1.c: Likewise.
* gcc.target/powerpc/atomic-p8.c: Likewise.
* gcc.target/powerpc/sd-pwr6.c: Likewise.
* gcc.target/powerpc/recip-4.c: Likewise.
* gcc.target/powerpc/440-maclhwu-2.c: Likewise.
* gcc.target/powerpc/warn-2.c: Likewise.
* gcc.target/powerpc/parity-1.c: Likewise.
* gcc.target/powerpc/popcount-2.c: Likewise.
* gcc.target/powerpc/crypto-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fma-5.c: Likewise.
* gcc.target/powerpc/swaps-p8-8.c: Likewise.
* gcc.target/powerpc/pr42747.c: Likewise.
* gcc.target/powerpc/440-macchwu-2.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-2.c: Likewise.
* gcc.target/powerpc/dfp-dd-2.c: Likewise.
* gcc.target/powerpc/direct-move-float1.c: Likewise.
* gcc.target/powerpc/440-mulchw-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-16.c: Likewise.
* gcc.target/powerpc/440-macchw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-3.c: Likewise.
* gcc.target/powerpc/dfp-td-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-5.c: Likewise.
* gcc.target/powerpc/vsx-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-5.c: Likewise.
* gcc.target/powerpc/lhs-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-1.c: Likewise.
* gcc.target/powerpc/builtins-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
* gcc.target/powerpc/pr52199.c: Likewise.
* gcc.target/powerpc/440-machhwu-1.c: Likewise.
* gcc.target/powerpc/pr57949-2.c: Likewise.
* gcc.target/powerpc/recip-5.c: Likewise.
* gcc.target/powerpc/popcount-3.c: Likewise.
* gcc.target/powerpc/vsx-vector-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-2.c: Likewise.
* gcc.target/powerpc/ppc-fma-6.c: Likewise.
* gcc.target/powerpc/vsx-extract-1.c: Likewise.
* gcc.target/powerpc/pr48226.c: Likewise.
* gcc.target/powerpc/swaps-p8-9.c: Likewise.
* gcc.target/powerpc/pr47755-2.c: Likewise.
* gcc.target/powerpc/direct-move-float2.c: Likewise.
* gcc.target/powerpc/cell_builtin-4.c: Likewise.
* gcc.target/powerpc/direct-move-double1.c: Likewise.
* gcc.target/powerpc/swaps-p8-17.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-4.c: Likewise.
* gcc.target/powerpc/dfp-td-3.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmacchw-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-5.c: Likewise.
* gcc.target/powerpc/bool2-p5.c: Likewise.
* gcc.target/powerpc/440-machhwu-2.c: Likewise.
* gcc.target/powerpc/fusion.c: Likewise.
* gcc.target/powerpc/recip-6.c: Likewise.
* gcc.target/powerpc/altivec-cell-6.c: Likewise.
* gcc.target/powerpc/vsx-vector-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-2.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-3.c: Likewise.
* gcc.target/powerpc/ppc-fma-7.c: Likewise.
* gcc.target/powerpc/vsx-extract-2.c: Likewise.
* gcc.target/powerpc/direct-move-long1.c: Likewise.
* gcc.target/powerpc/dfp-dd.c: Likewise.
* gcc.target/powerpc/swaps-p8-10.c: Likewise.
* gcc.target/powerpc/cell_builtin-5.c: Likewise.
* gcc.target/powerpc/direct-move-double2.c: Likewise.
* gcc.target/powerpc/440-mullhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
* gcc.target/powerpc/440-maclhw-1.c: Likewise.
* gcc.target/powerpc/dfp-td.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48053-1.c: Likewise.
* gcc.target/powerpc/440-nmacchw-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-4.c: Likewise.
* gcc.target/powerpc/pr60676.c: Likewise.
* gcc.target/powerpc/pr48258-1.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
* gcc.target/powerpc/pr48857.c: Likewise.
* gcc.target/powerpc/quad-atomic.c: Likewise.
* gcc.target/powerpc/altivec-cell-7.c: Likewise.
* gcc.target/powerpc/atomic_load_store-p8.c: Likewise.
* gcc.target/powerpc/vsx-vector-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-3.c: Likewise.
* gcc.target/powerpc/pr56605.c: Likewise.
* gcc.target/powerpc/vsx-extract-3.c: Likewise.
* gcc.target/powerpc/pr53199.c: Likewise.
* gcc.target/powerpc/direct-move-long2.c: Likewise.
* gcc.target/powerpc/swaps-p8-11.c: Likewise.
* gcc.target/powerpc/vsx-float0.c: Likewise.
* gcc.target/powerpc/ppc-target-1.c: Likewise.
* gcc.target/powerpc/altivec-20.c: Likewise.
* gcc.target/powerpc/cell_builtin-6.c: Likewise.
* gcc.target/powerpc/440-mullhw-2.c: Likewise.
* gcc.target/powerpc/darwin-ehreturn-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-6.c: Likewise.
* gcc.target/powerpc/440-maclhw-2.c: Likewise.
* gcc.target/powerpc/440-dlmzb-strlen-1.c: Likewise.
* gcc.target/powerpc/pr60137.c: Likewise.
* gcc.target/powerpc/bswap64-1.c: Likewise.
* gcc.target/powerpc/pr48053-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-5.c: Likewise.
* gcc.target/powerpc/pr48258-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
* gcc.target/powerpc/vsx-sfminmax.c: Likewise.
* gcc.target/powerpc/bool2-p7.c: Likewise.
* gcc.target/powerpc/ppc-round.c: Likewise.
* gcc.target/powerpc/altivec-cell-8.c: Likewise.
* gcc.target/powerpc/vsx-vector-4.c: Likewise.
* gcc.target/powerpc/ppc-fma-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-4.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
* gcc.target/powerpc/pr47755.c: Likewise.
From-SVN: r217081
Alan Lawrence [Tue, 4 Nov 2014 12:09:38 +0000 (12:09 +0000)]
[ARM] Migrate to new reduc_[us](min|max)_scal_optab
config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
(reduc_smin_scal_<mode> *2): ...this; extract scalar result.
(reduc_smax_<mode> *2): Rename to...
(reduc_smax_scal_<mode> *2): ...this; extract scalar result.
(reduc_umin_<mode> *2): Rename to...
(reduc_umin_scal_<mode> *2): ...this; extract scalar result.
(reduc_umax_<mode> *2): Rename to...
(reduc_umax_scal_<mode> *2): ...this; extract scalar result.
From-SVN: r217080
Alan Lawrence [Tue, 4 Nov 2014 12:05:52 +0000 (12:05 +0000)]
[ARM] Migrate to new reduc_plus_scal_optab
config/arm/neon.md (reduc_plus_*): Rename to...
(reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
From-SVN: r217079
Michael Collison [Tue, 4 Nov 2014 11:23:10 +0000 (11:23 +0000)]
[AArch64] Fix predicate and constraint mismatch in logical atomic operations
2014-11-04 Michael Collison <michael.collison@linaro.org>
* config/aarch64/iterators.md (lconst_atomic): New mode attribute
to support constraints for CONST_INT in atomic operations.
* config/aarch64/atomics.md
(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.
From-SVN: r217076
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:22 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV
From-SVN: r217073
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:06 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV
From-SVN: r217072
Marek Polacek [Tue, 4 Nov 2014 09:30:47 +0000 (09:30 +0000)]
ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
* ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
testsuite/
* c-c++-common/ubsan/object-size-10.c: New test.
From-SVN: r217071
Jan-Benedict Glaw [Tue, 4 Nov 2014 09:22:51 +0000 (09:22 +0000)]
rx.c (rx_handle_func_attribute): Mark unused argument.
2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
From-SVN: r217070
Jonathan Wakely [Tue, 4 Nov 2014 03:41:16 +0000 (03:41 +0000)]
numeric.h: Do not use default arguments in function template redeclarations (definitions).
* include/parallel/numeric.h: Do not use default arguments in function
template redeclarations (definitions).
From-SVN: r217069
Jonathan Wakely [Tue, 4 Nov 2014 03:41:12 +0000 (03:41 +0000)]
Do not assume allocator is assignable.
* include/bits/stl_deque.h (_Deque_base(_Deque_base&&)): Copy
allocator instead of moving.
* testsuite/23_containers/deque/allocator/move-2.cc: New.
From-SVN: r217068
Jonathan Wakely [Tue, 4 Nov 2014 02:49:33 +0000 (02:49 +0000)]
Make reference_wrapper trivially copyable.
* include/std/functional (reference_wrapper): Define copy constructor
and copy assignment as defaulted.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
* testsuite/20_util/reference_wrapper/requirements.cc: New.
From-SVN: r217067
Jonathan Wakely [Tue, 4 Nov 2014 02:49:30 +0000 (02:49 +0000)]
Use ctype_base::blank in regex_traits.
* include/bits/regex.h (regex_traits::_RegexMask): Remove _S_blank and
adjust _S_valid_mask.
* include/bits/regex.tcc (regex_traits::lookup_classname): Use
ctype_base::blank.
From-SVN: r217066
Jonathan Wakely [Tue, 4 Nov 2014 02:49:27 +0000 (02:49 +0000)]
* include/std/functional (_Bind_simple): Simplify construction.
From-SVN: r217065
Jonathan Wakely [Tue, 4 Nov 2014 02:49:20 +0000 (02:49 +0000)]
Use aliases for type traits in C++14 mode.
* include/bits/unique_ptr.h (make_unique): Use alias for trait.
* include/experimental/optional (__constexpr_addressof): Likewise.
(_Optional_base, optional, make_optional): Likewise.
From-SVN: r217064
Zhenqiang Chen [Tue, 4 Nov 2014 02:21:51 +0000 (02:21 +0000)]
revert: ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
Revert:
2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.
From-SVN: r217062
GCC Administrator [Tue, 4 Nov 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217061
Dominik Vogt [Tue, 4 Nov 2014 00:00:14 +0000 (00:00 +0000)]
godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support with -fdump-go-spec.
gcc/:
* godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
with -fdump-go-spec. Anonymous substructures are now flattened and
replaced by their fields (record) or the first named, non-bitfield
field (union).
gcc/testsuite/:
* build-go/gcc/testsuite/gcc/godump-1.out: Update godump tests.
From-SVN: r217058
Manuel López-Ibáñez [Mon, 3 Nov 2014 22:57:33 +0000 (22:57 +0000)]
input.c (expand_location_to_spelling_point): Fix typo.
2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
* input.c (expand_location_to_spelling_point): Fix typo.
(expansion_point_location_if_in_system_header): Fix comment.
From-SVN: r217057
Tobias Burnus [Mon, 3 Nov 2014 20:14:48 +0000 (21:14 +0100)]
coarray_collectives_14.f90: Fix testcase.
2014-11-03 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_collectives_14.f90: Fix testcase.
From-SVN: r217053
Pitchumani Sivanupandi [Mon, 3 Nov 2014 19:03:34 +0000 (19:03 +0000)]
* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
From-SVN: r217051
Paolo Carlini [Mon, 3 Nov 2014 17:54:59 +0000 (17:54 +0000)]
algo.h: Do not use default arguments in function template redeclarations (definitions).
2014-11-03 Paolo Carlini <paolo.carlini@oracle.com>
* include/parallel/algo.h: Do not use default arguments in function
template redeclarations (definitions).
From-SVN: r217050
Ian Lance Taylor [Mon, 3 Nov 2014 16:30:51 +0000 (16:30 +0000)]
runtime: use "$GOC -dumpversion" instead of BASE-VER to discover compiler version
From-SVN: r217049
Richard Biener [Mon, 3 Nov 2014 15:49:43 +0000 (15:49 +0000)]
tree-eh.c (operation_could_trap_helper_p): Handle conversions like ordinary operations.
2014-11-03 Richard Biener <rguenther@suse.de>
* tree-eh.c (operation_could_trap_helper_p): Handle conversions
like ordinary operations.
* gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
as NOP_EXPR.
From-SVN: r217048
Joseph Myers [Mon, 3 Nov 2014 13:40:50 +0000 (13:40 +0000)]
Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500.
This patch implements support for TARGET_ATOMIC_ASSIGN_EXPAND_FENV for
powerpc*-*-linux* soft-float and e500, provided GCC is configured for
glibc 2.19 or later on the target.
New functions __atomic_feholdexcept, __atomic_feclearexcept and
__atomic_feupdateenv were added (to libc) in that glibc version (for
powerpc soft-float / e500 only) in order to support this part of C11.
For soft-float, libc functions are needed because the floating-point
exception state is in TLS variables in libc that aren't directly
accessible outside of glibc. For e500, they are also needed because
of the prctl syscalls involved in controlling trapping for exceptions
and informing the kernel when certain exception flags have been
cleared. The actual implementation in GCC is a straightforward matter
of calling those functions.
Tested with no regressions for cross to powerpc-linux-gnu
(soft-float); the c11-atomic-exec-5.c results go from FAIL to PASS.
* configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
macros.
* configure, config.h.in: Regenerate.
* config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
(atomic_update_decl): New static variables.
(rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
and __atomic_feupdateenv for soft-float and no-FPRs.
From-SVN: r217040
Richard Biener [Mon, 3 Nov 2014 12:59:47 +0000 (12:59 +0000)]
match.pd: Add two abs patterns.
2014-11-03 Richard Biener <rguenther@suse.de>
* match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p.
Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
* fold-const.c (fold_unary_loc): Remove them here.
(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
* gimple-fold.c (fold_gimple_assign): Remove now obsolete
GIMPLE_UNARY_RHS case.
(gimple_fold_stmt_to_constant_1): Likewise.
(replace_stmt_with_simplification): Fix inverted comparison.
From-SVN: r217039
Marek Polacek [Mon, 3 Nov 2014 12:35:35 +0000 (12:35 +0000)]
re PR c/52769 (Unspecified designated initializer might not set to zero in some cases)
PR c/52769
* gcc.dg/pr52769.c: New test.
From-SVN: r217036
Paolo Carlini [Mon, 3 Nov 2014 10:49:05 +0000 (10:49 +0000)]
re PR c++/57820 ([DR 253] NSDMI and const objects)
2014-11-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57820
* g++.dg/cpp0x/constexpr-ctor16.C: New.
* g++.dg/cpp0x/constexpr-ctor17.C: Likewise.
From-SVN: r217035
Marc Glisse [Mon, 3 Nov 2014 10:47:04 +0000 (11:47 +0100)]
re PR tree-optimization/60770 (disappearing clobbers)
2014-11-03 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/60770
gcc/
* tree-into-ssa.c (rewrite_update_stmt): Return whether the
statement should be removed.
(maybe_register_def): Likewise. Replace clobbers with default
definitions.
(rewrite_dom_walker::before_dom_children): Remove statement if
rewrite_update_stmt says so.
* tree-ssa-live.c: Include tree-ssa.h.
(set_var_live_on_entry): Do not mark undefined variables as live.
(verify_live_on_entry): Do not check undefined variables.
* tree-ssa.h (ssa_undefined_value_p): New parameter for the case
of partially undefined variables.
* tree-ssa.c (ssa_undefined_value_p): Likewise.
(execute_update_addresses_taken): Do not drop clobbers.
gcc/testsuite/
* gcc.dg/tree-ssa/pr60770-1.c: New file.
From-SVN: r217034
Marc Glisse [Mon, 3 Nov 2014 10:36:35 +0000 (11:36 +0100)]
re PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))
2014-11-03 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/63666
* fold-const.c: Include "optabs.h".
(fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
can_vec_perm_p permutation to one that is not.
From-SVN: r217033
Jan Beulich [Mon, 3 Nov 2014 09:18:51 +0000 (09:18 +0000)]
x86: extend vect-args testcase to AVX flavors
gcc/testsuite:
2014-11-03 Jan Beulich <jbeulich@suse.com>
* gcc.target/i386/i386.exp: Extend option set to test
vect-args.c with to include -mavx, -mavx2, and -mavx512f.
* gcc.target/i386/vect-args.c: Add AVX* modes and tests.
From-SVN: r217032
Uros Bizjak [Mon, 3 Nov 2014 08:30:21 +0000 (09:30 +0100)]
20010129-1.c: Compile with -mtune=i686 for ia32 targets only.
* gcc.c-torture/execute/
20010129-1.c: Compile with -mtune=i686
for ia32 targets only.
* g++.dg/ext/attrib42.C: Compile for ia32 targets only.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* g++.dg/cpp0x/gen-attrs-42.C: Ditto.
From-SVN: r217030
Zhenqiang Chen [Mon, 3 Nov 2014 06:36:11 +0000 (06:36 +0000)]
ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
ChangeLog:
2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
* ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
testsuite/ChangeLog:
2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
* gcc.target/arm/ifcvt-size-check.c: New test.
From-SVN: r217029
Naveen H.S [Mon, 3 Nov 2014 05:13:43 +0000 (05:13 +0000)]
[multiple changes]
2014-10-31 Andrew Pinski <apinski@cavium.com>
* config/mips/mips-cpus.def (octeon3): New cpu.
* config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
(mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
of the comparison no longer matches mode of the operands.
(mips_issue_rate): Handle PROCESSOR_OCTEON3.
* config/mips/mips.h (TARGET_OCTEON): Add Octeon3.
(TARGET_OCTEON2): Likewise.
(TUNE_OCTEON): Add Octeon3.
* config/mips/mips.md (processor): Add octeon3.
* config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
(octeon_arith): Add octeon3.
(octeon_condmove): Remove.
(octeon_condmove_o1): New reservation.
(octeon_condmove_o2): New reservation.
(octeon_condmove_o3_int_on_cc): New reservation.
(octeon_load_o2): Add octeon3.
(octeon_cop_o2): Likewise.
(octeon_store): Likewise.
(octeon_brj_o2): Likewise.
(octeon_imul3_o2): Likewise.
(octeon_imul_o2): Likewise.
(octeon_mfhilo_o2): Likewise.
(octeon_imadd_o2): Likewise.
(octeon_idiv_o2_si): Likewise.
(octeon_idiv_o2_di): Likewise.
(octeon_fpu): Add to the automaton.
(octeon_fpu): New cpu unit.
(octeon_condmove_o2): Check for non floating point modes.
(octeon_load_o2): Add prefetchx.
(octeon_cop_o2): Don't check for octeon3.
(octeon3_faddsubcvt): New reservation.
(octeon3_fmul): Likewise.
(octeon3_fmadd): Likewise.
(octeon3_div_sf): Likewise.
(octeon3_div_df): Likewise.
(octeon3_sqrt_sf): Likewise.
(octeon3_sqrt_df): Likewise.
(octeon3_rsqrt_sf): Likewise.
(octeon3_rsqrt_df): Likewise.
(octeon3_fabsnegmov): Likewise.
(octeon_fcond): Likewise.
(octeon_fcondmov): Likewise.
(octeon_fpmtc1): Likewise.
(octeon_fpmfc1): Likewise.
(octeon_fpload): Likewise.
(octeon_fpstore): Likewise.
* config/mips/mips-tables.opt: Regenerate.
* doc/invoke.texi (-march=@var{arch}): Add octeon3.
2014-10-31 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
* gcc.target/mips/octeon3-pipe-1.c: New test.
From-SVN: r217028
Zhenqiang Chen [Mon, 3 Nov 2014 03:20:30 +0000 (03:20 +0000)]
ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.
From-SVN: r217026
Jonathan Wakely [Mon, 3 Nov 2014 02:55:36 +0000 (02:55 +0000)]
Check number of arguments in bind expressions.
* include/std/functional (_Mem_fn_traits_base::__arity): New typedef.
(_Mem_fn_base::_Arity): New typedef.
(_Bind_check_arity): New class template.
(_Bind_helper, _Bindres_helper, _Bind_simple_helper): Check arity.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
From-SVN: r217025
Jonathan Wakely [Mon, 3 Nov 2014 02:55:32 +0000 (02:55 +0000)]
Add support for ref-qualified functions to std::mem_fn
PR libstdc++/57898
* include/std/functional (_Mem_fn_traits_base): New class template.
(_Mem_fn_traits): New class template with specializations for every
combination of cv-qualified and ref-qualified member function.
(_Mem_fn_base): New class template for all pointer to member function
types and partial specialization for pointer to member object types.
(_Mem_fn): Inherit from _Mem_fn_base.
* testsuite/20_util/function_objects/mem_fn/refqual.cc: New.
From-SVN: r217024
GCC Administrator [Mon, 3 Nov 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217023
Uros Bizjak [Sun, 2 Nov 2014 21:32:54 +0000 (22:32 +0100)]
gen-attrs-42.C: Add x86_64-*-* target.
* g++.dg/cpp0x/gen-attrs-42.C: Add x86_64-*-* target.
* g++.dg/ext/attrib42.C: Ditto.
* g++.dg/torture/pr51344.C: Ditto.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* gcc.c-torture/execute/
20010129-1.c: Ditto.
* gcc.dg/combine_ashiftrt_2.c: Ditto.
* gcc.dg/march-generic.c: Ditto.
* gcc.dg/torture/pr17526.c: Ditto.
* gcc.dg/union-4.c: Ditto.
From-SVN: r217020
Richard Sandiford [Sun, 2 Nov 2014 20:00:25 +0000 (20:00 +0000)]
arc.c (write_ext_corereg_1): Delete.
gcc/
* config/arc/arc.c (write_ext_corereg_1): Delete.
(arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
From-SVN: r217019
Richard Sandiford [Sun, 2 Nov 2014 20:00:19 +0000 (20:00 +0000)]
arc.c (arc600_corereg_hazard_1): Delete.
gcc/
* config/arc/arc.c (arc600_corereg_hazard_1): Delete.
(arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
From-SVN: r217018
Richard Sandiford [Sun, 2 Nov 2014 20:00:12 +0000 (20:00 +0000)]
arc.c (arc_rewrite_small_data_p): Constify argument.
gcc/
* config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
(small_data_pattern_1): Delete.
(small_data_pattern): Use FOR_EACH_SUBRTX.
From-SVN: r217017
Richard Sandiford [Sun, 2 Nov 2014 20:00:05 +0000 (20:00 +0000)]
arc.c: Include rtl-iter.h.
gcc/
* config/arc/arc.c: Include rtl-iter.h.
(arc_rewrite_small_data_1): Delete.
(arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
From-SVN: r217016
Uros Bizjak [Sun, 2 Nov 2014 19:27:06 +0000 (20:27 +0100)]
re PR target/24188 (WRITE(6,*) causes an ICE with -mcmodel=medium)
* c-c++-common/ubsan/float-cast-overflow-6.c: Add i?86-*-* target.
* g++.dg/abi/no-weak1.C: Ditto.
* g++.dg/opt/pr44919.C: Ditto.
* g++.dg/opt/pr46640.C: Ditto.
* g++.dg/opt/pr46649.C: Ditto.
* g++.dg/opt/pr47036.C: Ditto.
* g++.dg/opt/pr48273.C: Ditto.
* g++.dg/opt/pr48302.C: Ditto.
* g++.dg/opt/pr45788.C: Ditto.
* g++.dg/opt/pr57662.C: Ditto.
* gcc.dg/
20031102-1.c: Ditto.
* gcc.dg/builtin-bswap-7.c: Ditto.
* gcc.dg/builtin-bswap-7a.c: Ditto.
* gcc.dg/builtin-bswap-9.c: Ditto.
* gcc.dg/combine_ashiftrt_1.c: Ditto.
* gcc.dg/guality/bswaptest.c: Ditto.
* gcc.dg/guality/clztest.c: Ditto.
* gcc.dg/guality/ctztest.c: Ditto.
* gcc.dg/guality/pr45003-1.c: Ditto.
* gcc.dg/guality/pr45003-2.c: Ditto.
* gcc.dg/guality/pr45003-3.c: Ditto.
* gcc.dg/guality/pr58791-4.c: Ditto.
* gcc.dg/guality/rotatetest.c:Ditto.
* gcc.dg/ifcvt-fabs-1.c: Ditto.
* gcc.dg/ira-loop-pressure.c: Ditto.
* gcc.dg/ira-shrinkwrap-prep-1.c: Ditto.
* gcc.dg/ira-shrinkwrap-prep-2.c: Ditto.
* gcc.dg/lto/pr47259_0.c: Ditto.
* gcc.dg/memcpy-5.c: Ditto.
* gcc.dg/pr10474.c: Ditto.
* gcc.dg/pr37438.c: Ditto.
* gcc.dg/pr39453.c: Ditto.
* gcc.dg/pr40501.c: Ditto.
* gcc.dg/pr42245-2.c: Ditto.
* gcc.dg/pr42245.c: Ditto.
* gcc.dg/pr42246.c: Ditto.
* gcc.dg/pr42249.c: Ditto.
* gcc.dg/pr42388.c: Ditto.
* gcc.dg/pr42389.c: Ditto.
* gcc.dg/pr45352-1.c: Ditto.
* gcc.dg/pr45352-2.c: Ditto.
* gcc.dg/pr45352-3.c: Ditto.
* gcc.dg/pr45352.c: Ditto.
* gcc.dg/pr45472.c: Ditto.
* gcc.dg/pr45652.c: Ditto.
* gcc.dg/pr46212.c: Ditto.
* gcc.dg/pr46521.c: Ditto.
* gcc.dg/pr46522.c: Ditto.
* gcc.dg/pr46875.c: Ditto.
* gcc.dg/pr48374.c: Ditto.
* gcc.dg/pr50251.c: Ditto.
* gcc.dg/pr54472.c: Ditto.
* gcc.dg/pr55702.c: Ditto.
* gcc.dg/pr56990.c: Ditto.
* gcc.dg/pr57104.c: Ditto.
* gcc.dg/pr57662.c: Ditto.
* gcc.dg/pr60866.c: Ditto.
* gcc.dg/shrink-wrap-loop.c: Ditto.
* gcc.dg/tm/memopt-15.c: Ditto.
* gcc.dg/torture/pr52720.c: Ditto.
* gcc.dg/torture/pr56778.c: Ditto.
* gcc.dg/tree-prof/pr45354.c: Ditto.
* gcc.dg/tree-prof/pr50907.c: Ditto.
* gcc.dg/tree-ssa/loop-16.c: Ditto.
* gcc.dg/tree-ssa/loop-18.c: Ditto.
* gcc.dg/tree-ssa/pr44423.c: Ditto.
* gcc.dg/misc-tests/godump-1.c: Ditto.
* gfortran.dg/PR24188.f: Ditto.
* gfortran.dg/errnocheck_1.f90: Ditto.
* gfortran.dg/g77/
20010216-1.f: Ditto.
* gfortran.dg/pr42246-2.f: Ditto.
* gfortran.dg/pr42294.f: Ditto.
* gfortran.dg/pr44691.f: Ditto.
* gfortran.dg/vect/pr45714-a.f: Ditto.
* gcc.c-torture/execute/ieee/ieee.exp: Ditto.
* gcc.misc-tests/linkage.exp: Ditto.
* lib/target-supports.exp: Reformat x86 tagets.
(check_effective_target_whole_vector_shift): Add i?86-*-* target.
From-SVN: r217015
Michael Collison [Sun, 2 Nov 2014 18:00:59 +0000 (18:00 +0000)]
[ARM] Fix CLZ_DEFINED_VALUE_AT_ZERO for vector modes
2014-11-02 Michael Collison <michael.collison@linaro.org>
* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
to support vector modes.
(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
From-SVN: r217014
Paolo Carlini [Sun, 2 Nov 2014 09:31:12 +0000 (09:31 +0000)]
re PR c++/57694 ([c++11] constexpr constructor does not work with const address of own member)
2014-11-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57694
* g++.dg/cpp0x/constexpr-ctor15.C: New.
From-SVN: r217013
Edward Smith-Rowland [Sun, 2 Nov 2014 02:51:41 +0000 (02:51 +0000)]
feat-cxx11.C: Commentary and rearrangement of tests.
testsuite/
2014-11-01 Edward Smith-Rowland <3dw4rd@verizon.net>
* g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test.
Commentary and rearrangement of tests.
* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto
* g++.dg/cpp1y/feat-cxx98.C: Commentary.
c-family/
2014-11-01 Edward Smith-Rowland <3dw4rd@verizon.net>
* c-cppbuiltin.c: Define __cpp_aggregate_nsdmi.
From-SVN: r217012
GCC Administrator [Sun, 2 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217010
Andrew MacLeod [Sat, 1 Nov 2014 13:34:15 +0000 (13:34 +0000)]
2014-11-01 Andrew MacLeod <amacleod@redhat,com>
* optabs.h: Flatten insn-codes.h to source files. Move some prototypes
and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
* optabs.c: (gen_move_insn): Move to expr.c.
* expr.h: Move protypes and enums to optabs.h.
* expr.c: (gen_move_insn): Relocate from optabs.c.
* genemit.c (main): Include insn-codes.h.
* gengtype.c (open_base_files): Include insn-codes.h.
* asan.c: Include insn-codes.h.
* bb-reorder.c: Ditto.
* builtins.c: Ditto.
* calls.c: Ditto.
* cfgexpand.c: Ditto.
* cilk-common.c: Ditto.
* combine.c: Ditto.
* dojump.c: Ditto.
* dse.c: Ditto.
* except.c: Ditto.
* explow.c: Ditto.
* expmed.c: Ditto.
* function.c: Ditto.
* ifcvt.c: Ditto.
* internal-fn.c: Ditto.
* loop-unroll.c: Ditto.
* lra.c: Ditto.
* modulo-sched.c: Ditto.
* omp-low.c: Ditto.
* postreload.c: Ditto.
* ree.c: Ditto.
* reload.c: Ditto.
* reload1.c: Ditto.
* shrink-wrap.c: Ditto.
* simplify-rtx.c: Ditto.
* stmt.c: Ditto.
* target-globals.c: Ditto.
* targhooks.c: Ditto.
* toplev.c: Ditto.
* tree-if-conv.c: Ditto.
* tree-ssa-forwprop.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-ssa-math-opts.c: Ditto.
* tree-ssa-phiopt.c: Ditto.
* tree-ssa-reassoc.c: Ditto.
* tree-switch-conversion.c: Ditto.
* tree-vect-data-refs.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-loop.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree-vect-slp.c: Ditto.
* tree-vect-stmts.c: Ditto.
* tree-vrp.c: Ditto.
* value-prof.c: Ditto.
* config/aarch64/aarch64-builtins.c: Ditto.
* config/alpha/alpha.c: Ditto.
* config/arm/arm.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/mep/mep.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mips/mips.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/pa/pa.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rx/rx.c: Ditto.
* config/s390/s390.c: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh_treg_combine.cc: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/mul-tables.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/mul-tables.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/vax/vax.c: Ditto.
From-SVN: r217005
James Greenhalgh [Sat, 1 Nov 2014 10:38:42 +0000 (10:38 +0000)]
[Patch 7/7] Remove *_BY_PIECES_P
gcc/
* doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_BY_PIECES_P): Likewise.
* doc/tm.texi: Regenerate.
* system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
SET_BY_PIECES_P, STORE_BY_PIECES_P.
* expr.c (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_BY_PIECES_P): Likewise.
(can_move_by_pieces): Rewrite in terms of
targetm.use_by_pieces_infrastructure_p.
(emit_block_move_hints): Likewise.
(can_store_by_pieces): Likewise.
(store_by_pieces): Likewise.
(clear_storage_hints): Likewise.
(emit_push_insn): Likewise.
(expand_constructor): Likewise.
From-SVN: r217004
James Greenhalgh [Sat, 1 Nov 2014 10:15:51 +0000 (10:15 +0000)]
[Patch 6/7 AArch64] Deprecate *_BY_PIECES_P, move to hookized version
gcc/
* config/aarch64/aarch64.c
(aarch64_use_by_pieces_infrastructre_p): New.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
* config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
From-SVN: r217003
James Greenhalgh [Sat, 1 Nov 2014 10:14:08 +0000 (10:14 +0000)]
[Patch 5/7 mips] Deprecate *_BY_PIECES_P, move to hookized version
gcc/
* config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
(STORE_BY_PIECES_P): Likewise.
* config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(mips_move_by_pieces_p): Rename to...
(mips_use_by_pieces_infrastructure_p): ...this, use new hook
parameters, use the default hook implementation as a
fall-back.
From-SVN: r217002
James Greenhalgh [Sat, 1 Nov 2014 10:12:24 +0000 (10:12 +0000)]
[Patch 4/7 sh] Deprecate *_BY_PIECES_P, move to hookized version
gcc/
* config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(sh_use_by_pieces_infrastructure_p): Likewise.
* config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
(STORE_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
From-SVN: r217001
James Greenhalgh [Sat, 1 Nov 2014 08:44:39 +0000 (08:44 +0000)]
[Patch 3/7 arc] Deprecate *_BY_PIECES_P, move to hookized version
gcc/
* config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
(arc_use_by_pieces_infrastructure_p): Likewise.
* confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
(CAN_MOVE_BY_PIECES): Likewise.
From-SVN: r216999
James Greenhalgh [Sat, 1 Nov 2014 08:38:36 +0000 (08:38 +0000)]
[Patch 2/7 s390] Deprecate *_BY_PIECES_P, move to hookized version
gcc/
* config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
* config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES): Likewise.
(SET_BY_PIECES): Likewise.
(STORE_BY_PIECES): Likewise.
From-SVN: r216998
James Greenhalgh [Sat, 1 Nov 2014 08:13:09 +0000 (08:13 +0000)]
[Patch 1/7] Hookize *_BY_PIECES_P
gcc/
* target.def (use_by_pieces_infrastructure_p): New.
* doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
is deprecated.
(STORE_BY_PIECES_P): Likewise.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
* doc/tm.texi: Regenerate.
* expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
(STORE_BY_PIECES_P): Likewise.
(CLEAR_BY_PIECES_P): Likewise.
(SET_BY_PIECES_P): Likewise.
(STORE_MAX_PIECES): Move to...
* defaults.h (STORE_MAX_PIECES): ...here.
* targhooks.c (get_move_ratio): New.
(default_use_by_pieces_infrastructure_p): Likewise.
* targhooks.h (default_use_by_pieces_infrastructure_p): New.
* target.h (by_pieces_operation): New.
From-SVN: r216996
GCC Administrator [Sat, 1 Nov 2014 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r216994
Uros Bizjak [Fri, 31 Oct 2014 21:56:05 +0000 (22:56 +0100)]
re PR target/63702 (i386.c:36276: possible missing break ?)
PR target/63702
* config/i386/i386.c (ix86_expand_args_builtin): Remove extra
assignment to 'nargs' variable.
From-SVN: r216991
Uros Bizjak [Fri, 31 Oct 2014 21:52:22 +0000 (22:52 +0100)]
re PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)
PR target/63620
* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
* config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
be reloaded through memory.
(*pushxf): Ditto.
(*pushdf): Ditto.
From-SVN: r216990
Jonathan Wakely [Fri, 31 Oct 2014 20:49:40 +0000 (20:49 +0000)]
Make std::vector<bool> meet C++11 allocator requirements.
* include/bits/stl_bvector.h (_Bvector_base): Use allocator_traits.
(_Bvector_base::_Bvector_impl): Use allocator's pointer type.
(_Bvector_base::_M_end_addr()): Convert to raw pointer.
(vector<bool>): Use allocator_traits and _M_end_addr. Add allocator
extended constructors.
* include/bits/vector.tcc (vector<bool>): Use allocator_traits and
_M_end_addr.
* testsuite/23_containers/vector/bool/allocator/copy.cc: New.
* testsuite/23_containers/vector/bool/allocator/minimal.cc: New.
* testsuite/23_containers/vector/bool/allocator/noexcept.cc: New.
* testsuite/23_containers/vector/bool/allocator/copy_assign.cc: New.
* testsuite/23_containers/vector/bool/allocator/move.cc: New.
* testsuite/23_containers/vector/bool/allocator/swap.cc: New.
* testsuite/23_containers/vector/bool/allocator/ext_ptr.cc: New.
* testsuite/23_containers/vector/bool/allocator/move_assign.cc: New.
From-SVN: r216988
Uros Bizjak [Fri, 31 Oct 2014 19:47:36 +0000 (20:47 +0100)]
re PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)
PR target/63620
* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLES that won't
be reloaded through memory.
(*pushxf): Ditto.
(*pushdf): Ditto.
From-SVN: r216987
Jakub Jelinek [Fri, 31 Oct 2014 19:42:39 +0000 (20:42 +0100)]
re PR rtl-optimization/63659 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR rtl-optimization/63659
* ree.c (update_reg_equal_equiv_notes): New function.
(combine_set_extension, transform_ifelse): Use it.
* gcc.c-torture/execute/pr63659.c: New test.
From-SVN: r216985
Jeff Law [Fri, 31 Oct 2014 19:34:18 +0000 (13:34 -0600)]
contrib.texi: Add contribution notes for Balaji Iyer (Cilk+) and Jonny Grant (collect2).
* doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
and Jonny Grant (collect2).
From-SVN: r216984
Richard Biener [Fri, 31 Oct 2014 16:26:43 +0000 (16:26 +0000)]
builtins.c (fold_builtin_atomic_always_lock_free): Use CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where approprate.
2014-10-31 Richard Biener <rguenther@suse.de>
* builtins.c (fold_builtin_atomic_always_lock_free): Use
CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
approprate.
(fold_builtin_expect): Likewise.
(integer_valued_real_p): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
(find_foldable_builtin_expect): Likewise.
* trans-mem.c (thread_private_new_memory): Likewise.
* tree-affine.c (aff_combination_expand): Likewise.
* tree-data-ref.c (initialize_matrix_A): Likewise.
* tree-inline.c (copy_bb): Likewise.
* tree-pretty-print.c (dump_function_name): Likewise.
(print_call_name): Likewise.
* tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
* tree-vect-generic.c (expand_vector_operations_1): Likewise.
* tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
(vect_recog_widen_mult_pattern): Likewise.
(vect_operation_fits_smaller_type): Likewise.
* tree-vrp.c (find_assert_locations_1): Likewise.
* tree-ssa-dom.c (initialize_hash_element): Canonicalize
converts to NOP_EXPR.
From-SVN: r216982
Arnaud Charlet [Fri, 31 Oct 2014 14:49:31 +0000 (15:49 +0100)]
2014-10-31 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb Add an entry for aspect Ghost in table
Canonical_Aspect.
* aspects.ads Add an entry for aspect Ghost in tables
Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and
Implementation_Defined_Aspect.
* einfo.adb: Flags 277 and 278 are now in use.
(Is_Checked_Ghost_Entity): New routine.
(Is_Ghost_Entity): Removed.
(Is_Ghost_Subprogram): Removed.
(Is_Ignored_Ghost_Entity): New routine.
(Set_Is_Checked_Ghost_Entity): New routine.
(Set_Is_Ignored_Ghost_Entity): New routine.
(Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and
Is_Ignored_Ghost_Entity.
* einfo.ads: Add new flags Is_Checked_Ghost_Entity
and Is_Ignored_Ghost_Entity along with usage in nodes.
(Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Is_Ghost_Entity): Removed along with synthesized flag
description and usage in nodes.
(Is_Ghost_Subprogram): Removed along with synthesized flag description
and usage in nodes.
(Is_Ignored_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline.
* freeze.adb (Freeze_Entity): A Ghost type cannot be effectively
volatile.
* par-prag.adb Pragma Ghost does not need special handling by
the parser.
* repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost.
* sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Mark
the type as Ghost when its enclosing context is Ghost.
(Analyze_Incomplete_Type_Decl): Mark the type as Ghost when
its enclosing context is Ghost.
(Analyze_Number_Declaration): Mark the number as Ghost when its
enclosing context is Ghost.
(Analyze_Object_Declaration): Mark the object as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between
initial declaration and completion of a deferred constant.
(Analyze_Object_Contract): A Ghost variable cannot be effectively
volatile, imported or exported.
(Build_Derived_Record_Type): Mark a type extension as Ghost when it
implements a Ghost interface.
(Build_Record_Type): Inherit volatility and "ghostness" from
the parent type.
(Check_Completion): A Ghost entity declared
in a non-Ghost package does not require completion in a body.
(Implements_Ghost_Interface): New routine.
(Process_Full_View): Inherit "ghostness" from the partial view. Verify
the Ghost policy between the partial and full views. Verify the
completion of a Ghost type extension.
* sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed.
* sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark
the subprogram as Ghost when its enclosing context is Ghost.
(Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost
when its enclosing context is Ghost. Verify the Ghost policy
between the spec and body.
(Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between the spec
and body.
(Check_Conformance): A Ghost subprogram profile and a non-Ghost
subprogram profile are not subtype conformant.
(Convention_Of): Removed.
* sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the
"ghostness" from the spec. Verify the Ghost policy between
the spec and body.
(Analyze_Private_Type_Declaration): Mark the type as Ghost when its
enclosing context is Ghost.
(Requires_Completion_In_Body): New routine.
(Unit_Requires_Body): Use Requires_Completion_In_Body.
(Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update
comment on usage and all uses of P in the body. Use
Requires_Completion_In_Body.
* sem_ch7.ads (Unit_Requires_Body): Rename formal parameter P
to Pack_Id, update comment on usage and all uses of P in the body.
* sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness"
from the renamed excention.
(Analyze_Generic_Renaming): Inherit the "ghostness" from the
renamed generic subprogram.
(Analyze_Object_Renaming): Inherit the "ghostness" from the renamed
object.
(Analyze_Package_Renaming): Inherit the "ghostness" from the
renamed package.
(Analyze_Subprogram_Renaming): Inherit the "ghostness" from the
renamed subprogram.
* sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception
as Ghost when its enclosing context is Ghost.
* sem_ch12.adb (Analyze_Generic_Package_Declaration,
Analyze_Generic_Subprogram_Declaration): Mark an exception as
Ghost when its enclosing context is Ghost.
(Preanalyze_Actuals): Remove obsolete check.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
for aspect Ghost.
(Check_Aspect_At_Freeze_Point): Aspects
Depends and Global do no need special checking at freeze point.
(Insert_After_SPARK_Mode): Update comment on usage.
* sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost.
* sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags.
(Analyze_Abstract_State): Update the grammar of the pragma. Add
formal parameter Pack_Id along with comment on usage. Mark an
abstract state as Ghost when its enclosing context is Ghost. Add
processing for option Ghost.
(Analyze_Constituent): Verify
that a Ghost abstract state is refined by Ghost constituents.
(Analyze_Pragma): "Ghost" is now a valid policy. Add checks
related to the use and placement of Check_Policy Ghost. Add
processing for pragma Ghost.
(Check_Ghost_Constituent): New routine.
(Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion.
(Process_Convention): Remove obsolete check.
(Set_Convention_From_Pragma): Remove the processing for convention
Ghost.
* sem_res.adb (Check_Ghost_Context): New routine.
(Resolve_Call): Verify that a reference to a Ghost entity appears in a
suitable context. Verify the Ghost polity between point of declaration
and point of use.
(Resolve_Entity_Name): Verify that a reference to
a Ghost entity appears in a suitable context. Verify the Ghost
polity between point of declaration and point of use.
* sem_util.adb (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* sem_util.ads (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* snames.adb-tmpl (Get_Convention_Id): Remove the entry for
convention Ghost.
(Get_Convention_Name): Remove the entry for convention Ghost.
* snames.ads-tmpl Remove the convention id for Ghost. Add a
pragma id for Ghost.
2014-10-31 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi: Add description of --RTS option for ASIS tools.
From-SVN: r216981
Olivier Hainque [Fri, 31 Oct 2014 14:33:16 +0000 (14:33 +0000)]
Makefile.in (arm-vxworks): Update target pairs.
2014-10-31 Olivier Hainque <hainque@adacore.com>
* gcc-interface/Makefile.in (arm-vxworks): Update target pairs.
From-SVN: r216980
Arnaud Charlet [Fri, 31 Oct 2014 14:28:08 +0000 (15:28 +0100)]
[multiple changes]
2014-10-31 Vincent Celier <celier@adacore.com>
* prj-part.adb (Parse_Single_Project): Call Set_Display_Name_Of.
* prj-proc.adb (Recursive_Process): Call Display_Name_Of to
get the project Display_Name.
* prj-tree.adb (Display_Name_Of): New function
(Set_Display_Name_Of): New procedure.
(Create_Project): Call Set_Display_Name_Of.
* prj-tree.ads (Display_Name_Of): New function.
(Set_Display_Name_Of): New procedure.
(Project_Node_Record): New component Display_Name.
(Project_Name_And_Node): Remove component Display_Name.
* prj-conf.adb (Parse_Project_And_Apply_Config): Use the full
Config_File_Path as the Config_File_Name, not just its simple
name.
2014-10-31 Thomas Quinot <quinot@adacore.com>
* get_scos.adb: Minor reformatting.
2014-10-31 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Formal_Container_Loop): Create block to
capture declaration for cursor to prevent spurious errors when
several formal iterators that use the same cursoe name appear
in the same context.
From-SVN: r216978
Richard Biener [Fri, 31 Oct 2014 13:43:53 +0000 (13:43 +0000)]
genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of CONVERT_EXPRs in generated code.
2014-10-31 Richard Biener <rguenther@suse.de>
* genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
CONVERT_EXPRs in generated code.
(dt_simplify::gen): Likewise.
From-SVN: r216977