Commit Graph

139780 Commits

Author SHA1 Message Date
François Dumont
5bc1c07c4a stl_algobase.h (__miter_base): Move...
2015-07-16  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_algobase.h (__miter_base): Move...
	* include/bits/cpp_type_traits.h: ...here.
	* include/debug/functions.h (__foreign_iterator_aux): Use latter.
	* testsuite/23_containers/vector/debug/insert7_neg.cc: New.

From-SVN: r225902
2015-07-16 19:17:26 +00:00
Nathan Sidwell
a4cb876dc9 plugin-nvptx.c (link_ptx): Constify string argument.
libgomp/
	* plugin/plugin-nvptx.c (link_ptx): Constify string argument.
	Workaround driver library const error.
	(struct nvptx_tdata, nvptx_tdata_t): New.
	(GOMP_OFFLOAD_load_image): Use struct for target_data's real
	type.

	gcc/
	* config/nvptx/mkoffload.c (process): Constify mapping variables.
	Define target data struct and initialize it.

From-SVN: r225897
2015-07-16 17:17:31 +00:00
Kyrylo Tkachov
38ef5e6add [ARM][testsuite] Do not override -mcpu in no-volatile-in-it.c
* gcc.target/arm/no-volatile-in-it.c: Skip if -mcpu is overriden.

From-SVN: r225892
2015-07-16 15:30:45 +00:00
Vladimir Makarov
b81a2f0dbc re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3 or -miamcu)
2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66626
	* ira.h (emit-rtl.h): Include.
	(non_spilled_static_chain_regno_p): New.
	* ira-color.c (setup_profitable_hard_regs): Clear profitable regs
	unless it is non spilled static chain pseudo.
	(assign_hard_rego): Spill memory profitable allocno unless it is
	non spilled static chain pseudo.
	(allocno_spill_priority_compare): Put non spilled static chain
	pseudo at the end of sorted array.
	(improve_allocation): Do nothing if we have static chain and
	non-local goto.
	(allocno__priority_compare_func): Put non spilled static chain
	pseudo at the beginning of sorted array.
	(move_spill_restore): Ignore non spilled static chain pseudo.
	* ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
	to non spilled static chain pseudo.
	* lra-assigns.c (pseudo_compare_func): Put non spilled static chain
	pseudo at the beginning of sorted array.
	(spill_for): Spill non spilled static chain pseudo last.
	* lra-constraints.c (lra_constraints): Remove static chain pseudo
	check for equivalence.

2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66626
	* gcc.target/i386/pr66626-2.c: New.

From-SVN: r225891
2015-07-16 15:26:35 +00:00
Martin Liska
a7d1f3fedc re PR ipa/66896 (ipa-prop.c:2479 runtime error: member call on null pointer of type 'struct ipa_polymorphic_call_context')
Fix PR ipa/66896.

	* g++.dg/ipa/pr66896.c: New test.
	PR ipa/66896.
	* ipa-prop.c (update_jump_functions_after_inlining): Create properly
	dst_ctx if it does not exist.

From-SVN: r225887
2015-07-16 14:48:18 +00:00
Martin Liska
ce7bc090cd hash_set: add iterator and remove method.
* hash-set.h (remove): New function.
	(iterator): New iteration class for hash_set.

From-SVN: r225885
2015-07-16 14:11:52 +00:00
Richard Sandiford
281e728b57 genattrtab.c (make_canonical): Add a file_location parameter.
gcc/
	* genattrtab.c (make_canonical): Add a file_location parameter.
	Use fatal_at rather than fatal.
	(get_attr_value): Likewise.  Update call to make_canonical.
	(fill_attr, make_length_attrs, optimize_attrs, gen_attr)
	(make_internal_attr): Update calls accordingly.

From-SVN: r225884
2015-07-16 13:55:50 +00:00
Richard Sandiford
5d2d3e43b9 read-md.h (message_with_line, [...]): Delete.
gcc/
	* read-md.h (message_with_line, error_with_line): Delete.
	* read-md.c (message_with_line, error_with_line): Delete.
	* gensupport.h: Include read-md.h.
	(md_rtx_info): New structure.
	(read_md_rtx): Use it.  Return a bool success value.
	* gensupport.c (read_md_rtx): Likewise.
	* genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genattrtab.c (insn_code_number): Delete.
	(optimize_attrs): Add a max_insn_code parameter and use it instead
	of insn_code_number.
	(gen_attr): Take an md_rtx_info rather than an rtx and lineno.
	Use *_at rather than *_with_line functions.
	(gen_insn): Likewise.
	(gen_delay): Likewise.
	(gen_insn_reserv): Likewise.
	(gen_bypass): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.  Use a local max_insn_code
	variable instead of insn_code_number.
	* genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
	an rtx.  Use fatal_at rather than fatal.
	(gen_query_cpu_unit, gen_bypass, gen_excl_set)
	(gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
	(gen_absence_set, gen_final_absence_set, gen_automaton)
	(gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
	(main): Update after interface changes.
	* gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
	and code number.
	(main): Update after interface changes.
	* genconditions.c (main): Use new read_md_rtx interface.
	* genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
	(gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
	(main): Update after interface changes.
	* genemit.c (insn_code_number, insn_index_number): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	Use fatal_at rather than fatal.
	(gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
	rather than fatal.
	(gen_split): Likewise.
	(main): Update after interface changes.
	* genextract.c (line_no): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	Update call to walk_rtx.
	(VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
	rather than message_with_line.
	(walk_rtx): Add an md_rtx_info argument.  Update call to
	VEC_safe_set_locstr.
	(main): Update after interface changes.
	* genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
	and lineno.  Use error_at rather than separate message_with_line
	calls and have_error assignments.
	(main): Update after interface changes.
	* genmddump.c (main): Use new read_md_rtx interface.
	* genopinit.c (insn): Take an md_rtx_info rather than an rtx.
	(main): Update after interface changes.
	* genoutput.c (next_code_number): Delete.
	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
	(gen_peephole, gen_expand, gen_split): Likewise.
	(note_constraint): Likewise.  Use *_at rather than *_with_line
	functions.
	(main): Update after interface changes.
	* genpeep.c (gen_peephole): Take an md_rtx_info rather than an
	rtx and lineno.
	(main): Update after interface changes.
	* genpreds.c (process_define_predicate): Take an md_rtx_info rather
	than an rtx and lineno.
	(process_define_constraint): Likewise.
	(process_define_register_constraint): Likewise.
	(main): Update after interface changes.
	* genrecog.c (next_insn_code, pattern_lineno): Delete.
	(validate_pattern): Replace top-level rtx with an md_rtx_info.
	Use *_at rather than *_with_line functions.
	(match_pattern_2): Likewise.
	(match_pattern_1, match_pattern): Add an md_rtx_info parameter.
	(get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
	Use *_at rather than *_with_line functions.
	* gentarget-def.c (add_insn): New function.
	(main): Use it.  Use new read_md_rtx interface.

From-SVN: r225883
2015-07-16 13:52:22 +00:00
Richard Sandiford
c9f84f2e1d gensupport.h (compute_test_codes): Take a file_location rather than a line number.
gcc/
	* gensupport.h (compute_test_codes): Take a file_location rather
	than a line number.
	* gensupport.c (compute_test_codes): Likewise.  Use *_at functions
	rather than *_with_line functions.
	(process_define_predicate): Update call to compute_test_codes.
	* genpreds.c (validate_exp): Take a file_location rather than a
	line number.  Use *_at functions rather than *_with_line functions.
	(process_define_predicate): Update call to validate_exp.
	(constraint_data): Replace lineno field with a file_location.
	(add_constraint): Take a file_location rather than a line number.
	Use *_at functions rather than *_with_line functions.  Fix error
	message for address constraints.  Update after changes to
	validate_exp, constraint_data and compute_test_codes.
	(process_define_constraint): Update accordingly.
	(process_define_register_constraint): Likewise.

From-SVN: r225882
2015-07-16 13:50:08 +00:00
Richard Sandiford
ca018d3cc0 genoutput.c (data): Use a file_location to record the source position.
gcc/
	* genoutput.c (data): Use a file_location to record the source
	position.
	(nothing): Delete.
	(idata, idata_end): Remove initialization.
	(constraint_data): Replace lineno with a file_location.
	(output_insn_data): Update after changes to data.
	(gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
	(scan_operands): Likewise, using *_at rather than *_with_line
	functions.
	(process_template): Likewise.
	(validate_insn_alternatives): Likewise.
	(validate_insn_operands): Likewise.
	(validate_optab_operands): Likewise.
	(init_insn_for_nothing): Initialize idata and idata_end.
	(note_constraint): Update after changes to constraint_data,
	using at rather than with_line functions.
	(mdep_constraint_len): Take a file_location rather than a
	line number.  Use at rather than with_line functions.

From-SVN: r225881
2015-07-16 13:47:48 +00:00
Richard Sandiford
8f2463105b read-md.h (fatal_at): Declare.
gcc/
	* read-md.h (fatal_at): Declare.
	* read-md.c (fatal_at): New function.
	* genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
	to record the source position.
	(check_attr_test): Take a file_location instead of a line number.
	Use fatal_at instead of fatal.
	(check_attr_value): Update after above changes, using "at"
	rather than "with_line" reporting functions.
	(convert_set_attr_alternative): Likewise.
	(gen_attr): Likewise.
	(check_defs): Likewise.  Don't assign to read_md_filename.
	(gen_insn): Update initialization after above changes.
	(gen_delay): Likewise.
	(write_insn_cases): Print the filename for a define_peephole.
	(gen_insn_reserv): Take a line number as argument and update
	the call to check_attr_test.
	(main): Pass a line number to gen_insn_reserv.

From-SVN: r225880
2015-07-16 13:45:20 +00:00
Richard Sandiford
cc4726077d read-md.h (file_location): New structure.
gcc/
	* read-md.h (file_location): New structure.
	(directive_handler_t): Take a file_location rather than a line number.
	(message_at, error_at): Declare.
	(read_skip_construct): Delete.
	* read-md.c (message_with_line_1): Replace with...
	(message_at_1): ...this new function.
	(message_at, error_at): New functions.
	(message_with_line, error_with_line): Update to use message_at_1.
	(handle_enum): Take a file_location rather than a line number
	and use error_at for error reporting.
	(handle_include): Likewise.
	(read_skip_construct): Likewise.  Make static.
	(handle_file): Update after above changes.  Pass a file_location
	rather than a line number to handle_directive.
	* gensupport.c (queue_elem): Replace separate filename and lineno
	with a file_location.
	(queue_pattern): Replace filename and lineno arguments with a
	file_location.  Update after change to queue_elem.
	(process_define_predicate): Replace lineno argument with a
	file_location and use error_at for error reporting.  Update
	after above changes.
	(process_rtx): Likewise.
	(subst_pattern_match): Likewise.
	(get_alternatives_number): Likewise.
	(alter_predicate_for_insn): Likewise.
	(rtx_handle_directive): Likewise.
	(is_predicable): Update after above changes, using error_at rather
	than error_with_line.
	(has_subst_attribute): Likewise.
	(identify_predicable_attribute): Likewise.
	(alter_attrs_for_subst_insn): Likewise.
	(process_one_cond_exec): Likewise.
	(process_substs_on_one_elem): Likewise.
	(process_define_subst): Likewise.
	(check_define_attr_duplicates): Likewise.
	(read_md_rtx): Update after change to queue_elem.

From-SVN: r225879
2015-07-16 13:41:41 +00:00
Richard Sandiford
1e2e5efadd genoutput.c (next_index_number): Delete.
gcc/
	* genoutput.c (next_index_number): Delete.
	(data): Remove index_number.
	(gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
	(main): Remove manipulation of next_index_number.

From-SVN: r225876
2015-07-16 13:20:48 +00:00
Richard Sandiford
5839708b09 genattrtab.c (check_attr_value): Remove handling of null attrs.
gcc/
	* genattrtab.c (check_attr_value): Remove handling of null attrs.
	(make_canonical): Likewise.

From-SVN: r225875
2015-07-16 13:16:39 +00:00
Eric Botcazou
ce967e936b sparc.md (save_stack_nonlocal): Use adjust_address instead of adjust_address_nv.
* config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
	instead of adjust_address_nv.
	(restore_stack_nonlocal): Likewise.
	(nonlocal_goto): Likewise.

From-SVN: r225874
2015-07-16 13:00:55 +00:00
Tom de Vries
7781d2626e Handle exit phi without header phi in create_parallel_loop
2015-07-16  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_parallel_loop): Handle case that exit phi does
	not have a corresponding loop header phi.

From-SVN: r225873
2015-07-16 11:51:38 +00:00
Tom de Vries
79855460bd Handle unused reduction in create_loads_for_reductions
2015-07-16  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_loads_for_reductions): Handle case that
	reduction is unused.

From-SVN: r225872
2015-07-16 11:51:28 +00:00
Richard Biener
ef3b59ace9 re PR tree-optimization/66894 (wrong code at -Os and above on x86_64-linux-gnu)
2015-07-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66894
	* tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
	about deriving NE_EXPR from truncated values.

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

From-SVN: r225870
2015-07-16 11:27:34 +00:00
Martin Liska
fb0b291494 Add new object_allocator and clean-up allocator usage.
* c-format.c (static void check_format_info_main): Use
	object_allocator instead of pool_allocator.
	(check_format_arg): Likewise.
	(check_format_info_main): Likewise.
	* alloc-pool.h
	(object_allocator): Add new class.
	(pool_allocator::initialize): Use the underlying class.
	(pool_allocator::allocate): Likewise.
	(pool_allocator::remove): Likewise.
	(operator new): A new generic allocator.
	* asan.c (struct asan_mem_ref): Remove unused members.
	(asan_mem_ref_new): Replace new operator with
	object_allocator::allocate.
	(free_mem_ref_resources): Change deallocation.
	* cfg.c (initialize_original_copy_tables): Replace pool_allocator
	with object_allocator.
	* config/sh/sh.c (add_constant): Replace new operator with
	object_allocator::allocate.
	(sh_reorg): Change call to a release method.
	* cselib.c (struct elt_list): Remove unused members.
	(new_elt_list): Replace new operator with
	object_allocator::allocate.
	(new_elt_loc_list): Likewise.
	(new_cselib_val): Likewise.
	(unchain_one_elt_list): Change delete operator with remove method.
	(unchain_one_elt_loc_list): Likewise.
	(unchain_one_value): Likewise.
	(cselib_finish): Release newly added static allocators.
	* cselib.h (struct cselib_val): Remove unused members.
	(struct elt_loc_list): Likewise.
	* df-problems.c (df_chain_alloc): Replace pool_allocator with
	object_allocator.
	* df-scan.c (struct df_scan_problem_data): Likewise.
	(df_scan_alloc): Likewise.
	* df.h (struct dataflow): Likewise.
	* dse.c (struct read_info_type): Likewise.
	(struct insn_info_type): Likewise.
	(struct dse_bb_info_type): Likewise.
	(struct group_info): Likewise.
	(struct deferred_change): Likewise.
	(get_group_info): Likewise.
	(delete_dead_store_insn): Likewise.
	(free_read_records): Likewise.
	(replace_read): Likewise.
	(check_mem_read_rtx): Likewise.
	(scan_insn): Likewise.
	(dse_step1): Likewise.
	(dse_step7): Likewise.
	* et-forest.c (struct et_occ): Remove unused members.
	(et_new_occ): Use allocate instead of new operator.
	(et_new_tree): Likewise.
	(et_free_tree): Call release method explicitly.
	(et_free_tree_force): Likewise.
	(et_free_pools): Likewise.
	(et_split): Use remove instead of delete operator.
	* et-forest.h (struct et_node): Remove unused members.
	* ipa-cp.c: Change pool_allocator to object_allocator.
	* ipa-inline-analysis.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-prop.h: Likewise.
	* ira-build.c (initiate_cost_vectors): Cast return value.
	(ira_allocate_cost_vector): Likewise.
	* ira-color.c (struct update_cost_record): Remove unused members.
	* lra-int.h (struct lra_live_range): Likewise.
	(struct lra_copy): Likewise.
	(struct lra_insn_reg): Likewise.
	* lra-lives.c (lra_live_ranges_finish): Release new static allocator.
	* lra.c (new_insn_reg): Replace new operator with allocate method.
	(free_insn_regs): Same for operator delete.
	(finish_insn_regs): Release new static allocator.
	(finish_insn_recog_data): Likewise.
	(lra_free_copies): Replace delete operator with remove method.
	(lra_create_copy): Replace operator new with allocate method.
	(invalidate_insn_data_regno_info): Same for remove method.
	* regcprop.c (struct queued_debug_insn_change): Remove unused members.
	(free_debug_insn_changes): Replace delete operator with remove method.
	(replace_oldest_value_reg): Replace operator new with allocate method.
	(pass_cprop_hardreg::execute): Release new static variable.
	* sched-deps.c (sched_deps_init): Change pool_allocator to
	object_allocator.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* stmt.c (expand_case): Likewise.
	(expand_sjlj_dispatch_table): Likewise.
	* tree-sra.c (struct access): Remove unused members.
	(struct assign_link): Likewise.
	(sra_deinitialize): Release newly added static pools.
	(create_access_1):Replace operator new with allocate method.
	(build_accesses_from_assign): Likewise.
	(create_artificial_child_access): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
	pool_allocator to object_allocator.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* var-tracking.c (onepart_pool_allocate): New function.
	(unshare_variable): Use the newly added function.
	(variable_merge_over_cur): Likewise.
	(variable_from_dropped): Likewise.
	(variable_was_changed): Likewise.
	(set_slot_part): Likewise.
	(emit_notes_for_differences_1): Likewise.
	(vt_finalize): Release newly added static pools.

From-SVN: r225869
2015-07-16 11:26:05 +00:00
Martin Jambor
56b4006243 Give struct param_aa_atatus and struct func_body_info an ipa_ prefix.
2015-07-16  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
	all uses.  Fix two typos in its general comment.
	(func_body_info): Rename to ipa_func_body_info.  Adjust all uses.

From-SVN: r225867
2015-07-16 11:48:20 +02:00
Ilya Enkovich
6de59c8aaa linux-common.h (LINK_MPX): New.
gcc/

	* config/i386/linux-common.h (LINK_MPX): New.
	(MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
	* configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
	indicating '-z bndplt' support by linker.
	* configure: Regenerate.
	* config.in: Regenerate.

libmpx/

	* configure.ac: Remove link_mpx.
	* libmpx.spec.in: Likewise.
	* configure: Regenerate.

From-SVN: r225862
2015-07-16 08:36:02 +00:00
Richard Biener
79d4f7c66e fold-const.c (fold_widened_comparison): Remove.
2015-07-16  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_widened_comparison): Remove.
	(fold_sign_changed_comparison): Likewise.
	(fold_comparison): Move widened and sign-changed comparison
	simplification ...
	* match.pd: ... to patterns here.
	* generic-match-head.c: Include target.h.
	* gimple-match-head.c: Likewise.

	* gcc.dg/tree-ssa/pr21031.c: Adjust.

From-SVN: r225861
2015-07-16 08:28:51 +00:00
Richard Biener
612b9d1364 tree-ssa-dom.c (dom_valueize): New function.
2015-07-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (dom_valueize): New function.
	(record_temporary_equivalences): Also record equivalences
	for dominating stmts that have uses of equivalences we are
	about to record.

From-SVN: r225860
2015-07-16 07:19:24 +00:00
Bin Cheng
4c3b378b5a tree-ssa-loop-ivopts.c (add_candidate): Remove call to add_autoinc_candidates.
* tree-ssa-loop-ivopts.c (add_candidate): Remove call to
	add_autoinc_candidates.
	(add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
	(add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
	(add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
	(add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
	Call new function.
	(add_iv_value_candidates): Rename to add_iv_candidate_for_use.
	(add_iv_candidate_for_use): Rename from add_iv_value_candidates.
	Remove parameter struct iv*.  Call add_autoinc_candidates here.
	(add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
	(add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
	Call new function.
	(find_iv_candidates): Call new functions.

From-SVN: r225859
2015-07-16 05:49:47 +00:00
Sandra Loosemore
a6885f12c7 nios2.c (nios2_emit_stack_limit_check): Fix uninitialized-variable warning.
2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
	uninitialized-variable warning.

From-SVN: r225857
2015-07-15 23:30:31 -04:00
Kaz Kojima
fdc2ce3fb0 re PR target/65249 (unable to find a register to spill in class 'R0_REGS' when compiling protobuf on sh4)
PR target/65249
* config/sh/sh.md (movdi): Split simple reg move to two movsi when
  the destination is R0 so as to lower R0-register pressure.

From-SVN: r225856
2015-07-16 00:48:33 +00:00
GCC Administrator
58b1eb4330 Daily bump.
From-SVN: r225855
2015-07-16 00:16:12 +00:00
Uros Bizjak
baca1278a3 re PR target/66866 (incorrect load address on manual vector shuffle)
PR target/66866
	* config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
	* config/i386/i386.c (ix86_expand_pextr): New function.
	(ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
	for non-lowpart subregs.
	* config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
	(insv<mode>): Use SWI248 mode iterator.
	(insv<mode>_1): Ditto.

testsuite/ChangeLog:

	PR target/66866
	* g++.dg/pr66866.C: New test.

From-SVN: r225852
2015-07-16 00:20:17 +02:00
Aditya Kumar
1f8ba82489 One of the code refactorings introducing phi node iterators modified the semantics of this code.
One of the code refactorings introducing phi node iterators modified
the semantics of this code.  Revert that change to what was before.

        * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
        iterator to use_stmt.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r225851
2015-07-15 21:37:07 +00:00
Aditya Kumar
d7f49f78a6 [graphite] discard scops for which entry==exit
In this patch we discard the scops where entry and exit are the same BB.
This is an effort to remove graphite-scop-detection.c:limit_scops.
Removing the limit_scops function introduces correctness regressions.
We are making relevant changes in incremental steps to fix those bugs,
and finally we intend to remove limit_scops.

2015-06-29  Aditya Kumar  <aditya.k7@samsung.com>
                Sebastian Pop <s.pop@samsung.com>

        * graphite-scop-detection.c (build_scops_1): Discard scops for which entry==exit

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r225850
2015-07-15 21:37:01 +00:00
Aditya Kumar
1ee9ef73c3 graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in case of a return statement in scop.
* graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
        case of a return statement in scop.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r225849
2015-07-15 21:36:55 +00:00
Aditya Kumar
4bc4dd11ec graphite-sese-to-poly.c (parameter_index_in_region): Only handle INTEGER_TYPE parameters.
* graphite-sese-to-poly.c (parameter_index_in_region): Only handle
        INTEGER_TYPE parameters.
        (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
        VECTOR_CST in scan_tree_for_params.
        (add_conditions_to_domain): Only constrain on INTEGER_TYPE.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r225848
2015-07-15 21:36:49 +00:00
Andrew MacLeod
48d859bb42 gimple-pretty-print.h: Don't include pretty-print.h.
* gimple-pretty-print.h: Don't include pretty-print.h.
	* tree-streamer.h: Don't include lto-streamer.h.
	* gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
	* gimple-streamer-in.c: Remove redundant includes.
	* gimple-streamer-out.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* lto/lto.c: Remove redundant includes.

From-SVN: r225847
2015-07-15 19:57:03 +00:00
Andrew MacLeod
903f5c23c8 opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't include input.h.
2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
	include input.h.
	* opts.c: Remove multiline #include comment.


2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* java/expr.c: Remove multiline #include comment.


2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* fortran/trans-types.c: Remove multiline #include comment.


2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* c-family/c-opts.c: Remove multiline #include comment.

From-SVN: r225846
2015-07-15 19:50:23 +00:00
Nathan Sidwell
852b55f9af mkoffload.c (process): Add C++ protection to emitted code.
* config/nvptx/mkoffload.c (process): Add C++ protection to
	emitted code.

From-SVN: r225844
2015-07-15 18:54:18 +00:00
Michael Meissner
58b62eaab2 re PR libgcc/66854 (libgcc2.c:1846:9: internal compiler error: Segmentation fault)
2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/66854
	* config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
	null before IEEE 128-bit floating point support patch.

From-SVN: r225843
2015-07-15 17:15:37 +00:00
Bill Schmidt
34222cd6cc simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) != {0,...,0} ? a : b for vector modes.
[gcc]

2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* simplify-rtx.c (simplify_ternary_operation): Add simplification
	for (!c) != {0,...,0} ? a : b for vector modes.

[gcc/testsuite]

2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-cmp-sel.c: New test.

From-SVN: r225840
2015-07-15 16:31:46 +00:00
Paolo Bonzini
ff302741f1 Limit AA walking when inlining analysis examines parameters
2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
	    Martin Jambor  <mjambor@suse.cz>

	* ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
	struct func_body_info* instead of struct ipa_node_params*, expecting
	fbi->info to be filled in.  Replace throughout.  Adjust call to
	ipa_load_from_parm_agg.
	(set_cond_stmt_execution_predicate): Accept struct func_body_info*
	instead of struct ipa_node_params*.  Adjust calls to other functions
	so that they pass either fbi or fbi->info.
	(set_switch_stmt_execution_predicate): Likewise.
	(will_be_nonconstant_predicate): Likewise.
	(compute_bb_predicates): Likewise.
	(estimate_function_body_sizes): Move asserts earlier.  Fill in
	struct func_body_info, replace parms_info with fbi.info.  Adjust
	calls to functions that now accept struct func_body_info.
	* ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
	(struct func_body_info): Likewise.
	(ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
	remove static.  Adjust callers.
	(ipa_load_from_parm_agg): Remove.
	* ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
	(func_body_info): Likewise.
	(ipa_load_from_parm_agg): Adjust prototype.


Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r225838
2015-07-15 17:58:43 +02:00
Tom de Vries
7392b0906f check_GNU_style.sh: Fix quoting in cat_with_prefix
2015-07-15  Tom de Vries  <tom@codesourcery.com>

	* check_GNU_style.sh (cat_with_prefix): Fix quoting.

From-SVN: r225837
2015-07-15 15:41:21 +00:00
Trevor Saunders
6b8068d653 remove some usage of expr_list from read_rtx
gcc/ChangeLog:

2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gensupport.c (rtx_handle_directive): Adjust.
	* read-rtl.c (apply_iterators): Take vector to add rtxs to
	instead of expr list rtx.
	(add_define_attr_for_define_subst): Likewise.
	(add_define_subst_attr): Likewise.
	(read_subst_mapping): Likewise.
	(read_rtx): Likewise.
	* rtl.h (read_rtx): Adjust.

From-SVN: r225833
2015-07-15 14:38:13 +00:00
Jason Merrill
0467e3ebef re PR c++/65091 (decltype(~arg) fails for template functions)
PR c++/65091
	* parser.c (cp_parser_unqualified_id): Don't accept ~x in a
	template if there is no type x in scope.

From-SVN: r225831
2015-07-15 10:13:22 -04:00
Kyrylo Tkachov
49f88e4333 [AArch64] Use cinc mnemonic for *csinc2<mode>_insn
* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.

From-SVN: r225830
2015-07-15 14:11:18 +00:00
Uros Bizjak
e6c9b417de re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64)
PR target/58066
	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
	(*tls_local_dynamic_base_64_<mode>): Ditto.
	(*tls_local_dynamic_base_64_largepic): Ditto.
	(tls_global_dynamic_64_<mode>): Update expander pattern.
	(tls_local_dynamic_base_64_<mode>): Ditto.

From-SVN: r225829
2015-07-15 15:42:07 +02:00
Maxim Blumenthal
28ef6a27c8 Fix libgomp tests.
2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>

libgomp/
	* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
	of EPS parameter from integer to real.
	* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
	type of EPS parameter from integer to real.

From-SVN: r225827
2015-07-15 13:13:10 +00:00
Richard Biener
55cf394666 fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var == 1 -> bool_var simplifications ...
2015-07-15  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
	and bool_var == 1 -> bool_var simplifications ...
	* match.pd: ... to patterns here.  Factor out negate_expr_p
	cases from the A - B -> A + (-B) patterns as negate_expr_p
	predicate and add a -(A + B) -> (-B) - A pattern.

From-SVN: r225825
2015-07-15 12:25:57 +00:00
Richard Biener
aa6cf07ea9 objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }...
2015-07-15  Richard Biener  <rguenther@suse.de>

	* lib/objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove
	{ -O3 -fomit-frame-pointer },
	{ -O3 -fomit-frame-pointer -funroll-loops } and
	{ -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions }
	in favor of
	{ -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
	  -finline-functions }

From-SVN: r225821
2015-07-15 11:47:54 +00:00
Robert Suchanek
8e8886f62c Fix restoration of hi/lo in MIPS64R2 interrupt handlers.
gcc/
	* config/mips/mips.c (mips_emit_save_slot_move): Fix typo.

gcc/testsuite/
	* gcc.target/mips/interrupt_handler-5.c: New test.

From-SVN: r225820
2015-07-15 11:43:05 +00:00
Matthew Fortune
0256a844ad Support new interrupt handler options.
gcc/
	* config/mips/mips.c (mips_int_mask): New enum.
	(mips_shadow_set): Likewise.
	(int_mask): New variable.
	(use_shadow_register_set_p): Change type to enum mips_shadow_set.
	(machine_function): Add int_mask and use_shadow_register_set.
	(mips_attribute_table): Add attribute handlers for interrupt and
	use_shadow_register_set.
	(mips_interrupt_mask): New static function.
	(mips_handle_interrupt_attr): Likewise.
	(mips_handle_use_shadow_register_set_attr): Likewise.
	(mips_use_shadow_register_set): Change return type to enum
	mips_shadow_set.  Add argument handling for use_shadow_register_set
	attribute.
	(mips_interrupt_extra_called_saved_reg_p): Update the conditional to
	compare with mips_shadow_set enum.
	(mips_compute_frame_info): Add interrupt mask and
	use_shadow_register_set to per-function information structure.
	Add a stack slot for EPC unconditionally.
	(mips_expand_prologue): Compare use_shadow_register_set value
	with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
	masked interrupt register but in EIC mode use K0 and save Cause in K0.
	EPC saved and restored unconditionally.  Use PMODE_INSN macro when
	copying the stack pointer from the shadow register set.
	* config/mips/mips.h (SR_IM0): New define.
	* config/mips/mips.md (mips_rdpgpr): Rename to...
	(mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
	* doc/extend.texi (Declaring Attributes of Functions): Document
	optional arguments for interrupt and use_shadow_register_set
	attributes.

gcc/testsuite/
	* gcc.target/mips/interrupt_handler-4.c: New test.

Co-Authored-By: Robert Suchanek <robert.suchanek@imgtec.com>

From-SVN: r225819
2015-07-15 11:42:50 +00:00
Robert Suchanek
6a2b848b31 Support interrupt handlers with hard-float.
gcc/
	* config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
	interrupt attribute.
	(mips_expand_prologue): Disable the floating point unit in an ISR.
	* config/mips/mips.h (SR_COP1): New define.

From-SVN: r225818
2015-07-15 11:42:34 +00:00
Ilya Enkovich
22dd66d46a re PR testsuite/66734 (Many MPX tests are skipped)
PR testsuite/66734
	* gcc.dg/lto/lto.exp: Initialize MPX.

From-SVN: r225815
2015-07-15 09:56:00 +00:00