Commit Graph

139780 Commits

Author SHA1 Message Date
Ian Lance Taylor
525a825bc6 compiler: Don't make temporaries for constant expressions.
Fixes golang/go#11039.
    
    Reviewed-on: https://go-review.googlesource.com/10645

From-SVN: r226180
2015-07-24 17:22:03 +00:00
Kyrylo Tkachov
4e1952ab19 [obvious] Use std::swap instead of manually swapping in a few more places
* alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
	manually swapping values.
	* cse.c (fold_rtx): Likewise.
	* lra-eliminations.c (form_sum): Likewise.

From-SVN: r226179
2015-07-24 16:46:04 +00:00
Joseph Myers
317b564092 * nl.po: Update.
From-SVN: r226177
2015-07-24 17:44:23 +01:00
Joseph Myers
d57937bbcf be.po, [...]: Update.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po,
	zh_TW.po: Update.
	* uk.po: New file.

From-SVN: r226175
2015-07-24 17:41:44 +01:00
Jonathan Wakely
fa0ed2b062 * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
(_M_load_and_test_until): Whitespace.
	(_M_load_and_test): Value-initialize the unused durations.
	(_M_load_when_equal): Add missing return value.

From-SVN: r226174
2015-07-24 17:30:04 +01:00
Uros Bizjak
776280c4a8 re PR target/64003 (valgrind complains about get_attr_length_nobnd in insn-attrtab.c from i386.md)
PR target/64003
	* config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
	* config/i386/i386.md (maybe_prefix_bnd): New attribute.
	(*jcc_1, *jcc_2, jump, simple_return_internal)
	(simple_return_pop_internal): Set attribute maybe_prefix_bnd.
	Set length_nobnd attribute instead of length attribute.
	(indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
	(length_nobnd): Remove attribute.
	(length): Remove length_nobnd processing.

From-SVN: r226173
2015-07-24 18:25:56 +02:00
Nathan Sidwell
72500605c1 gimplify.c (omp_default_clause): New function.
* gimplify.c (omp_default_clause): New function.  Reorganize flow
	for clarity. Broken out of ...
	(omp_notice_variable): ... here.

From-SVN: r226170
2015-07-24 16:13:04 +00:00
Gary Funck
64447a2d50 re PR middle-end/66984 (ICE: fold_binary changes type of operand, causing failure in verify_gimple_assign_binary)
2015-07-24  Gary Funck  <gary@intrepid.com>

	PR middle-end/66984
	* fold-const.c (fold_binary_loc): Call fold_convert on arguments to
        fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.

From-SVN: r226168
2015-07-24 16:10:39 +00:00
Tom de Vries
a5a57bf378 Add transform_to_exit_first_loop_alt dump success message
2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (gen_parallel_loop): Add debug print for alternative
	exit-first loop transform.

	* gcc.dg/parloops-exit-first-loop-alt-2.c: Use debug print for
	alternative exit-first loop transform.
	* gcc.dg/parloops-exit-first-loop-alt-3.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-4.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-5.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-6.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-7.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: Same.
	* gcc.dg/parloops-exit-first-loop-alt.c: Same.
	* gfortran.dg/parloops-exit-first-loop-alt-2.f95: Same.
	* gfortran.dg/parloops-exit-first-loop-alt.f95: Same.

From-SVN: r226164
2015-07-24 15:00:59 +00:00
Mikael Morin
68180ebadd Fix gfortran.dg/class_to_type_4.f90 deallocation code misordering failure
PR fortran/64986
gcc/fortran/
	* trans-expr.c (gfc_trans_assignment_1): Put component deallocation
	code at the beginning of the block.

From-SVN: r226162
2015-07-24 14:44:59 +00:00
Cesar Philippidis
710ee21854 re PR libgomp/66714 (ICE in loc_list_from_tree with -g)
PR 66714

	gcc/
	* tree-cfg.c (struct replace_decls_d): New struct.
	(replace_block_vars_by_duplicates_1): New function.
	(replace_block_vars_by_duplicates): Use it to replace the decls
	in the value exprs by duplicates.

	libgomp/
	* testsuite/libgomp.c/pr66714.c: New test.

From-SVN: r226160
2015-07-24 07:38:43 -07:00
Szabolcs Nagy
009cea8635 [AArch64] elf toolchain does not pass -shared linker option
2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
	-shared, -symbolic, -rdynamic.

From-SVN: r226159
2015-07-24 14:30:41 +00:00
Szabolcs Nagy
cbc4d45487 [AArch64] Fix LINUX_TARGET_LINK_SPEC to be consistent with ARM
2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/65711
	* config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
	-dynamic-linker within %{!static %{!shared, and -rdynamic within
	%{!static.

From-SVN: r226158
2015-07-24 14:27:55 +00:00
Ilya Enkovich
349e312b4c re PR ipa/66566 ([CHKP] ICE in early_inliner: internal compiler error: in operator[], at vec.h:714)
gcc/

	PR ipa/66566
	* ipa-inline-analysis.c (estimate_calls_size_and_time): Check
	edge summary is available.

gcc/testsuite/

	PR ipa/66566
	* gcc.target/i386/mpx/pr66566.c: New test.

From-SVN: r226155
2015-07-24 13:15:49 +00:00
Richard Biener
803835ded7 genmatch.c (struct dt_node): Add statistic fields.
2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct dt_node): Add statistic fields.
	(dt_node::analyze): New method.
	(decision_tree::gen_gimple): Call analyze on the root node
	and print statistics to stderr.
	(decision_tree::gen_generic): Likewise.

From-SVN: r226154
2015-07-24 12:39:08 +00:00
Richard Biener
21aacde458 fold-const.c (fold_binary_loc): Move simplifying of comparisons against the highest or lowest possible integer ...
2015-07-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move simplifying of comparisons
	against the highest or lowest possible integer ...
	* match.pd: ... as patterns here.

From-SVN: r226153
2015-07-24 12:36:00 +00:00
Richard Biener
fa138f6efd genmatch.c (struct capture_info): Add same_as field.
2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (struct capture_info): Add same_as field.
	(capture_info::capture_info): Initialize same_as.
	(capture_info::walk_match): Compute same_as.
	(capture_info::walk_result): Compute stuff for the leader.
	(capture_info::walk_c_expr): Likewise.
	(dt_simplify::gen_1): Only look at leaders when deciding
	to force no side-effects or emit side-effects of omitted operands.

From-SVN: r226152
2015-07-24 12:35:22 +00:00
H.J. Lu
67fd278918 Add a testcase for PR bootstrap/66978
PR bootstrap/66978
	* gcc.target/i386/pr66978.c: New test.

From-SVN: r226150
2015-07-24 05:08:00 -07:00
Andreas Krebbel
b8fedf996b S/390: Fix cfi for GPR 2 FPR saves
gcc/ChangeLog:

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	    * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
	    reg note to the GPR -> FPR save instructions.

gcc/testsuite/ChangeLog:

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	    * gcc.target/s390/gpr2fprsavecfi.c: New test.

From-SVN: r226149
2015-07-24 11:29:50 +00:00
Andreas Krebbel
3d44ff9919 [PATCH] S/390: Improve risbg usage
gcc/ChangeLog:

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	    * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
	    cheaper.
	    (s390_expand_insv): Don't generate risbg pattern for constant zero
	    sources.
	    * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
	    ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
	    splitters.

gcc/testsuite/ChangeLog:

2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	    * gcc.target/s390/insv-1.c: New test.
	    * gcc.target/s390/insv-2.c: New test.
	    * gcc.target/s390/insv-3.c: New test.

From-SVN: r226148
2015-07-24 11:28:06 +00:00
Dominik Vogt
bacf8ec3df [PATCH 4/4] S390 -march=native related fixes
gcc/ChangeLog

	* config/s390/s390.c (s390_reorg): Clean up handling of processors with
	-mtune=
	(s390_issue_rate): Likewise.
	(s390_sched_reorder): Likewise.
	(s390_sched_variable_issue): Likewise.
	(s390_loop_unroll_adjust): Likewise.
	(s390_option_override):  Likewise.

From-SVN: r226147
2015-07-24 11:25:01 +00:00
Dominik Vogt
b1b5aa2f2c [PATCH 3/4] S390 -march=native related fixes
gcc/ChangeLog

	* config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
	processor capabilities with -march=native.
	* config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
	(DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
	(S390_TARGET_BITS_STRING): Macro to simplify specs.

From-SVN: r226146
2015-07-24 11:23:53 +00:00
Dominik Vogt
fd9c86e091 [PATCH 2/4] S390 -march=native related fixes
gcc/ChangeLog

	* config/s390/s390.c (s390_issue_rate): Handle PROCESSOR_2094_Z9_EC.
	(s390_option_override): Likewise.
	(s390_adjust_priority): Likewise.

From-SVN: r226145
2015-07-24 11:22:32 +00:00
Dominik Vogt
63281f61cb S390 -march=native related fixes
gcc/ChangeLog:

	* config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS when
	cross compiling.

From-SVN: r226144
2015-07-24 11:19:59 +00:00
Richard Biener
24f1db9c0d fold-const.c (maybe_canonicalize_comparison_1): Move A code CST canonicalization ...
2015-07-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (maybe_canonicalize_comparison_1): Move
	A code CST canonicalization ...
	* match.pd: ... to a pattern here.

	cp/
	* init.c (build_vec_init): Build iterator bound in the same
	type as the iterator.

From-SVN: r226143
2015-07-24 10:31:21 +00:00
Tom de Vries
25a627733f Remove xfail in autopar/uns-outer-4.c
2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/autopar/uns-outer-4.c: Remove loopfn xfail.

From-SVN: r226142
2015-07-24 10:14:34 +00:00
Jiong Wang
d076e1b7ba [AArch64] Revert REG_ALLOC_ORDER/HONOR_REG_ALLOC_ORDER
2015-07-24  Jiong Wang  <jiong.wang@arm.com>

  Revert:
  2015-07-22  Jiong Wang  <jiong.wang@arm.com>
  PR target/63521
  * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
  (HONOR_REG_ALLOC_ORDER): Define.

From-SVN: r226141
2015-07-24 09:06:53 +00:00
Richard Biener
96a111a3df genmatch.c (add_operator): Allow SSA_NAME as predicate.
2015-07-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Allow SSA_NAME as predicate.
	* fold-const.c (fold_comparison): Move parameter does not
	alias &local simplification ...
	* match.pd: ... as a pattern here.

From-SVN: r226140
2015-07-24 08:31:07 +00:00
Richard Biener
37d486ab11 gimple-fold.c (replace_stmt_with_simplification): Special-case valueizing call operands.
2015-07-24  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (replace_stmt_with_simplification): Special-case
	valueizing call operands.
	* gimple-match-head.c (maybe_push_res_to_seq): Take
	number of call arguments from ops array.
	(do_valueize): New function.
	(gimple_simplify): Return true if valueization changed
	any operand even if the result didn't simplify further.

From-SVN: r226139
2015-07-24 08:25:41 +00:00
Michael Haubenwallner
74b7ec8c45 libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS
2015-07-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* src/filesystem/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r226138
2015-07-24 07:05:19 +00:00
Naveen H.S
5f8d832e47 re PR middle-end/25530 ((unsigned / 2)*2 is not changed into unsigned &~1)
PR middle-end/25530
2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

gcc/testsuite/ChangeLog:
	* gcc.dg/pr25530.c: New test.

gcc/ChangeLog:
	* match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.

From-SVN: r226137
2015-07-24 04:50:41 +00:00
Naveen H.S
887ab60965 re PR middle-end/25529 ((unsigned * 2)/2 is not changed into unsigned &0x7FFFFFFF)
PR middle-end/25529
2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

gcc/testsuite/ChangeLog:
	* gcc.dg/pr25529.c: New test.

gcc/ChangeLog:
	* match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.

From-SVN: r226136
2015-07-24 04:47:48 +00:00
Kugan Vivekanandarajah
390875e694 reg_equal_test.c: New test.
gcc/testsuite/ChangeLog:

2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* gcc.target/arm/reg_equal_test.c: New test.

gcc/ChangeLog:

2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
	instruction.

From-SVN: r226135
2015-07-24 01:43:22 +00:00
Kugan Vivekanandarajah
fa24123b0f cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor clean up.
gcc/ChangeLog:

2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
	clean up.

From-SVN: r226134
2015-07-24 01:38:19 +00:00
GCC Administrator
46e82d43f1 Daily bump.
From-SVN: r226132
2015-07-24 00:16:12 +00:00
Uros Bizjak
6135666dd4 i386.c (ix86_build_builtin_va_list_64): Rename from ix86_build_builtin_va_list_abi.
* config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
	from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
	targets here.
	(ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
	ms_va_list_type_node initialization.

From-SVN: r226127
2015-07-23 23:49:34 +02:00
David Malcolm
eb3982c17e jit: supply MULTILIB_DEFAULTS as arguments when invoking driver
gcc/jit/ChangeLog:
	* jit-playback.c (invoke_driver): Convert local "argvec"
	to an auto_argvec, so that it owns copies of the strings,
	rather than borrows them, updating ADD_ARG to use xstrdup
	and special-casing the NULL terminator to avoid
	xstrdup (NULL).  Call add_multilib_driver_arguments at the front
	of the arguments.
	(MULTILIB_DEFAULTS): Provide a default definition.
	(multilib_defaults_raw): New constant array.
	(gcc::jit::playback::context::add_multilib_driver_arguments): New
	method.
	* jit-playback.h
	(gcc::jit::playback::context::add_multilib_driver_arguments): New
	method.
	* docs/internals/test-hello-world.exe.log.txt: Update.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r226126
2015-07-23 21:19:07 +00:00
Jeff Law
d37f946ace re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG)
PR lto/66752
	* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
	unable to find X NE 0 in the tables, return X as the simplified
	condition.
	(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
	in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
	to VISISTED_BBS.  */
	* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
	after removing the control flow statement and unnecessary edges.

testsuite/
	PR lto/66752
	* gcc.dg/tree-ssa/pr66752-2.c: New test.
	* gcc.dg/torture/pr66752-1.c: New test
	* g++.dg/torture/pr66752-2.C: New test.

From-SVN: r226125
2015-07-23 14:42:15 -06:00
Ian Lance Taylor
0f2be732d9 compiler: Make empty interface types for vars during parse time.
When making the type for a variable with an empty interface type,
    the parser makes an interface type with a NULL method set and relies
    on later passes to correct this.
    
    For sink variables, which are ignored in later passes, the interface
    method table is never finalized and a compile time assertion is issued.
    Instead, the initial type generated by the parser should be the empty
    interface type.
    
    Fixes golang/go#11579.
    
    Reviewed-on: https://go-review.googlesource.com/12049

From-SVN: r226123
2015-07-23 19:57:22 +00:00
Ian Lance Taylor
20886e7134 compiler: Check for errors in the underlying types of unary expressions.
Fixes golang/go#11592.
    
    Reviewed-on: https://go-review.googlesource.com/12044

From-SVN: r226122
2015-07-23 19:33:26 +00:00
Bernd Edlinger
0358f01b2e tree-pass.h (get_current_pass_name): Removed.
2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * tree-pass.h (get_current_pass_name): Removed.

From-SVN: r226121
2015-07-23 19:01:03 +00:00
Marek Polacek
04e4dbd07c re PR c++/66572 (Bogus Wlogical-op warning for operands coming from template instantiations)
PR c++/66572
	* pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.

	* g++.dg/warn/Wlogical-op-2.C: New test.

From-SVN: r226120
2015-07-23 18:57:25 +00:00
Bernd Schmidt
45952786d4 * MAINTAINERS: Update my email address.
From-SVN: r226118
2015-07-23 18:05:51 +00:00
DJ Delorie
8161e0c343 functional_hash.h: Add specializations for __intN types.
* include/bits/functional_hash.h: Add specializations for __intN
types.

* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
Guard against values that might exceed size_t's precision.

From-SVN: r226117
2015-07-23 13:57:34 -04:00
Marek Polacek
5a5062b8db c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
* c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
	(ubsan_instrument_shift): Likewise.

From-SVN: r226116
2015-07-23 17:14:31 +00:00
Alexandre Oliva
7eb9f42e3b [PR64164] Drop copyrename, use coalescible partition as base when optimizing.
for  gcc/ChangeLog

	PR rtl-optimization/64164
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Moved to
	tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location.
	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
	if stack_parm is NULL.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

for  gcc/testsuite/ChangeLog

	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
	* gcc.dg/ssp-1.c: Make counter a register.
	* gcc.dg/ssp-2.c: Likewise.
	* gcc.dg/torture/parm-coalesce.c: New.

From-SVN: r226113
2015-07-23 15:34:49 +00:00
Segher Boessenkool
a34f4f6468 re PR target/66217 (PowerPC rotate/shift/mask instructions not optimal)
PR target/66217
	* config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
	prototype.
	* config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
	(rs6000_emit_2insn_and): Handle dot forms.
	* config/rs6000/rs6000.md (and<mode>3): Adjust.
	(*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
	(*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.

From-SVN: r226112
2015-07-23 16:37:57 +02:00
Richard Biener
d057c8669b generic-match-head.c: Include cgraph.h.
2015-07-23  Richard Biener  <rguenther@suse.de>

	* generic-match-head.c: Include cgraph.h.
	* gimple-match-head.c: Likewise.
	* tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
	SSA names.
	* fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
	* match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
	pattern.

From-SVN: r226111
2015-07-23 14:31:44 +00:00
Marek Polacek
dc891fe75e re PR sanitizer/66908 (Uninitialized variable when compiled with UBsan)
PR sanitizer/66908
	* c-ubsan.c: Include gimplify.h.
	(ubsan_instrument_division): Unshare OP0 and OP1.
	(ubsan_instrument_shift): Likewise.

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

From-SVN: r226110
2015-07-23 13:54:06 +00:00
Richard Biener
62fb67d77a gimple-fold.c (fold_gimple_cond): Do not require folding results to pass valid_gimple_rhs_p.
2015-07-23  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_cond): Do not require folding
	results to pass valid_gimple_rhs_p.
	* tree-cfg.h (fold_cond_expr_cond): Remove.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	(make_edges): Do not call it.
	* tree-inline.c (tree_function_versioning): Likewise.

From-SVN: r226109
2015-07-23 13:33:43 +00:00