2017-10-10  Release Manager

	* GCC 5.5.0 released.

2017-10-02  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-09-30  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_split_idivmod): Use mode instead of
	always SImode for DIV and MOD in REG_EQUAL notes.

2017-10-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/82337
	* gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
	phi definition if the PHI result appears in an abnormal PHI.
	(find_basis_for_base_expr): Don't record a basis if the LHS of the
	basis appears in an abnormal PHI.

2017-09-26  Iain Sandoe  <iain@codesourcery.com>
            Ryan Mounce  <ryan@mounce.com.au>

	PR bootstrap/81037
 	Backport from mainline r235362
 	2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
	* system.h (list, map, set, vector): Include conditionally.
	* auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
	* graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
	* ipa-icf.c (INCLUDE_LIST): Define.
	* ipa-icf-gimple.c (INCLUDE_LIST): Define.
	* config/sh/sh.c (INCLUDE_VECTOR): Define.
	* config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
	(INCLUDE_LIST, INCLUDE_VECTOR): Define.
	* fortran/trans-common.c (INCLUDE_MAP): Define.

	Backport from mainline r235361
	2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* auto-profile.c: Remove <string.h> include.
	* diagnostic.c: Remove <new> include.
	* genmatch.c: Likewise.
	* pretty-print.c: Likewise.
	* toplev.c: Likewise
	* c/c-objc-common.c: Likewise.
	* cp/error.c: Likewise.
	* fortran/error.c: Likewise.

2017-09-22  Alexander Monakov  <amonakov@ispras.ru>

	PR tree-optimization/71702
	Backport r230667
	2015-11-20  Jim Wilson  <jim.wilson@linaro.org>

	* tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.

2017-09-21  Alan Modra  <amodra@gmail.com>

	PR target/81996
	* gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
	stack_pointer_rtx for count 0.  Update comments.  Break up
	large rtl expression.

2017-09-19  Martin Liska  <mliska@suse.cz>

	PR c++/81355
	* config/i386/i386.c (sorted_attr_string): Skip empty strings.

2017-09-19  Martin Liska  <mliska@suse.cz>

	Revert backport:
	2017-08-10  Martin Liska  <mliska@suse.cz>

	PR c++/81355
	* c-attribs.c (handle_target_attribute):
	Report warning for an empty string argument of target attribute.

2017-09-18  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2017-04-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/80362
	* fold-const.c (fold_binary_loc): Look at unstripped ops when
	looking for NEGATE_EXPR in -A / -B to A / B folding.

	2015-11-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/68528
	* fold-const.c (fold_binary_loc): Do not call negate_expr_p
	on stripped operands.

	2017-03-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/80171
	* gimple-fold.c (fold_ctor_reference): Properly guard against
	NULL return value from canonicalize_constructor_val.

	2016-06-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/64516
	* fold-const.c (fold_unary_loc): Preserve alignment when
	folding a VIEW_CONVERT_EXPR into a MEM_REF.

2017-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-08-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/81687
	* omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
	LABEL_DECLs.
	* tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
	or DECL_NONLOCAL labels.
	(move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
	or DECL_NONLOCAL labels here.

	2017-08-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/81766
	* function.c (thread_prologue_and_epilogue_insns): Restore
	behavior of always calling find_many_sub_basic_blocks on
	the inserted prologue.

	2017-08-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/81621
	* bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
	after setting changeable df flags.

	PR middle-end/81052
	* omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
	(pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.

	2017-08-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/79499
	* function.c (thread_prologue_and_epilogue_insns): Determine blocks
	for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
	of first NONDEBUG_INSN_P in each of the split_prologue_seq and
	prologue_seq sequences - if any.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-08-11  Martin Liska  <mliska@suse.cz>

	PR tree-opt/79987
	* tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
	variables of void type.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-06-28  Martin Liska  <mliska@suse.cz>

	PR sanitizer/81224
	* asan.c (instrument_derefs): Bail out inner references
	that are hard register variables.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-08-30  Martin Liska  <mliska@suse.cz>

	PR inline-asm/82001
	* ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
	Rename to ...
	(func_checker::compare_asm_inputs_outputs): ... this function.
	(func_checker::compare_gimple_asm): Use the function to compare
	also ASM constrains.
	* ipa-icf-gimple.h: Rename the function.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-08-10  Martin Liska  <mliska@suse.cz>

	PR c++/81355
	* c-attribs.c (handle_target_attribute):
	Report warning for an empty string argument of target attribute.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-08-08  Martin Liska  <mliska@suse.cz>

	PR tree-opt/81696
	* ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
	LABEL_DECLs that can be from a different function.

2017-09-15  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-06-28  Martin Liska  <mliska@suse.cz>

	PR ipa/81128
	* ipa-visibility.c (non_local_p): Handle visibility.

2017-09-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/81833
	* config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
	define_insn to a define_expand.
	(altivec_vsum2sws_direct): New define_insn.
	(altivec_vsumsws): Convert from a define_insn to a define_expand.

2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	PR target/82181
	* config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
	words of DImode object are reachable by xtensa_uimm8x4 access.

2017-09-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline:
	2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/81987
	* gimple-ssa-strength-reduction.c (insert_initializers): Don't
	insert an initializer in a location not dominated by the stride
	definition.

2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
		    Jakub Jelinek  <jakub@redhat.com>
		    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81503
	* gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
	folded constant fits in the target type; reorder tests for clarity.

2017-08-22  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/80210
	* config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
	(rs6000_set_current_function): Rewrite function to use it.

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2017-07-26 gcc-7-branch r250562.

	PR 81487
	* tree-ssa-structalias.c (alias_get_name): Use xasprintf instead
	of asprintf.

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from trunk r247719.
	2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>

	PR rtl-optimization/75964
	* simplify-rtx.c (simplify_const_relational_operation): Remove
	invalid handling of comparisons of integer ABS.

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2017-07-05 trunk r249995.

	PR target/81305
	* config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
	Don't depend on "optimize > 0".
	(out_movhi_r_mr, out_movqi_mr_r): Same.
	(out_movhi_mr_r, out_movqi_r_mr): Same.
	(avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
	io_address_operand on "optimize > 0".

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2016-06-15 trunk r237486.
	Backport from 2017-07-12 trunk r250156.

	PR target/79883
	PR target/67353
	* config/avr/avr.c (avr_set_current_function): Warn misspelled ISR
	only if -Wmisspelled-isr is on.  In diagnostic messages: Quote
	keywords and (parts of) identifiers.
	[WITH_AVRLIBC]: Warn functions named "ISR", "SIGNAL" or "INTERUPT".
	* doc/invoke.texi (AVR Options) <-Wmisspelled-isr>: Document.

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2017-04-19 trunk r246997.

	PR target/80462
	* config/avr/avr.c (tree.h): Include it.
	(hash-table.h): Include it.
	(hash-set.h): Include it.
	(symtab.h): Include it.
	(inchash.h): Include it.
	(function.h): Include it.
	(hash-map.h): Include it.
	(plugin-api.h): Include it.
	(ipa-ref.h): Include it.
	(cgraph.h): Include it.
	(avr_encode_section_info): Don't warn for uninitialized progmem
	variable if it's just an alias.

	Backport from 2017-07-12 trunk r250151.

	PR target/81407
	* config/avr/avr.c (avr_encode_section_info)
	[progmem && !TREE_READONLY]: Error if progmem object needs
	constructing.

2017-08-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2017-08-22 trunk r251256.

	PR target/81910
	* config/avr/avr.c (avr_handle_addr_attribute): Early return if
	not VAR_P. Filter attribute warnings with OPT_Wattributes.
	(avr_attribute_table) <io, io_low, address>: Initialize
	.decl_required with true.

2017-08-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81894
	* doc/extend.texi (x86 Built-in Functions): Correct the name of
	__builtin_ia32_lzcnt_u16.

2017-08-17  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR target/81861
	* config/i386/i386.c (ix86_option_override_internal): Save target
	specific options after ix86_stack_protector_guard_reg was changed.

2017-08-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/81354
	* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
	Insert on edges rather than explicitly creating landing pads.
	(analyze_candidates_and_replace): Commit edge inserts.

2017-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81604
	* ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
	change type to the element type, instead add eltype variable and
	use it where we are interested in the element type.

2017-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/81555
	PR tree-optimization/81556
	* tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
	if true, force CHANGED for the recursive invocation.
	(reassociate_bb): Remember original length of ops array, pass
	len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.

2017-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r235874
	2016-05-04  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
	Align .toc.

2016-07-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/81162
	* gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
	replace a negate with an add.

2017-07-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80569
	* config/i386/i386.c (ix86_option_override_internal): Disable
	BMI, BMI2 and TBM instructions for -m16.

2017-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81471
	* config/i386/i386.md (rorx_immediate_operand): New mode attribute.
	(*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
	operand 2 predicate.
	(*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
	operand 2 predicate.
	(ror,rol -> rorx splitters): Use const_int_operand as
	operand 2 predicate.

2017-07-14  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81375
	* config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
	(rcpps): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): Ditto.
	(div<mode>3): Macroize insn from divdf3 and divsf3
	using MODEF mode iterator.

	Backport from mainline
	2017-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/81300
	* config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
	Require dead FLAGS_REG at the beginning of a peephole.

2017-07-03  Tom de Vries  <tom@codesourcery.com>

	backport from mainline:
	PR tree-optimization/81192
	2017-07-03  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
	BB_SAME_SUCC (bb) == NULL.

2017-06-27  Segher Boessenkool  <segher@kernel.crashing.org>

	Revert:
	Backports from trunk:

	2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/80382
	* config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
	for quad_address_p for TImode, instead of just not indexed_address.

	2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/80966
	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
	gen_add3_insn did not fail.
	* config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
	r0, construct that number in a temporary reg and add that reg to r0.
	If asked to put the result in r0 as well, fail.

2017-06-27  Segher Boessenkool  <segher@kernel.crashing.org>

	Backports from trunk:

	2016-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
	PR rtl-optimization/73650
	* lra-constraints.c (simple_move_p): If the insn is multiple_sets
	it is not a simple move.

	2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/61729
	PR target/77850
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
	read from, for big endian.

	2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/80382
	* config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
	for quad_address_p for TImode, instead of just not indexed_address.

	2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
	PR middle-end/80692
	* real.c (do_compare): Give decimal_do_compare preference over
	comparing just the signs.

	2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/80618
	* config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
	splitter result in the canonical way.

	2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
	PR target/80966
	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
	gen_add3_insn did not fail.
	* config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
	r0, construct that number in a temporary reg and add that reg to r0.
	If asked to put the result in r0 as well, fail.

	2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
	PR middle-end/80902
	* builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
	a call, force the call to not be a tail call.

2017-06-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	* config/arm/arm-builtins.c (arm_init_builtins): Rename
	__builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
	__builtin_arm_stfscr to __builtin_arm_set_fpscr.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-31  Martin Liska  <mliska@suse.cz>

	PR target/79155
	* config/i386/cpuid.h: Fix typo in a comment in cpuid.h.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-30  Martin Liska  <mliska@suse.cz>

	PR other/80909
	* auto-profile.c (get_function_decl_from_block): Fix
	parenthesis.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-26  Martin Liska  <mliska@suse.cz>

	PR ipa/80663
	* params.def: Bound partial-inlining-entry-probability param.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-16  Martin Liska  <mliska@suse.cz>

	PR ipa/79850.
	* ipa-devirt.c (odr_types_equivalent_p): Fix typo.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-15  Martin Liska  <mliska@suse.cz>

	PR driver/31468
	* gcc.c (process_command): Do not allow empty argument of -o option.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-02  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Add missing preposition.
	* gcov.c (function_info::function_info): Properly fill up
	all member variables.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-02  Martin Liska  <mliska@suse.cz>

	PR other/80589
	* common.opt: Fix typo.
	* doc/invoke.texi: Likewise.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Enhance documentation of gcov.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Sort options in alphabetic order.
	* doc/gcov-dump.texi: Likewise.
	* doc/gcov-tool.texi: Likewise.
	* gcov.c (print_usage): Likewise.
	* gcov-dump.c (print_usage): Likewise.
	* gcov-tool.c (print_merge_usage_message): Likewise.
	(print_rewrite_usage_message): Likewise.
	(print_overlap_usage_message): Likewise.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/53915
	* gcov.c (format_gcov): Print 'NAN %' when top > bottom.

2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	PR driver/56469
	* coverage.c (coverage_remove_note_file): New function.
	* coverage.h: Declare the function.
	* toplev.c (finalize): Clean if an error has been seen.

2017-06-09  David S. Miller  <davem@davemloft.net>

	PR target/80968
	* config/sparc/sparc.c (sparc_flat_expand_epilogue): Don't
	emit frame blockage here.
	(sparc_expand_epilogue): Do it here.
	* config/sparc/sparc.md (return expander): Emit frame blockage
	for alloca here too.

2017-06-06  David S. Miller  <davem@davemloft.net>

	PR target/80968
	* config/sparc/sparc.c (sparc_expand_prologue): Emit frame
	blockage if function uses alloca.

2017-06-01  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-08-19  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
	_rdseed64_step): Uglify argument names and/or local variable names
	in inline functions.
	* config/i386/rtmintrin.h (_xabort): Likewise.
	* config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
	_mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
	_mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
	_mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
	_mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
	_mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
	_mm_maskz_ternarylogic_epi32): Likewise.
	* config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
	__lwpins32, __lwpins64): Likewise.
	* config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
	_mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
	_mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
	_mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
	_mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
	_mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
	_mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
	_mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
	_mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
	_mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
	_mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
	_mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
	_mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
	_mm256_mask_i64gather_epi32): Likewise.
	* config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
	* config/i386/ia32intrin.h (__writeeflags): Likewise.
	* config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
	_mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
	_mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
	_mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
	_mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
	_mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
	_mm512_mask_prefetch_i64scatter_ps): Likewise.
	* config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
	* config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
	_mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
	_mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
	_mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
	_mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
	_mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
	_mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.

2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_emit_call): Use
	HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
	(print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
	format string.

2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
	overhead loop start between a call and its CALL_ARG_LOCATION
	note.

2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
	definition.
	(DWARF_FRAME_REGISTERS): Reserve space for one extra register in
	call0 ABI.

2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
	to pass TLS call argument, according to current ABI.
	* config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
	callx0 for TLS call, according to current ABI.

2017-05-30  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2017-04-25  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
	environment.

	2017-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/80385
	* simplify-rtx.c (simplify_unary_operation_1): Don't transform
	(not (neg X)) into (plus X -1) for complex or non-integral modes.

	PR libgomp/80394
	* omp-low.c (scan_omp_task): Don't optimize away empty tasks
	if they have any depend clauses.

	2017-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/80286
	* config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
	int mode, convert_modes it to mode as unsigned, otherwise use
	lowpart_subreg to mode rather than SImode.
	* config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
	ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
	Use DImode instead of SImode for the shift count operand.
	* config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
	Likewise.

	2017-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR debug/80025
	* cselib.c (cselib_hasher::equal): Pass 0 to rtx_equal_for_cselib_1.
	(rtx_equal_for_cselib_1): Add depth argument.  If depth
	is 128, don't look up VALUE locs and punt.  Increment
	depth in recursive calls when walking VALUE locs.

	2017-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/80168
	* asan.c (instrument_derefs): Copy over last operand from
	original COMPONENT_REF to the new COMPONENT_REF with
	DECL_BIT_FIELD_REPRESENTATIVE.
	* ubsan.c (instrument_object_size): Likewise.

	2017-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/80112
	* loop-doloop.c (doloop_condition_get): Don't check condition
	if cmp isn't SET with IF_THEN_ELSE src.

	2017-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/80129
	* gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
	TREE_READONLY on result if writing it more than once.

	2017-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/79944
	* asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
	BUILT_IN_SYNC*, determine the access type from the size suffix and
	always build a MEM_REF with that type.  Handle forgotten
	BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.

	PR target/79932
	* config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
	_mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
	_mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
	_mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
	_mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
	_mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
	_mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
	_mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
	_mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
	_mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
	_mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
	_mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
	_mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
	_mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
	_mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
	_mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
	_mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
	_mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
	_mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
	_mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
	_mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
	_mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
	_mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
	_mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
	_mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
	_mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
	_mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
	_mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
	_mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
	_mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
	definitions outside of __OPTIMIZE__ guarded section.

	PR target/79932
	* config/i386/avx512bwintrin.h (_mm512_packs_epi32,
	_mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
	_mm512_packus_epi32, _mm512_maskz_packus_epi32,
	_mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
	guarded section.

	2017-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/79901
	* config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
	...
	(*avx512f_<code><mode>3<mask_name>): ... this.
	(<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
	iterator instead of VI8_AVX2_AVX512BW.

	PR rtl-optimization/79901
	* expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
	min/max expander, expand it using expand_vec_cond_expr.

	2017-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/79807
	* config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
	is a memory operand, increase num_memory.
	(ix86_expand_args_builtin): Likewise.

	2017-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/79729
	* config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
	gcc_unreachable with output_operand_lossage.

	2017-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/79396
	* tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
	FMA_EXPR like tcc_binary or tcc_unary.

	2017-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/79570
	* sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
	on temporarily removed DEBUG_INSNs.

	PR target/79494
	* config/i386/i386.c (ix86_expand_split_stack_prologue): Call
	make_reg_eh_region_note_nothrow_nononlocal on call_insn.

	2017-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/79568
	* config/i386/i386.c (ix86_expand_builtin): Handle
	OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
	ix86_builtins_isa[fcode].isa as a requirement of those
	flags and any other flag in the bitmask.
	(ix86_init_mmx_sse_builtins): Use 0 instead of
	~OPTION_MASK_ISA_64BIT as mask.
	* config/i386/i386-builtin.def (bdesc_special_args,
	bdesc_args): Likewise.

	2017-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/79559
	* config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
	instead of gcc_assert for K, r and R code checks.  Formatting fixes.

	2017-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/79411
	* tree-ssa-reassoc.c (is_reassociable_op): Return false if
	stmt operands are SSA_NAMEs used in abnormal phis.
	(can_reassociate_p): Return false if op is SSA_NAME used in abnormal
	phis.

	2017-02-07  Jakub Jelinek  <jakub@redhat.com>
		    Richard Biener  <rguenther@suse.de>

	PR middle-end/79399
	* ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
	type from int to size_t.
	* ira-costs.c (struct_costs_size): Change type from int to size_t.

	2017-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/79197
	* config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
	(fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
	conditions on a single line.

	2016-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/77905
	* ipa-pure-const.c (cdtor_p): Return true for
	DECL_STATIC_{CON,DE}STRUCTOR even when it is
	DECL_LOOPING_CONST_OR_PURE_P.

	2016-12-14  Wilco Dijkstra  <wdijkstr@arm.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR target/78796
	* config/aarch64/aarch64.c (aarch64_classify_symbol): Merge large
	model checks into switch.

	2016-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/78298
	* tree-nested.c (convert_local_reference_stmt): After adding
	shared (FRAME.NN) clause to omp parallel, task or target,
	add it also to all outer omp parallel, task or target constructs.

	2016-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69183
	* omp-low.c (build_outer_var_ref): Change lastprivate argument
	to code, pass it recursively, adjust uses.  For OMP_CLAUSE_PRIVATE
	on worksharing constructs, treat it like clauses on simd construct.
	Formatting fix.
	(lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
	OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
	(lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
	of true as last argument to build_outer_var_ref.

	2016-11-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/78416
	* expmed.c (expand_divmod): Use wide_int for computation of
	op1_is_pow2.  Don't set it if op1 is 0.  Formatting fixes.
	Use size <= HOST_BITS_PER_WIDE_INT instead of
	HOST_BITS_PER_WIDE_INT >= size.

	2016-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/67335
	* omp-low.c (simd_clone_adjust_argument_types): Use NULL prefix
	for tmp simd array if DECL_NAME (parm) is NULL.

	2016-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/78378
	* combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
	inner only if pos is 0.  Fix up formatting.

	2016-11-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/78227
	* config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
	cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.

	2016-10-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/77919
	* expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
	into memory if both modes are complex and their inner modes have the
	same precision.  If the two modes are different complex modes, convert
	each part separately and generate a new CONCAT.

	2016-10-28  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/77919
	* expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
	MEM if mode1 is not a complex mode.

	2016-10-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/66343
	* ubsan.c (ubsan_ids): New GTY(()) array.
	(ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
	instead of static local counters.

	2016-09-22  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/77665
	* tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
	for all IFN_GOMP_SIMD_* internal fns.

	2016-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/77624
	* builtins.c (fold_builtin_atomic_always_lock_free): Only look through
	cast to void * if the cast is from some other pointer type.

	2016-09-19  Jakub Jelinek  <jakub@redhat.com>
		    Jan Hubicka  <jh@suse.cz>

	PR target/77587
	* cgraph.c (cgraph_node::rtl_info): Pass &avail to
	ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
	Call ultimate_alias_target just once, not up to 4 times.

	2016-09-16  Jakub Jelinek  <jakub@redhat.com>
		    Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/77594
	* internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
	through into expand_addsub_overflow after expand_neg_overflow.

	2016-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/68260
	* tsan.c: Include target.h.
	(enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
	(BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
	(tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
	BUILT_IN_ATOMIC_TEST_AND_SET entries.
	(instrument_builtin_call): Handle bool_clear and bool_test_and_set.

	2016-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/77516
	* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
	OMP_CLAUSE_SAFELEN_EXPR.

	2016-08-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/77363
	* dwarf2out.c (modified_type_die): Use lookup_type_die (type)
	instead of lookup_type_die (type_main_variant (type)) even for array
	types.

	PR middle-end/77377
	* simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
	constant pool reference return x instead of c.

	2016-08-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/71910
	* tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before inlining,
	add cgraph edge for the added __builtin_unreachable call.

	2016-08-15  Martin Liska  <mliska@suse.cz>
		    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/72824
	* tree-loop-distribution.c (const_with_all_bytes_same)
	<case VECTOR_CST>: Fix a typo.

	2016-08-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/72824
	* tree-loop-distribution.c (const_with_all_bytes_same): Verify
	real_zerop is not negative.

	2016-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/71953
	* asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
	before builtin_decl_implicit.

2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/install.texi (Options specification): Move entry of
	--enable-sjlj-exceptions.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-24  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/79931
	* ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-19  Richard Biener  <rguenther@suse.de>

	PR ipa/65972
	* auto-profile.c (afdo_vpt_for_early_inline): Update SSA
	when needed by AutoPGO.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>

	PR lto/50345
	* doc/lto.texi: Remove an extra 'that'.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-18  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/78783
	* gcov-tool.c (gcov_output_files): Validate that destination
	file is either removed by the tool or by a user.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-13  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/80413
	* gcov-io.c (gcov_write_string): Copy to buffer just when
	allocated size is greater than zero.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-11  Martin Liska  <mliska@suse.cz>

	PR ipa/80212
	* cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
	* ipa-split.c (split_function): Create a local comdat symbol
	if caller is in a comdat group.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-11  Martin Liska  <mliska@suse.cz>

	PR ipa/80212
	* ipa-cp.c (determine_versionability): Handle calls_comdat_local
	flags.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-11  Martin Liska  <mliska@suse.cz>

	PR sanitizer/70878
	* ubsan.c (instrument_object_size): Do not instrument register
	variables.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-10  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/80224
	* gcov.c (print_usage): Fix usage string.
	(get_gcov_intermediate_filename): Remove.
	(output_gcov_file): Use both for normal and intermediate format.
	(generate_results): Do not initialize special file for
	intermediate format.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-28  Richard Biener  <rguenther@suse.de>

	PR ipa/80205
	* tree-inline.c (copy_phis_for_bb): Do not create PHI node
	without arguments, generate default definition of a SSA name.

2017-05-29  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-28  Martin Liska  <mliska@suse.cz>

	PR ipa/80104
	* cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
	thunk call as DECL_GIMPLE_REG_P when vector or complex type.

2017-05-26  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>

	Backported from mainline
	2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>

	* config/sparc/sparc.md (length): Return the correct value for -mflat
	sibcalls to match output_sibcall.

2017-05-19  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80799
	* config/i386/mmx.md (*mov<mode>_internal): Enable
	alternatives 11, 12, 13 and 14 also for 32bit targets.
	Remove alternatives 15, 16, 17 and 18.
	* config/i386/sse.md (vec_concatv2di): Change
	alternative (!x, *y) to (x, ?!*Yn).

2017-05-15  Richard Biener  <rguenther@suse.de>

	Revert backport of
	PR middle-end/80222
	* gimple-fold.c (gimple_fold_indirect_ref): Do not touch
	TYPE_REF_CAN_ALIAS_ALL references.
	* fold-const.c (fold_indirect_ref_1): Likewise.

2017-05-10  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2017-02-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79732
	* tree-inline.c (expand_call_inline): Handle anonymous
	SSA lhs properly when inlining a function without return
	value.

	2017-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79666
	* tree-vrp.c (extract_range_from_binary_expr_1): Make sure
	to not symbolically negate if that may introduce undefined
	overflow.

2017-05-10  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2017-03-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80122
	* tree-inline.c (copy_bb): Do not expans va-arg packs or
	va_arg_pack_len when the inlined call stmt requires pack
	expansion itself.
	* tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.

	2017-03-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/80222
	* gimple-fold.c (gimple_fold_indirect_ref): Do not touch
	TYPE_REF_CAN_ALIAS_ALL references.
	* fold-const.c (fold_indirect_ref_1): Likewise.

	2017-04-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80334
	* tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
	preserve alignment of accesses.

	2017-04-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/80539
	* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
	being in loop-closed SSA form conservatively.
	(chrec_fold_multiply_poly_poly): Likewise.

2016-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	PR target/69868 + swap optimization backports
	* config/rs6000/rs6000.c (swap_web_entry): Enlarge
	special_handling bitfield.
	(special_handling_values): Add SH_XXPERMDI, SH_CONCAT, SH_VPERM,
	and SH_VPERM_COMP.
	(const_load_sequence_p): New.
	(load_comp_mask_p): New.
	(v2df_reduction_p): New.
	(rtx_is_swappable_p): Perform special handling for XXPERMDI and
	for reductions.
	(insn_is_swappable_p): Perform special handling for VEC_CONCAT,
	V2DF reductions, and various permutes.
	(adjust_xxpermdi): New.
	(adjust_concat): New.
	(find_swapped_load_and_const_vector): New.
	(replace_const_vector_in_load): New.
	(adjust_vperm): New.
	(adjust_vperm_comp): New.
	(handle_special_swappables): Call adjust_xxpermdi, adjust_concat,
	adjust_vperm, and adjust_vperm_comp.
	(replace_swap_with_copy): Allow vector NOT operations to also be
	replaced by copies.
	(dump_swap_insn_table): Handle new special handling values.

2017-05-03  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-05-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68491
	* config/i386/cpuid.h (__get_cpuid): Always return 0 when
	__get_cpuid_max returns 0.

2017-04-21  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline
	+2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/68390
	* config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
	for indirect function call.

2017-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/80376
	PR target/80315
	* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
	CONST0_RTX (mode) rather than const0_rtx where appropriate.
	(rs6000_expand_binop_builtin): Likewise.
	(rs6000_expand_ternop_builtin): Likewise; also add missing
	vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
	vshasigma built-ins.
	* doc/extend.texi: Document that vec_xxpermdi's third argument
	must be a constant.

2017-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from GCC 6
	2017-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/80082
	* config/arm/arm-protos.h (FL_LPAE): Define macro.
	(FL_FOR_ARCH7VE): Add FL_LPAE.
	(arm_arch_lpae): Declare extern.
	* config/arm/arm.c (arm_arch_lpae): Declare.
	(arm_option_override): Define arm_arch_lpae.
	* config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
	arm_arch_lpae.

2017-04-11  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2017-03-30  Martin Jambor  <mjambor@suse.cz>

	PR ipa/77333
	* cgraph.h (cgraph_build_function_type_skip_args): Declare.
	* cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
	it reflects the signature changes performed at the callee side.
	* cgraphclones.c (build_function_type_skip_args): Make public, renamed
	to cgraph_build_function_type_skip_args.
	(build_function_decl_skip_args): Adjust call to the above function.

2017-04-11  Bin Cheng  <bin.cheng@arm.com>

	Backport from mainline
	2016-02-10  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68021
	* tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
	when computing the value of biv cand by itself.

2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
	Add comment for WCHAR_T.

2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/aarch64/aarch64-freebsd.h: Define WCHAR_T.

2017-04-07  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-04-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/79733
	* config/i386/i386.c (ix86_expand_builtin)
	<case IX86_BUILTIN_KORTEST{C,Z}16>: Determine insn operand
	mode from insn data. Convert operands to insn operand mode.
	Copy operands that don't satisfy insn predicate to a register.

2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/80246
	* config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
	(dfp_diex_<mode>): Update mode of operand 1.
	* doc/extend.texi (dxex, dxexq): Document change to return type.
	(diex, diexq): Document change to argument type.

2017-03-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80180
	* config/i386/i386.c (ix86_expand_builtin)
	<IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
	flags reg setting and flags reg using instructions.
	<IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
	clobbering instructions to zero extend op2.

>>>>>>> .r248557
2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-02-22  Martin Liska  <mliska@suse.cz>

	PR lto/79587
	* data-streamer-in.c (streamer_read_gcov_count): Remove assert.
	* data-streamer-out.c (streamer_write_gcov_count_stream):
	Likewise.
	* value-prof.c (stream_out_histogram_value): Make assert more
	precise based on type of counter.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-22  Martin Liska  <mliska@suse.cz>

	PR target/79906
	* config/rs6000/rs6000.c (rs6000_inner_target_options): Show
	error message instead of an ICE.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-21  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/80081
	* Makefile.in: Add gcov-dump and fix installation of gcov-tool.
	* doc/gcc.texi: Include gcov-dump stuff.
	* doc/gcov-dump.texi: New file.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-20  Martin Liska  <mliska@suse.cz>

	PR middle-end/79753
	* tree-chkp.c (chkp_build_returned_bound): Do not build
	returned bounds for a LHS that's not a BOUNDED_P type.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-20  Martin Liska  <mliska@suse.cz>

	PR target/79769
	PR target/79770
	* tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
	COMPLEX_CST and VECTOR_CST.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-14  Martin Liska  <mliska@suse.cz>

	PR middle-end/79831
	* doc/invoke.texi (-Wchkp): Document the option.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-13  Martin Liska  <mliska@suse.cz>

	PR middle-end/78339
	* ipa-pure-const.c (warn_function_noreturn): If the declarations
	is a CHKP clone, use original declaration.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-06-13  Martin Liska  <mliska@suse.cz>

	PR target/65705
	PR target/69804
	PR sanitizer/71458

	* toplev.c (process_options): Enable MPX with LSAN and UBSAN.
	* tree-chkp.c (chkp_walk_pointer_assignments): Verify that
	FIELD != NULL.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-09  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79631
	* tree-chkp-opt.c (chkp_is_constant_addr): Call
	tree_int_cst_sign_bit just for INTEGER constants.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-09  Martin Liska  <mliska@suse.cz>

	PR ipa/79761
	* tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
	(chkp_find_bounds_1): Remove gcc_unreachable.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-03  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79803
	* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
	assert.
	(pass_loop_prefetch::execute): Disabled optimization if an
	assumption about L1 cache size is not met.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-03-03  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/79574
	* gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
	(hash_scan_set): Likewise.
	(dump_hash_table): Likewise.
	(hoist_code): Likewise.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-02-17  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/79574
	* gcse.c (want_to_gcse_p): Prevent integer overflow.

2017-03-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-02-17  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/79577
	* params.def (selsched-max-sched-times): Increase minimum to 1.

2017-03-21  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline:
	2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>

	PR target/79951
	* config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
	for VECTOR_UNIT_VSX_P (<MODE>mode) too.

2017-03-21  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
	Change ins into fmov.

2017-03-19  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR target/71017
	* config/i386/cpuid.h: Fix another undefined behavior.

2017-03-17  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	2017-03-17  Tom de Vries  <tom@codesourcery.com>

	* gcov-dump.c (print_usage): Print bug_report_url.

2017-03-15  Matthias Klose  <doko@ubuntu.com>

	Backport from mainline
	2017-03-14  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Install gcov-dump.

2017-03-15  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80019
	* config/i386/i386.c (ix86_vector_duplicate_value): Create
	subreg of inner mode for values already in registers.

2017-03-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from trunk
	2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79439
	* config/rs6000/predicates.md (current_file_function_operand): Do
	not allow self calls to be local if the function is replaceable.

2017-03-07  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/i386/i386.c (ix86_local_alignment): Align most aggregates
	of 16 bytes and more to 16 bytes, not those of 16 bits and more.

2017-03-06  John David Anglin  <danglin@gcc.gnu.org>

	PR target/77850
	* config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
	vector types.

2017-03-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/79514
	* config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.

2017-03-01  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline:
	2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>

	PR target/79544
	* rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD for
	arithmetic shift of unsigned V2DI.

2017-03-01  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2017-02-21  Martin Jambor  <mjambor@suse.cz>

	PR lto/79579
	* ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
	have been analyzed.

2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/79749
	* config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
	condition on optimize for the leaf function test.

2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/79261
	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
	support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
	* config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
	generator for vsx_xxpermdi_<mode>_be.
	* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
	force big-endian semantics.
	(vsx_xxpermdi_<mode>_be): New define_expand with same
	implementation as previous version of vsx_xxpermdi_<mode>.

2017-02-19  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR target/71017
	* config/i386/cpuid.h: Fix undefined behavior.

2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>

	Backport from mainline
	2016-12-11  Roger Pau Monné  <roger.pau@citrix.com>

	* config/i386/x86-64.h: Append --32 to the assembler options when
	-m16 is used on non-glibc systems as well.

2017-02-17  Julia Koval  <julia.koval@intel.com>

	PR target/76731
	* config/i386/avx512fintrin.h
	(_mm512_i32gather_ps): Change __addr type to void const*.
	(_mm512_mask_i32gather_ps): Ditto.
	(_mm512_i32gather_pd): Ditto.
	(_mm512_mask_i32gather_pd): Ditto.
	(_mm512_i64gather_ps): Ditto.
	(_mm512_mask_i64gather_ps): Ditto.
	(_mm512_i64gather_pd): Ditto.
	(_mm512_mask_i64gather_pd): Ditto.
	(_mm512_i32gather_epi32): Ditto.
	(_mm512_mask_i32gather_epi32): Ditto.
	(_mm512_i32gather_epi64): Ditto.
	(_mm512_mask_i32gather_epi64): Ditto.
	(_mm512_i64gather_epi32): Ditto.
	(_mm512_mask_i64gather_epi32): Ditto.
	(_mm512_i64gather_epi64): Ditto.
	(_mm512_mask_i64gather_epi64): Ditto.
	(_mm512_i32scatter_ps): Change __addr type to void*.
	(_mm512_mask_i32scatter_ps): Ditto.
	(_mm512_i32scatter_pd): Ditto.
	(_mm512_mask_i32scatter_pd): Ditto.
	(_mm512_i64scatter_ps): Ditto.
	(_mm512_mask_i64scatter_ps): Ditto.
	(_mm512_i64scatter_pd): Ditto.
	(_mm512_mask_i64scatter_pd): Ditto.
	(_mm512_i32scatter_epi32): Ditto.
	(_mm512_mask_i32scatter_epi32): Ditto.
	(_mm512_i32scatter_epi64): Ditto.
	(_mm512_mask_i32scatter_epi64): Ditto.
	(_mm512_i64scatter_epi32): Ditto.
	(_mm512_mask_i64scatter_epi32): Ditto.
	(_mm512_i64scatter_epi64): Ditto.
	(_mm512_mask_i64scatter_epi64): Ditto.
	* config/i386/avx512pfintrin.h
	(_mm512_mask_prefetch_i32gather_pd): Change addr type to void const*.
	(_mm512_mask_prefetch_i32gather_ps): Ditto.
	(_mm512_mask_prefetch_i64gather_pd): Ditto.
	(_mm512_mask_prefetch_i64gather_ps): Ditto.
	(_mm512_prefetch_i32scatter_pd): Change addr type to void*.
	(_mm512_prefetch_i32scatter_ps): Ditto.
	(_mm512_mask_prefetch_i32scatter_pd): Ditto.
	(_mm512_mask_prefetch_i32scatter_ps): Ditto.
	(_mm512_prefetch_i64scatter_pd): Ditto.
	(_mm512_prefetch_i64scatter_ps): Ditto.
	(_mm512_mask_prefetch_i64scatter_pd): Ditto.
	(_mm512_mask_prefetch_i64scatter_ps): Ditto.
	* config/i386/avx512vlintrin.h
	(_mm256_mmask_i32gather_ps): Change __addr type to void const*.
	(_mm_mmask_i32gather_ps): Ditto.
	(_mm256_mmask_i32gather_pd): Ditto.
	(_mm_mmask_i32gather_pd): Ditto.
	(_mm256_mmask_i64gather_ps): Ditto.
	(_mm_mmask_i64gather_ps): Ditto.
	(_mm256_mmask_i64gather_pd): Ditto.
	(_mm_mmask_i64gather_pd): Ditto.
	(_mm256_mmask_i32gather_epi32): Ditto.
	(_mm_mmask_i32gather_epi32): Ditto.
	(_mm256_mmask_i32gather_epi64): Ditto.
	(_mm_mmask_i32gather_epi64): Ditto.
	(_mm256_mmask_i64gather_epi32): Ditto.
	(_mm_mmask_i64gather_epi32): Ditto.
	(_mm256_mmask_i64gather_epi64): Ditto.
	(_mm_mmask_i64gather_epi64): Ditto.
	(_mm256_i32scatter_ps): Change __addr type to void*.
	(_mm256_mask_i32scatter_ps): Ditto.
	(_mm_i32scatter_ps): Ditto.
	(_mm_mask_i32scatter_ps): Ditto.
	(_mm256_i32scatter_pd): Ditto.
	(_mm256_mask_i32scatter_pd): Ditto.
	(_mm_i32scatter_pd): Ditto.
	(_mm_mask_i32scatter_pd): Ditto.
	(_mm256_i64scatter_ps): Ditto.
	(_mm256_mask_i64scatter_ps): Ditto.
	(_mm_i64scatter_ps): Ditto.
	(_mm_mask_i64scatter_ps): Ditto.
	(_mm256_i64scatter_pd): Ditto.
	(_mm256_mask_i64scatter_pd): Ditto.
	(_mm_i64scatter_pd): Ditto.
	(_mm_mask_i64scatter_pd): Ditto.
	(_mm256_i32scatter_epi32): Ditto.
	(_mm256_mask_i32scatter_epi32): Ditto.
	(_mm_i32scatter_epi32): Ditto.
	(_mm_mask_i32scatter_epi32): Ditto.
	(_mm256_i32scatter_epi64): Ditto.
	(_mm256_mask_i32scatter_epi64): Ditto.
	(_mm_i32scatter_epi64): Ditto.
	(_mm_mask_i32scatter_epi64): Ditto.
	(_mm256_i64scatter_epi32): Ditto.
	(_mm256_mask_i64scatter_epi32): Ditto.
	(_mm_i64scatter_epi32): Ditto.
	(_mm_mask_i64scatter_epi32): Ditto.
	(_mm256_i64scatter_epi64): Ditto.
	(_mm256_mask_i64scatter_epi64): Ditto.
	(_mm_i64scatter_epi64): Ditto.
	(_mm_mask_i64scatter_epi64): Ditto.
	* config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
	(V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
	(V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
	(V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
	(V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
	(V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
	(V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
	(V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
	(V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
	(V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
	(V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
	(V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
	(V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
	(VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
	(VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
	(VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
	(VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
	(VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
	(VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
	(VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
	(VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
	(VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
	(VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
	(VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
	(VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
	(VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
	(VOID_QI_V8DI_PCINT_INT_INT): Remove.
	(V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
	(V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
	(V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
	(V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
	(VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
	(VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
	(VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
	(VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
	(V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
	(V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
	(V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
	(V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
	(V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
	(V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
	(V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
	(V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
	(VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
	(VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
	(VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
	(VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
	(VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
	(VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
	(VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
	(VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
	(VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
	(VOID_QI_V8DI_PCVOID_INT_INT): Add.
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
	definitions accordingly.

2017-02-16  Carl Love  <cel@us.ibm.com>

	Backport from mainline commit r245460 on 2017-02-14

	PR 79545
	* config/rs6000/rs6000.c: Add case statement entry to make the xvcvuxdsp
	built-in argument unsigned.
	* config/rs6000/vsx.md: Fix the source and return operand types so they
	match the instruction definitions from the ISA document.  Fix typo
	in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
	statement.

2017-02-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/70022
	PR target/79498
	* fold-const.c (fold_indirect_ref_1): Fix range checking for
	vector BIT_FIELD_REF extract.

2017-02-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-02-13  Martin Liska  <mliska@suse.cz>

	PR c/79471
	* calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.

2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR translation/79397
	* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
	of AltiVec.

2017-02-06  Carl Love  <cel@us.ibm.com>

	Backport of two commits from mainline, r244943 and r244904,
	dated 2017-01-26 and 2017-01-25 respectively

	* config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
	of entries for ALTIVEC_BUILTIN_VEC_PACKS.  Remove bogus entries
	for P8V_BUILTIN_VEC_VGBBD.

2017-02-03  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR lto/79061
	* asan.c (asan_add_global): Force has_dynamic_init to zero in LTO mode.

2017-01-26  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-01-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79034
	* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
	Propagate out degenerate PHIs in the joiner.

	2016-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78224
	* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
	Split the fallthru edge in case its successor may have PHIs.
	Do not free dominance info.

2017-01-26  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-09-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77745
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	When removing redundant stores make sure to check compatibility
	of the TBAA state for downstream accesses.
	* tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
	value-numbering virtual operands for store matches.

	2016-09-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77768
	* tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
	with stores to a place we know has a constant value.
	* tree-vrp.c (set_defs_to_varying): New helper avoiding
	writing to vr_const_varying.
	(vrp_initialize): Call it.
	(vrp_visit_stmt): Likewise.
	(evrp_dom_walker::before_dom_children): Likewise.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Handle stores to readonly memory when removing redundant stores.

2017-01-24  Wilco Dijkstra  <wdijkstr@arm.com>

	Backport from mainline
	PR target/78041
	* config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
	Remove partial overlap check for shift by 1.
	(ashldi3_neon): Likewise.

2017-01-24  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-09-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77646
	* tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
	a VDEF.

	2016-11-05  David Edelsohn  <dje.gcc@gmail.com>
		Richard Biener  <rguenther@suse.de>

	PR bootstrap/78188
	PR c++/71848
	* ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.

	2016-09-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77648
	* tree-ssa-structalias.c (process_constraint): Handle all DEREF
	with complex RHS.
	(make_transitive_closure_constraints): Adjust comment.
	(make_any_offset_constraints): New function.
	(handle_rhs_call): Make sure to first expand a pointer to all
	subfields before transitively closing it.
	(handle_const_call): Likewise.  Properly expand returned
	pointers as well.
	(handle_pure_call): Likewise.

	2016-10-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77879
	* tree-ssa-structalias.c (handle_const_call): Properly handle
	NRV return slots.
	(handle_pure_call): Likewise.

2017-01-24  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77855
	* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
	instead of removing the current item while iterating over the set
	which is not safe.

	2016-09-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/77436
	* tree-chrec.c (tree_fold_binomial): Use widest_int, properly
	check whether the result fits the desired result type.

	2016-09-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/77605
	* tree-data-ref.c (analyze_subscript_affine_affine): Use the
	proper niter to bound the loops.

	2016-11-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78047
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
	fake field at offset zero conservatively regarding to may_have_pointers.

	2016-11-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/78185
	* loop-invariant.c (find_invariant_insn): Never hoist trapping or
	faulting instructions.
	* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
	(fill_always_executed_in_1): Honor infinite child loops.

	2016-11-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/78333
	* gimplify.c (gimplify_function_tree): Do not instrument
	GNU extern inline functions.

2017-01-23  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-01-20  Martin Liska  <mliska@suse.cz>

	PR lto/69188
	* tree-profile.c (init_ic_make_global_vars): Do not call
	finalize_decl.
	(gimple_init_gcov_profiler): Likewise.

2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>

	Backport from mainline
	2016-12-29  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses
	https by default.
	* doc/passes.texi (Cilk Plus Transformation): Ditto.
	* doc/generic.texi (Statements for C++): Ditto, and use @uref.

2017-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-01-13  Martin Liska  <mliska@suse.cz>

	PR ipa/79043
	* function.c (set_cfun): Add new argument force.
	* function.h (set_cfun): Likewise.
	* ipa-inline-transform.c (inline_call): Use the function when
	strict alising from is dropped for function we inline to.

2017-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-03-26  Richard Biener  <rguenther@suse.de>
	            Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR ipa/70366
	* ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
	instead of
	TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
	as 2nd argument to cl_optimization_restore().

2017-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

	* c-common.c (parse_optimize_options): Do not silently ignore
	-fstrict-aliasing changes.

2017-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-01-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-transform.c (inline_call): Drop
	-fstrict-aliasing when 	inlining -fno-strict-aliasing into
	-fstrict-aliasing body.

2017-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-01-17  Martin Liska  <mliska@suse.cz>

	PR ipa/71207
	* ipa-polymorphic-call.c (contains_type_p): Fix wrong
	assumption and add comment.

2017-01-17 Thomas Preud'homme <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>

	PR rtl-optimization/78617
	* lra-remat.c (do_remat): Initialize live_hard_regs from live in
	registers, also setting hard registers mapped to pseudo registers.

2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline r244320.
	2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/78253
	* config/arm/arm.c (legitimize_pic_address): Handle reference to
	weak symbol.
	(arm_assemble_integer): Likewise.

2016-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* postreload.c (reload_cse_simplify): Check for NO_FUNCTION_CSE
	definition instead of using it directly.

2017-01-12  Maxim Ostapenko  <m.ostapenko@samsung.com>

	Backport from mainline
	2017-01-12  Maxim Ostapenko  <m.ostapenko@samsung.com>

	PR lto/79042
	* lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
	bit.
	(input_varpool_node): Unpack dynamically_initialized bit.
	* lto-streamer.h (LTO_minor_version): Bump version.

2017-01-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (memory_address_length): Increase len
	only when rip_relative_addr_p returns false.

2017-01-11  Andre Vieira <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2016-12-09  Andre Vieira <andre.simoesdiasvieira@arm.com>

	PR rtl-optimization/78255
	* gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
	NO_FUNCTION_CSE is true.

2017-01-10  Bill Seurer  <seurer@linux.vnet.ibm.com>

	Backport from mainline
	2016-12-21  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR sanitizer/65479
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
	-fasynchronous-unwind-tables option when -fsanitize=address is
	specified.

2017-01-10  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-01-09  Martin Liska  <mliska@suse.cz>

	PR pch/78970
	* gcc.c (driver_handle_option): Handle OPT_E and set
	have_E.
	(lookup_compiler): Do not show error message with have_E.

2017-01-10  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-01-05  Martin Liska  <mliska@suse.cz>

	PR pch/78970
	* gcc.c (lookup_compiler): Reject '-' filename for a precompiled
	header.

2017-01-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	Backport from mainline
	2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/70668
	* config/nds32/nds32.md (casesi): Don't access the operands array
	out of bounds.

2017-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2016-10-10  Andreas Tobler  <andreast@gcc.gnu.org>

	* config.gcc: Add aarch64-*-freebsd* support.
	* config.host: Likewise.
	* config/aarch64/aarch64-freebsd.h: New file.
	* config/aarch64/t-aarch64-freebsd: Ditto.

2017-01-03  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-12-22  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/78886
	* tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
	is equal to NULL.

2017-01-03  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-12-13  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/78428
	* expr.c (store_constructor_field): Add new arguments to the
	function.
	(store_constructor): Set up bitregion_end and add
	gcc_unreachable to fields that have either non-constant size
	or (and) offset.

2016-12-27  Jakub Jelinek  <jakub@redhat.com>

	PR translation/78922
	* config/i386/stringop.opt: Remove.

2016-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78731
	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
	If we've seen a backedge to not walk the SSA value chain.
	(thread_around_empty_blocks): Pass down whether we've seen
	a backedge to simplify_control_stmt_condition.
	(thread_through_normal_block): Likewise.

2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* tree-ssa-math-opts.c (struct symbolic_number): Improve comment.

2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/77673
	* tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
	(init_symbolic_number): Initialize src field from src parameter.
	(perform_symbolic_merge): Select most dominated statement as the
	source statement.  Set src field of resulting n structure from the
	input src with the lowest address.
	(find_bswap_or_nop): Rename source_stmt into ins_stmt.
	(bswap_replace): Rename src_stmt into ins_stmt.  Initially get source
	of load from src field rather than insertion statement.  Cancel
	optimization if statement analyzed is not dominated by the insertion
	statement.
	(pass_optimize_bswap::execute): Rename src_stmt to ins_stmt.  Compute
	dominance information.

2016-12-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/77933
	* config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
	being live in the function and lr needing to be saved.  Distinguish
	between already saved pushable registers and registers to push.
	Check for LR being an available pushable register.

2016-12-12  Bernd Schmidt  <bschmidt@redhat.com>

	Backport from mainline
	2016-11-07  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/77309
	* combine.c (make_compound_operation): Allow EQ for IN_CODE, and
	don't assume an equality comparison for plain COMPARE.
	(simplify_comparison): Pass a more accurate code to
	make_compound_operation.

2016-12-07  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline
	2016-11-12  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/77957
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
	return early if !optional_tbtab.

2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-11-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.md (arm_addsi3): Add alternative for addition of
	general register with general register or ARM constant into SP
	register.

2016-12-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-12-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	            Stefan Freudenberger  <stefan@reservoir.com>

	PR tree-optimization/78646
	* gimple-ssa-strength-reduction.c (replace_ref): The pointer
	addition used for the memory base expression should have the type
	of the candidate.

2016-12-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/78038
	* ree.c (get_defs): Return NULL if a defining insn for REG cannot
	be deduced to set REG through the RTL structure.
	(make_defs_and_copies_lists): Return false on a failing get_defs call.

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
	(CCVHUANY): Remove modes.
	(CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
	documentation.
	* config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
	(s390_expand_vec_compare_scalar): Pick one of the cc consumer
	modes.
	(s390_branch_condition_mask): Adjust to use the new cc consumer
	modes.  The new modes allow for proper reversal in the middle-end.
	(s390_expand_vec_compare_cc): Determine the proper cc producer and
	consumer modes for a comparison.
	* config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
	throughout the file.
	* config/s390/vx-builtins.md: Likewise.

2016-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-12-01  Alan Modra  <amodra@gmail.com>

	* gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
	look inside UNSPEC_VSX_XXSPLTW vec.

2016-11-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backported from mainline
	2016-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/78426
	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
	instead of force_reg.
	(sh_expand_setmem): Likewise.

2016-11-24  Martin Liska  <mliska@suse.cz>
	Backported from mainline
	2016-11-22  Martin Liska  <mliska@suse.cz>

	PR ipa/78309
	* ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
	(sem_function::get_hash): Use the new field.
	(sem_function::parse): Remove an argument from ctor.
	(sem_variable::parse): Likewise.
	(sem_variable::get_hash): Use the new field.
	(sem_item_optimizer::read_section): Use new ctor and set hash.
	* ipa-icf.h: _hash is removed from sem_item::sem_item,
	sem_variable::sem_variable, sem_function::sem_function.

2016-11-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
	(kxnor<mode>): Return "#" for alternative 0.

2016-11-22  Uros Bizjak  <ubizjak@gmail.com>

	* Makefile.in ($(lang_checks_parallelized)): Fix detection
	of -j argument.

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Move the 'Overriding configure test results'
	subsub section to the 'Cross-Compiler-Specific Options' sub section.

2016-11-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/78310
	* config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
	when calculating operand 2.
	(rotate to rotatex zext splitter): Ditto.

2016-11-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/78262
	* config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
	operand 0 as earlyclobber.
	(*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.

2016-11-06  Jack Howarth  <howarth.at.gcc@gmail.com>

	PR driver/78206
	* incpath.c: (remove_dup(): Also silently ignore EPERM.

2016-11-03  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-08-12  Martin Liska  <mliska@suse.cz>
		    Adam Fineman  <afineman@afineman.com>

	* gcov.c (process_file): Create .gcov file when .gcda
	file is missing.

2016-11-03  Eric Botcazou  <ebotcazou@adacore.com>

	Backport from mainline
	2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* explow.c (validize_mem): Do not modify the argument in-place.

2016-11-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

	Backport from trunk
	2016-10-26  Will Schmidt <will_schmidt@vnet.ibm.com>

	PR middle-end/72747
	* gimplify.c (gimplify_init_constructor): Move emit of constructor
	assignment to earlier in the if/else logic.

2016-10-29  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
	(MALLOC_ABI_ALIGNMENT): Define.

2016-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/77916
	* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
	Don't allow a MINUS_EXPR for pointer arithmetic for either known
	or unknown strides.
	(record_increment): Increments of -1 for unknown strides just use
	a multiply initializer like other negative values.
	(analyze_increments): Remove stopgap solution for -1 increment
	applied to pointer arithmetic.
	(insert_initializers): Requirement of initializer for -1 should be
	based on pointer-typedness of the candidate basis.

2016-10-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/77991
	* config/i386/i386.c (legitimize_tls_address)
	<case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
	convert dest to Pmode if different than Pmode.

2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>

	Backport from mainline
	2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
	  copying.

2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/77937
	* gimple-ssa-strength-reduction.c (analyze_increments): Use
	POINTER_TYPE_P on the candidate type to determine whether
	candidates in this chain require pointer arithmetic.

	2016-10-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/77937
	* gimple-ssa-strength-reduction.c (analyze_increments): Set cost
	to infinite when we have a pointer with an increment of -1.

2016-10-17  Martin Liska  <mliska@suse.cz>

	Backported from mainline
	2016-10-13  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/77943
	* tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
	a different EH landing pads.

2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
	constants in CONST_VECTORs.

2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
	register as destination of bmask.
	(vector_init_bshuffle): Likewise.
	* config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
	(bmaskdi_vis): Enable only in 64-bit mode.

2016-10-13  Andrew Senkevich  <andrew.senkevich@intel.com>

	Backport from trunk
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
	OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
	(ix86_handle_option): Deleted handle of OPT_mpcommit.
	* config.gcc: Deleted pcommitintrin.h
	* config/i386/pcommitintrin.h: Deleted file.
	* config/i386/cpuid.h (bit_PCOMMIT): Deleted.
	* config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
	detection.
	* config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
	__PCOMMIT__.
	* config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
	(PTA_PCOMMIT, IX86_BUILTIN_PCOMMIT, __builtin_ia32_pcommit): Deleted.
	(ix86_option_override_internal): Deleted handle of option.
	(ix86_valid_target_attribute_inner_p): Deleted pcommit.
	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
	* config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
	(pcommit): Deleted instruction.
	* config/i386/i386.opt: Mention -mpcommit deprecation.
	* config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.

2016-10-10  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/gen-avr-mmcu-texi.c (string.h): Include.

2016-10-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/77874
	* config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
	Remove wrong assert.
	(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
	Use <round_constraint> as operand 1 constraint.

2016-09-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Alan Modra  <amodra@gmail.com>

	Backport from mainline
	2016-07-01  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/71709
	* ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
	being set, not referenced.

2016-09-27  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2016-09-27  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
	VAR_DECL string.

2016-09-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77478
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
	Fix alignment of SSA var used before the alignment prologue.

2016-09-27  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	Backport from trunk r227496

	PR target/65210
	* config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
	attribute as well.

2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	Backport from 2016-09-22 trunk r240388.

	* config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
	(avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).

2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.

2016-09-21  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2016-09-21 trunk r240306.

	PR target/77326
	* config/avr/avr.c (hard-reg-set.h): Move #include up in front
	of rtl.h to that HARD_CONST is defined in rtl.h.
	(avr_notice_update_cc) [CC_NONE]: If insn touches some regs
	mentioned in cc_status, do CC_STATUS_INIT.

2016-09-16  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Integer Overflow Builtins): Fix type of out
	parameters for functions taking long long arguments.

2016-08-31  Jakub Sejdak  <jakub.sejdak@phoesys.com>

	* config.gcc: Add support for arm*-*-phoenix* targets.
	* config/arm/t-phoenix: New.
	* config/phoenix.h: New.

2016-08-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/77403
	* config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
	template for intel asm dialect.
	(vec_set_hi_<mode><mask_name>): Ditto.

2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.in (gcov-iov.h): Add dummy recipe.

2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-04-20  Andrew Pinski  <apinski@cavium.com>
	            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64971
	* config/aarch64/aarch64.md (sibcall): Force call
	address to be DImode for ILP32.
	(sibcall_value): Likewise.

2016-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline (minus test for POWER9 support)
	2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/72863
	* vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
	(vsx_store_<mode>): Likewise.

2016-08-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/71700
	* expr.c (store_constructor): Mask sign-extended bits when widening
	sub-word constructor element at the start of a word.

2016-08-22  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2016-08-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/76342
	* config/i386/avx512fintrin.h (_mm512_undefined_epi32):
	Renamed from _mm512_undefined_si512.
	(_mm_undefined_si512): New definition.

	Backport from mainline:
	2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>

	* config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
	unused variable __O.

	Backport from mainline:
	2016-08-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/72843
	* config/i386/i386.md (*movtf_internal): Use
	lra_in_progress || reload_completed instead of !can_create_pseudo_p
	in the insn constraint.
	(*movxf_internal): Ditto.
	(*movdf_internal): Ditto.
	(*movsf_internal): Ditto.

2016-08-18  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2016-06-17  DJ Delorie  <dj@redhat.com>

	PR target/71338
	* config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
	* config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
	(umulqihi3_virt): Likewise.
	* config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
	(umulqihi3_real): Likewise.

2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/install.texi (*-*-solaris2*): Adjust latest change.

2016-08-15  Martin Liska  <mliska@suse.cz>

	Backported from mainline
	2016-08-15  Martin Liska  <mliska@suse.cz>

	PR driver/72765
	* gcc.c (do_spec_1): Call save_string with the right size.
	(save_string): Do an assert about string we copy.

2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/install.texi (*-*-solaris2*): Fix version number and document
	requirement on GNU make for building libjava with the Solaris linker.

2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Backport from mainline
	2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR tree-optimization/71083
	* tree-predcom.c (ref_at_iteration): Correctly align the
	reference type.

2016-08-08  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2016-07-29 trunk r238863.

	PR rtl-optimization/71976
	* combine.c (get_last_value): Return 0 if the argument for which
	the function is called has a wider mode than the recorded value.

2016-08-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/72805
	* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
	Cast builtin function result to __mmask16 instead of __mmask8.
	(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
	(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
	(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.

2016-08-01  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2016-08-01 trunk r238948.

	PR target/72767
	* config/avr/avr.md (length) [branch]: Correct insn length
	attribute for forward branches.

2016-07-29  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2016-07-29  Marek Polacek  <polacek@redhat.com>

	PR c/7652
	* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
	(altivec_expand_st_builtin): Likewise.
	* config/i386/i386.c (ix86_expand_args_builtin): Likewise.
	(ix86_expand_round_builtin): Likewise.

2016-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/71216
	* config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
	when to emit a ".machine" pseudo-op.

2016-07-26  Alan Modra  <amodra@gmail.com>

	PR target/72103
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
	sri->t_icode.

2016-07-20  Martin Jambor  <mjambor@suse.cz>

	PR fortran/71688
	* trans-decl.c (gfc_generate_function_code): Use get_create rather
	than create to get a call graph node.

2016-07-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71874
	* gimple-fold.c (fold_builtin_memory_op): Use
	get_addr_base_and_unit_offset instead of get_ref_base_and_extent.

2016-07-19  Martin Liska  <mliska@suse.cz>

	Backported from mainline
	2016-03-15  Richard Henderson  <rth@redhat.com>

	* line-map.c (new_linemap): Make alloc_size a size_t.

2016-07-19  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-07-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71758
	* omp-low.c (expand_omp_target): Gimplify device.

2016-07-18  Martin Liska  <mliska@suse.cz>

	Backported from mainline
	2016-07-12  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/71634
	* ira-build.c (mark_loops_for_removal): Properly iterate
	loops.

2016-07-12  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline
	2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/70098
	PR target/71763
	* config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
	*ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
	constraint.

2016-07-08  Martin Liska  <mliska@suse.cz>

	Backported from mainline
	2016-07-08  Martin Liska  <mliska@suse.cz>

	PR middle-end/71606
	* fold-const.c (fold_convertible_p): As COMPLEX_TYPE
	folding produces SAVE_EXPRs, thus return false for the type.

2016-07-07  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-06-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71626
	* config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
	a constant, force its SUBREG_REG into memory or register instead
	of whole op1.

	2016-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/71588
	* tree-ssa-strlen.c (valid_builtin_call): New function.
	(adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
	it.

	2016-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71581
	* tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
	see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
	for conversion of scalar user var to complex type and use the
	underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
	punt.

	2016-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71494
	* tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
	without LABEL_DECL, set *handled_ops_p to false instead of true.

	2016-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70641
	* ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
	on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
	eh edges have been purged.

	PR middle-end/70633
	* gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
	gimplification turns some element into non-constant.

	2016-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/70628
	* explow.c (convert_memory_address_addr_space_1): Formatting fix.

	PR debug/70628
	* rtl.h (convert_memory_address_addr_space_1): New prototype.
	* explow.c (convert_memory_address_addr_space_1): No longer static,
	add NO_EMIT argument and don't call convert_modes if true, pass
	it down recursively, remove break after return.
	(convert_memory_address_addr_space): Adjust caller.
	* simplify-rtx.c (simplify_unary_operation_1): Call
	convert_memory_address_addr_space_1 instead of convert_memory_address,
	if it returns NULL, don't simplify.

	2016-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70574
	* fwprop.c (forward_propagate_and_simplify): Don't add
	REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
	(try_fwprop_subst): Don't add REG_EQUAL note if there are any
	paradoxical subregs within *loc.

	2016-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70336
	* match.pd (nested int casts): Limit to GIMPLE.

2016-07-07  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-06-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/71423
	* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
	for signed ops.

	2016-06-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71452
	* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
	type used for the SSA rewrite has enough precision to cover
	the dynamic type of the location.

	2016-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71522
	* tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
	copying into float copying.

2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
	for NULL decl.

2016-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/71693
	* fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
	TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
	first when permuting bitwise operation with rotate.  Cast
	TREE_OPERAND (arg0, 0) to type when cancelling two rotations.

2016-06-21  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2016-06-21 trunk r237639.

	PR target/30417
	* config/avr/gen-avr-mmcu-specs.c (print_mcu):
	[*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
	[*link_text_start]: Wrap -Ttext into %{!Ttext:...}.

2016-06-21  Georg-Johann Lay  <avr@gjlay.de>

	PR target/71103
	* config/avr/avr.md (movqi): Only handle loading subreg:qi of
	constant addresses if can_create_pseudo_p.

2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
	    Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	Backport from 2016-06-20 trunk r237589, r236558.

	PR target/71103
	* config/avr/avr.md (movqi): Handle loading subreg:qi (const,
	symbol_ref,label_ref).

2016-06-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/71554
	* config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
	(setcc + and peephole2): Likewise.

	Backported from mainline
	2015-04-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (setcc+movzbl peephole2): Check also clobbered
	reg.
	(setcc+andl peephole2): Ditto.

2016-06-15  Andreas Tobler  <andreast@gcc.gnu.org>

	Backported from mainline
	2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/freebsd.h: Only enable unaligned access for armv6 on
	FreeBSD 11 and above.

2016-06-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71505
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
	assert match comment.

2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/71379
	* config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
	one.

2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
	-mno-htm.

2016-06-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/71389
	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
	Copy op1 RTX to avoid invalid sharing.
	(ix86_expand_vector_move_misalign): Ditto.

2016-06-05  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
		    Jocelyn Mayer  <l_indien@magic.fr>

	PR target/67310
	* config/i386/driver-i386.c (host_detect_local_cpu): Correctly
	detect processor family for signature_CENTAUR_ebx.
	<case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
	signature_CENTAUR_ebx.
	<case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
	<default>: Pass x86-64 for has_longmode.

2016-06-03  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>

	* config.gcc: Move hard float support for arm*hf*-*-freebsd* into
	armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
	target.

2016-06-03  Richard Biener  <rguenther@suse.de>

	* BASE-VER: Set to 5.4.1.

2016-06-03  Release Manager

	* GCC 5.4.0 released.

2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68696
	* config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
	New pattern.
	(aarch64_simd_bsl<mode>_internal): Update comment to reflect
	the above.

2016-05-25  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
	* config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
	rather than X86_TUNE_AVOID_4BYTE_PREFIXES.  Use SSE_REGS instead
	of ALL_SSE_REGS.  Return SSE_REGS also when TARGET_AVX.

2016-05-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-11  Alexandre Oliva  <aoliva@redhat.com>

	PR target/69634
	* regstat.c (regstat_bb_compute_calls_crossed): Disregard
	debug insns.

	2015-10-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/68142
	* fold-const.c (extract_muldiv_1): Avoid introducing undefined
	overflow.

	2016-03-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/69845
	* fold-const.c (extract_muldiv_1): Correct test for multiplication
	overflow.

2016-05-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68814
	* rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of
	BYTES_BIG_ENDIAN.

	2016-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69003
	* lto-partition.c (rename_statics): Fix pasto.

	2016-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66487
	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
	use block_ultimate_origin
	(noncall-stmt_may_be_vtbl_ptr_store): Likewise.

	2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>

	PR target/69252
	* modulo-sched.c (optimize_sc):	Allow branch-scheduling to add a new
	first stage.

2016-05-21  Iain Sandoe  <iain@codesourcery.com>
	    Dominique d'Humieres  <dominiq@lps.ens.fr>

	Backport from mainline
	2015-12-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/67973
	* configure.ac (gcc_cv_as_stabs_directive): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
	HAVE_AS_STABS_DIRECTIVE.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
	DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.

	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document stabs.

2016-05-21  Chung-Lin Tang  <cltang@codesourcery.com>

	Backport from mainline
	2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (nios2_delegitimize_address): Make
	assert less restrictive.

2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
	for naked functions.
	(thumb1_expand_prologue): Likewise.

2016-05-20  Uros Bizjak  <ubizjak@gmail.com>

	* sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
	force pending loads from memory.

2016-05-20  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/67278
	* tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.

	2016-03-02  Richard Biener  <rguenther@suse.de>
		    Uros Bizjak  <ubizjak@gmail.com>

	PR target/67278
	* config/i386/i386.c (type_natural_mode): Handle XFmode vectors.

2016-05-20  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69720
	* tree-vect-loop.c (get_initial_def_for_reduction): Avoid
	the adjustment_def path for possibly vectorized defs.
	(vect_create_epilog_for_reduction): Handle vectorized initial
	defs properly.

2016-05-20  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-01  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/67921
	* fold-const.c (split_tree): New parameters.  Convert pointer
	type variable part to proper type before negating.
	(fold_binary_loc): Pass new arguments to split_tree.

	2016-05-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/70941
	* fold-const.c (split_tree): Always convert to the original type
	before negating.

	2016-05-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/70931
	* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

	2016-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70623
	* tree-ssa-pre.c (changed_blocks): Make global ...
	(compute_antic): ... local here.  Move and fix worklist
	handling here.  Do not clear EDGE_DFS_BACK.
	(compute_antic_aux): Add dumping for MAX assumed succs.  Remove
	worklist handling, dump when ANTIC_IN changed.
	(compute_partial_antic_aux): Remove worklist handling.
	(init_pre): Do not compute post dominators.  Add a comment about
	the CFG order chosen.
	(fini_pre): Do not free post dominators.

	2016-04-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70780
	* tree-ssa-pre.c (compute_antic_aux): Also return true if the block
	wasn't visited yet.
	(compute_antic): Mark blocks with abnormal preds as visited as
	they have a final empty antic-in solution already.

2016-05-19  Martin Jambor  <mjambor@suse.cz>

	PR ipa/70646
	* ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
	if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.

2016-05-19  Martin Jambor  <mjambor@suse.cz>

	PR ipa/70646
	* ipa-inline.h (condition): New field size.
	* ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
	for comaprison and store it into the new condition.
	(evaluate_conditions_for_known_args): Use condition size to check
	access sizes for all but CHANGED conditions.
	(unmodified_parm_1): New parameter size_p, store access size into it.
	(unmodified_parm): Likewise.
	(unmodified_parm_or_parm_agg_item): Likewise.
	(eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
	(set_cond_stmt_execution_predicate): Extract access sizes and store
	them to conditions.
	(set_switch_stmt_execution_predicate): Likewise.
	(will_be_nonconstant_expr_predicate): Likewise.
	(will_be_nonconstant_predicate): Likewise.
	(inline_read_section): Stream condition size.
	(inline_write_summary): Likewise.
	* lto-streamer.h (LTO_minor_version): Bump.

2016-05-19  Richard Sandiford  <richard.sandiford@arm.com>

2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/69400
	* wide-int.cc (wi_pack): Take the precision as argument and
	perform canonicalization here rather than in the callers.
	Use the main loop to handle all full-width HWIs.  Add a
	zero HWI if in_len isn't a full result.
	(wi::divmod_internal): Update accordingly.
	(wi::mul_internal): Likewise.  Simplify.

2016-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/71145
	* config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
	(*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.

2016-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/70353
	* tree-inline.c (remap_decls): Don't add_local_decl if
	cfun is null.

2016-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/70809
	* config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.

2016-05-17  Jim Wilson  <jim.wilson@linaro.org>

	Partial backport from trunk r228017.
	2015-09-22  Jason Merrill  <jason@redhat.com>

	PR c++/70613
	* doc/invoke.texi (-fabi-version): Document version 9.
	(-Wabi): Document version 9.  Mention version 8 is default for GCC 5.1.

2016-05-12  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2016-05-10  Martin Liska  <mliska@suse.cz>

	* tree-inline.c (remap_dependence_clique): Do not remap
	debugging statements.

2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/70963
	* config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
	code for a zero scale factor.
	(vsx_xvcvdpuxds_scale): Likewise.

2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
	("*fixuns_truncdfdi2_z13")
	("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
	("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
	("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.

2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rtems.h (LIB_SPEC): Add -latomic.

2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backport from mainline
	2016-04-27  Joel Sherrill  <joel@rtems.org>

	* config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
	xilink.ld and flags not relevant to RTEMS.

2016-05-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-04-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70526
	* tree-sra.c (build_ref_for_offset): Use prev_base to
	extract the alias pointer type.

2016-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/70858
	* config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
	to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
	(bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
	__builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
	__builtin_ia32_pdep_di and __builtin_ia32_pext_di.

2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR driver/70132
	* config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
	to not call fclose twice on file.

2016-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (thumb1_reorg): Check that the comparison is
	against the constant 0.

2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: Correct pasto error for
	stxvd2x and stxvw4x built-in functions.

2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/70098
	* config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
	*ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
	(define_split for the GPR case): Use int_reg_operand instead of
	gpc_reg_operand for the output.

2016-04-22  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.

2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/70674
	* config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
	stack_restore_from_fpr pattern when restoring r15.
	(s390_optimize_prologue): Strip away the memory barrier in the
	parallel when trying to get rid of restore insns.
	* config/s390/s390.md ("stack_restore_from_fpr"): New insn
	definition for loading the stack pointer from an FPR.  Compared to
	the normal move insn this pattern includes a full memory barrier.

2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70662
	* config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
	Fix mode size check.

2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70662
	* config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
	Use proper memory operand modifiers.

2016-04-14  Nick Clifton  <nickc@redhat.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/70044
	* config/aarch64/aarch64.c
	(aarch64_override_options_after_change): When forcing
	flag_omit_frame_pointer to be true, use a special value that can
	be detected if this function is called again, thus preventing
	flag_omit_leaf_frame_pointer from being forced to be false.

2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/70630
	* config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.

2016-04-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/70566
	* config/arm/thumb2.md (tst + branch-> lsls + branch
	peephole below *orsi_not_shiftsi_si): Require that condition
	register is dead after the peephole.
	(second peephole after the above): Likewise.

2016-04-11  Alan Modra  <amodra@gmail.com>

	PR target/70117
	* builtins.c (fold_builtin_classify): For IBM extended precision,
	look at just the high-order double to test for NaN.
	(fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
	test just the high double for Inf but both doubles for subnormal
	limit.

2016-04-09  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/70416
	PR target/67391
	* config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
	set, but not for SP_REG operands.

2016-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
	(ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70177
	* gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
	(extract_ops_from_tree): ... this.  In the 2 argument
	overload remove _1 suffix.
	* gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
	(extract_ops_from_tree): ... this.
	* gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
	Adjust callers.
	* tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
	* tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
	extract_ops_from_tree instead of 2 operand one.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-24  Richard Biener  <rguenther@suse.de>
		    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69760
	* tree-scalar-evolution.c (interpret_rhs_expr): Re-write
	conditionally executed ops to well-defined overflow behavior.

	2016-03-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69983
	* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
	types and fall back to operand_equal_p.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/68963
	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
	bogus check.
	(record_nonwrapping_iv): Do not fall back to the low/high bound
	for non-constant IV bases if the stmt is not always executed.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/70022
	* fold-const.c (fold_indirect_ref_1): Fix range checking for
	vector BIT_FIELD_REF extract.

	2016-03-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70115
	* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
	(propagate_constants_for_unrolling): Use replace_uses_by.

	2016-03-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/70424
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
	use alignment returned by get_pointer_alignment_1 if it is
	bigger than BITS_PER_UNIT.
	* builtins.c (get_pointer_alignment_1): Do not return true
	for alignment extracted from SSA info.

2016-04-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-03-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/70450
	* fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from
	usage.

	2016-03-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/70333
	* fold-const.c (extract_muldiv_1): Properly perform multiplication
	in the wide type.

	2016-04-04  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/70484
	* rtl.h (canon_output_dependence): Declare.
	* alias.c (canon_output_dependence): New function.
	* dse.c (record_store): Use canon_output_dependence rather
	than canon_true_dependence.

2016-04-05  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/predicates.md (integer_store_memory_operand): Accept
	REG+D operands with a large offset when reload_in_progress is true.
	(floating_point_store_memory_operand): Likewise.

2016-04-05  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2015-12-08  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix
	assembler to make source always 128bit.

2016-04-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70510
	* config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.

2016-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/70525
	* config/i386/sse.md (*andnot<mode>3): Simplify assertions.
	Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
	V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
	(*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.

2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Jakub Jelinek <jakub@redhat.com>

	PR middle-end/70457
	* tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
	to ensure a call statement is compatible with a built-in's
	prototype.
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
	(pass_cse_sincos::execute): Likewise.
	(pass_optimize_widening_mul::execute):	Likewise.

2016-01-04  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline
	2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68236
	* haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
	if insn_queue doesn't exist.
	(haifa_sched_finish): Reset insn_queue to NULL.

2016-04-01  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline
	2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>

	PR target/67896
	* config/aarch64/aarch64-builtins.c
	(aarch64_init_simd_builtin_types): Do not set structural
	equality to __Poly{8,16,64,128}_t types.

2016-03-31  Nathan Sidwell  <nathan@acm.org>

	PR c++/70393
	* varasm.c (output_constructor_regular_field): Flush bitfield
	earlier.  Assert we don't want to move backwards.

2016-03-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/sync.md (arm_atomic_loaddi2_ldrd): Fix output template
	for non-unified syntax.

2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70453
	* config/i386/sse.md (define_mode_attr shuffletype): Fix typo.

2016-03-31  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2016-03-12  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69307
	* sel-sched.c (choose_best_pseudo_reg): Properly check for hard
	registers in modes that span more than one register.

2016-03-31  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2016-03-21  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69102
	* sched-deps.c (sched_analyze_insn): Do not set last_args_size field
	when we have a readonly dependency context.

2016-03-31  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/69032
	* sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
	looping backwards over basic block insns.

2016-03-31  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR target/66660
	* sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
	to non-speculative when propagating trap bits.

2016-03-31  Andrey Belevantsev  <abel@ispras.ru>

	Backport from mainline
	2016-03-15  Andrey Belevantsev  <abel@ispras.ru>

	PR target/64411
	* sched-deps.c (get_implicit_reg_pending_clobbers): New function,
	factored out from ...
	(sched_analyze_insn): ... here.
	* sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
	* sel-sched-ir.c (setup_id_implicit_regs): New function, use
	get_implicit_reg_pending_clobbers in it.
	(setup_id_reg_sets): Use setup_id_implicit_regs.
	(deps_init_id): Ditto.

2016-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70460
	* ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
	with operand from REG_LABEL_OPERAND, instead substitute
	SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
	Don't do anything for REG_NON_LOCAL_GOTO jumps.

2016-03-31  Alan Modra  <amodra@gmail.com>

	Backport from mainline
	2016-02-16  Alan Modra  <amodra@gmail.com>
	PR target/68973
	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
	(p8_mtvsrd_df, p8_mtvsrd_sf): New.
	(p8_mtvsrd_1, p8_mtvsrd_2): Delete.
	(p8_mtvsrwz): New.
	(p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
	(p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
	(p8_fmrgow_<mode>): Likewise.
	(reload_vsx_from_gpr<mode>): Adjust for above.  Use "wa" for
	clobber constraint.
	(reload_fpr_from_gpr<mode>): Adjust for above.  Use "d" for
	op0 constraint.
	(reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
	to use movdi_internal64.  Remove op0_di.
	* config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.

2016-03-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/69917
	* config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
	transparent alias chain for decl assembler name.
	* config/sol2.c (solaris_assemble_visibility): Likewise.

2016-03-30  Vladimir Makarov  <vmakarov@redhat.com>

	Backported from the mainline
	2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/69614
	* lra-constraints.c (delete_move_and_clobber): New.
	(remove_inheritance_pseudos): Use it.

2016-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/70421
	* config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
	in gen_blendm expander.

	Backported from mainline
	2016-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70429
	* combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
	(cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
	mode != result_mode.

	2016-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/70329
	* config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
	d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
	in a way that works also for AVX512BW.

	2016-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/70296
	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
	function-like macro, peek following token(s) if it is followed
	by CPP_OPEN_PAREN token with optional padding in between, and
	if not, don't treat it like a macro.

	2016-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/70222
	* combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
	optimization if mode is different from result_mode, queue up masking
	of the result in outer_op.  Formatting fix.

	2016-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70169
	* tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
	LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
	for unknown codes.

	2016-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/70152
	* tree-sra.c (replace_removed_params_ssa_names): Copy over
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.

	2016-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/70062
	* config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
	2016-02-22 changes, instead don't recurse if RECUR is already true.
	Don't change *dynamic_check if RECUR.  Adjust recursive caller
	to pass true to the new argument.
	(ix86_expand_set_or_movmem): Adjust decide_alg caller.

	2016-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/69888
	* config/i386/i386.c (decide_alg): Ensure we don't recurse with
	identical arguments.  Formatting and spelling fixes.

	2016-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/70028
	* config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
	(*movhi_internal): Put mask moves from and to memory separately
	from moves from/to GPRs.

	2016-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/69969
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	complain about -mallow-movmisalign without -mvsx if
	TARGET_ALLOW_MOVMISALIGN was not set explicitly.

	2016-02-26  Jakub Jelinek  <jakub@redhat.com>
		    Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/69891
	* dse.c (scan_insn): If we can't figure out memset arguments
	or they are non-constant, call clear_rhs_from_active_local_stores.

	2016-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/69705
	* dwarf2out.c (gen_variable_die): Work around buggy LTO
	- allow NULL decl for Fortran DW_TAG_common_block variables.

	2016-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69838
	* lra.c (lra_process_new_insns): If non-call exceptions are enabled,
	call copy_reg_eh_region_note_forward on before and/or after sequences
	and remove note from insn if it no longer can throw.

	2016-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69802
	* tree-ssa-reassoc.c (update_range_test): If op is
	SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
	op == 1 test of precision 1 integral op, otherwise handle
	that case as op itself.  Fix up formatting.
	(optimize_range_tests_to_bit_test, optimize_range_tests): Fix
	up formatting.

	PR rtl-optimization/69764
	PR rtl-optimization/69771
	* optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
	op1 is valid for GET_MODE_INNER (mode) and force it into a reg.

	2016-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/69764
	PR rtl-optimization/69771
	* optabs.c (expand_binop_directly): For shift_optab_p, force
	convert_modes with VOIDmode if xop1 has VOIDmode.

	PR ipa/68672
	* ipa-split.c (split_function): Compute retval early in all cases
	if split_part_return_p and return_bb is not EXIT.  Remove all
	clobber stmts and reset all debug stmts that refer to SSA_NAMEs
	defined in split part, except if it is retval, in that case replace
	the old retval with the lhs of the call to the split part.

2016-03-30  Alan Modra  <amodra@gmail.com>

	PR target/70052
	* config/rs6000/constraints.md (j): Simplify.
	* config/rs6000/predicates.md (easy_fp_constant): Exclude
	decimal float 0.D.
	* config/rs6000/rs6000.md (zero_fp): New mode_attr.
	(mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
	 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
	in all constraint alternatives.
	(movtd_64bit_nodm): Delete "j" constraint alternative.

2016-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69875
	* config/arm/arm.h (TARGET_HAVE_LPAE): Define.
	* config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
	* config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
	(atomic_loaddi_1): Delete.
	(atomic_loaddi): Rewrite expander using the above changes.

2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70406
	* config/i386/i386.md (define_split, andn): Fix modes.

2016-03-24  John David Anglin  <danglin@gcc.gnu.org>

	PR target/70319
	* config/pa/pa.md (bswapdi2): Use a scratch register.

2016-03-22  Martin Liska  <mliska@suse.cz>

	backport from trunk:

	2016-03-21  Martin Liska  <mliska@suse.cz>

	PR ipa/70306
	* ipa-icf.c (sem_function::parse): Skip static
	constructors and destructors.

2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70325
	* config/i386/i386.c (def_builtin): Handle
	OPTION_MASK_ISA_AVX512VL to be and-ed with other bits.
	(const struct builtin_description bdesc_special_args[]):
	Remove duplicate ISA bits.

2016-03-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/70327
	* config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
	of ix86_expand_move.
	(movoi): Ditto.
	(movti): Use general_operand for operand 1 predicate.

2016-03-21  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	PR ipa/70269
	2016-03-18  Tom de Vries  <tom@codesourcery.com>

	* cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.

2016-03-21  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	2016-03-18  Tom de Vries  <tom@codesourcery.com>

	PR ipa/70161
	* cgraph.c (cgraph_node::get_body): Save, reset and restore
	dump_file_name.
	* passes.c (execute_one_ipa_transform_pass): Add missing argument to
	execute_function_dump.
	(execute_one_pass): Don't dump function if it will be dumped after ipa
	transform.

2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/70293
	* config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
	Block third alternative for AVX-512VL target,

2016-03-17  John David Anglin  <danglin@gcc.gnu.org>

	PR target/70188
	* config/pa/constraints.md: Revert 2015-02-13 change.  Use
	define_constraint for "Q" and "T" constraints.

2016-03-16  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/69195
	PR rtl-optimization/47992
	* ira.c (indirect_jump_optimize): Ignore artificial defs.
	Add comments.

2016-03-15  Bernd Schmidt  <bschmidt@redhat.com>

	Backport from mainline
	2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/69941
	* postreload.c (reload_combine_recognize_pattern): Ensure all uses of
	the reg share its mode.

2016-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from mainline
	2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70131
	* config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
	optimization if we have direct move.
	(roundu32<mode>2_fprs): Likewise.

2016-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/62281
	* config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.

2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/70168
	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
	Handle overlapping retval and newval.

2016-03-10  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/69195
	PR rtl-optimization/47992
	* ira.c (recorded_label_ref): Delete.
	(update_equiv_regs): Return void.
	(indirect_jump_optimize): New function.
	(ira): Call indirect_jump_optimize and delete_trivially_dead_insns
	before regstat_compute_ri.  Don't rebuild_jump_labels here.

2016-03-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69666
	PR middle-end/69920
	* tree-sra.c (sra_modify_assign): Do not attempt to create
	default_def replacements for unscalarizable regions.  Do not
	remove loads of uninitialized aggregates to SSA_NAMEs.

2016-03-07  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline
	2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65932
	PR target/67714
	* config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
	the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.

2016-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/70059
	* config/i386/sse.md (vec_set_lo_<mode><mask_name>,
	<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
	fixes.
	(vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.

2016-03-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* targhooks.c (default_target_option_pragma_parse): Do not warn if
	called on behalf of "#pragma GCC pop_options".

2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/70007
	* gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
	references present in REG_EQUAL notes attached to non-SET patterns.

2016-02-27  Jeff Law  <law@redhat.com>

	Revert
	2016-02-26  Richard Biener  <rguenther@suse.de>
		    Jeff Law  <law@redhat.com>

	Backport from mainline
	2016-02-26  Richard Biener  <rguenther@suse.de>
		    Jeff Law  <law@redhat.com>

	PR tree-optimization/69740
	* cfghooks.c (remove_edge): Request loop fixups if we delete
	an edge that might turn an irreducible loop into a natural
	loop.

2016-02-26  Richard Biener  <rguenther@suse.de>
	    Jeff Law  <law@redhat.com>

	Backport from mainline
	2016-02-26  Richard Biener  <rguenther@suse.de>
		    Jeff Law  <law@redhat.com>

	PR tree-optimization/69740
	* cfghooks.c (remove_edge): Request loop fixups if we delete
	an edge that might turn an irreducible loop into a natural
	loop.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md: Add missing commutative operand markers
	to the patterns which qualify for one.
	* config/s390/vx-builtins.md: Likewise.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md (VI, VI_QHS): Add single element vector
	types to mode iterators.
	(vec_double): ... and mode attribute.
	* config/s390/vx-builtins.md (non_vec_int): Likewise.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
	Change the predicate of op2 from nonimmediate to general and let
	reload fix it if necessary.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vecintrin.h (vec_sub_u128): Define missing macro.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_vcond): Use the compare operand
	mode.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
	* config/s390/s390.c (s390_expand_vec_movstr): New function.
	* config/s390/s390.md ("movstr<P:mode>"): Call
	s390_expand_vec_movstr.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md: Add missing output modifier for operand 1
	to print it as address properly.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
	* config/s390/2964.md: New file.
	* config/s390/s390.c (s390_get_sched_attrmask): Use the right set
	of insn grouping attributes depending on the CPU level.
	(s390_get_unit_mask): New function.
	(s390_sched_score): Remove the OOO from the scheduling macros.
	Add loop to calculate a score for the instruction mix.
	(s390_sched_reorder): Likewise plus improve debug output.
	(s390_sched_variable_issue): Rename macros as above.  Calculate
	the unit distances after actually scheduling an insn.  Improve
	debug output.
	(s390_sched_init): Clear last_scheduled_unit_distance array.
	* config/s390/s390.md: Include 2964.md.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_register_info_set_ranges): Remove
	superfluous loops.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_call): Add missing 64 bit check.

2016-02-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/69625
	* config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New
	defines.
	(s390_register_info_gprtofpr): Use new macros above.
	(s390_register_info_stdarg_fpr): Adjust max_fpr to better match
	its name.
	(s390_register_info_stdarg_gpr): Adjust max_gpr to better match
	its name.  Adjust restore and save gpr ranges.
	(s390_register_info_set_ranges): New function.
	(s390_register_info): Use new macros above.  Call
	s390_register_info_set_ranges.
	(s390_optimize_register_info): Likewise.
	(s390_hard_regno_rename_ok): Use new macros.
	(s390_hard_regno_scratch_ok): Likewise.
	(s390_emit_epilogue): Likewise.
	(s390_can_use_return_insn): Likewise.
	(s390_optimize_prologue): Likewise.
	* config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.

2016-02-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
	declaration name with %qs and print it in both error messages.  Also
	fix indentation.

2016-02-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR other/69006
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
	trailing blank line from error message.

2016-02-25  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	Backport from mainline
	2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/predicates.md: Change and rename
	constm1_operand to all_ones_operand
	* config/s390/s390.c (s390_expand_vcond): Use all_ones_operand
	* config/s390/vector.md: Likewise

2016-02-25  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69776
	* tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
	* tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
	indicate whether we can use TBAA to disambiguate against stores.
	Use alias-set zero if not.
	(visit_reference_op_store): Do not use TBAA when looking up
	redundant stores.
	* tree-ssa-pre.c (compute_avail): Use TBAA here.
	(eliminate_dom_walker::before_dom_children): But not when looking
	up redundant stores.

	2016-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69776
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
	sets from caller.
	(indirect_refs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Pass alias sets as from ao_ref.
	* tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
	according to tbaa_p.
	* tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
	(optimize_stmt): For redundant store discovery do not allow tbaa.

2016-02-24  Martin Jambor  <mjambor@suse.cz>

	revert:
	2016-02-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69666
	* tree-sra.c (sra_modify_assign): Do not attempt to create
	default_def replacements for unscalarizable regions.

2016-02-24  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-02-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69609
	* bb-reorder.c (struct bbro_basic_block_data): Add priority member.
	(find_traces_1_round): When ending a trace update cached priority
	of successors.
	(bb_to_key): Use cached priority when available.
	(copy_bb): Initialize cached priority.
	(reorder_basic_blocks_software_trace_cache): Likewise.

	2016-02-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69719
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Properly use absolute of the difference of the two offsets to
	compare or adjust the segment length.

	2016-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69719
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Adjust previous fix by ensuring that dr_a1 is left of dr_a2.

	2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69783
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Add trivially correct cases.

2016-02-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69666
	* tree-sra.c (sra_modify_assign): Do not attempt to create
	default_def replacements for unscalarizable regions.

2016-02-18  Bernd Schmidt  <bschmidt@redhat.com>

	Backport from mainline
	2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/69648
	* lra-constraints.c (update_ebb_live_info): Don't remove sets of
	pic_offset_table_rtx.

2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
	correct instruction.

2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>

	Backport from mainline
	2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/69752
	* ira.c (update_equiv_regs): When looking for more than a single SET,
	also take other side effects into account.

	Backport from mainline
	2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/68730
	* lra-remat.c (insn_to_cand_activation): New static variable.
	(lra_remat): Allocate and free it.
	(create_cand): New arg activation. Initialize a field in
	insn_to_cand_activation if it is nonnull.
	(create_cands): Pass the activation insn to create_cand when making
	a candidate involving an output reload.  Reorganize code a little.
	(do_remat): Keep track of active status of candidates in a separate
	bitmap.

	Backport from mainline
	2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>

	PR tree-optimization/69714
	* tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
	Return NULL if we have irrelevant high bytes on BIG_ENDIAN.

2016-02-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from trunk:
	2016-02-04  Jim Wilson  <jim.wilson@linaro.org>

	PR target/65932
	PR target/67714
	* config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
	HImode.

2016-02-16  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	PR lto/67709
	2016-02-16  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (simd_clone_create): Remove call to
	symtab->call_cgraph_insertion_hooks.

2016-02-16  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* omp-low.c (simd_clone_create): Set in_other_partition
	for created clones.

2016-02-15  John David Anglin  <danglin@gcc.gnu.org>

	Backport from mainline
	* config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.

2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67260
	* config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
	fixed R1_REG scratch reg.

2016-02-12  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline
	2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	PR rtl-optimization/69567
	PR rtl-optimization/69737
	* combine.c (distribute_notes) <REG_DEAD>: If the register is set
	in I2 as well, just lose it.

2016-02-11  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2016-01-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69308
	* gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.

	2016-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69574
	* tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
	of asserting return chrec_dont_know.

	2016-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69579
	* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
	Do not propagate through abnormal PHI results.

	2016-02-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69606
	* tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
	info on the result before moving a stmt.

	2016-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69715
	* tree-ssa.c (execute_update_addresses_taken): Mark non-decl
	LHS on calls as non-rewritable.

2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/69713
	* config/sh/sh.md (casesi_worker_0): Add T_REG use.

2016-02-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69546
	* wide-int.cc (wi::divmod_internal): For unsigned division
	where both operands fit into uhwi, if o1 is 1 and o0 has
	msb set, if divident_prec is larger than bits per hwi,
	clear another quotient word and return 2 instead of 1.
	Similarly for remainder with msb in HWI set, if dividend_prec
	is larger than bits per hwi.

	2016-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69399
	* wide-int.h (wi::lrshift): For larger precisions, only
	use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.

	2016-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/69432
	* config/i386/i386.c: Include dojump.h.
	(expand_small_movmem_or_setmem,
	expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
	fixes.
	(ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
	if dynamic_check != -1.

	2016-01-21  Stefan Sørensen  <stefan.sorensen@spectralink.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR target/69187
	PR target/65624
	* config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
	args array size by one to avoid buffer overflow.

	2016-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/67653
	* gimplify.c (gimplify_asm_expr): Warn if it is too late to
	attempt to mark memory input operand addressable and
	call prepare_gimple_addressable in that case.  Don't adjust
	input_location for diagnostics, use error_at instead.

	2016-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65779
	* shrink-wrap.c: Include valtrack.h.
	(move_insn_for_shrink_wrap): Add DEBUG argument.  If
	MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
	in between insn and where it will be moved to.  Call
	dead_debug_insert_temp.
	(prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
	first and dead_debug_local_finish at the end.
	For uses and defs bitmap, handle all regs in between REGNO and
	END_REGNO, not just the first one.

	PR rtl-optimization/68955
	PR rtl-optimization/64557
	* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
	here.  Fix up formatting.
	* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

	2016-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/68269
	* combine.c (expand_field_assignment): Punt if compute_mode is
	unsupported scalar mode.

	2016-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/69214
	* tree-vrp.c (simplify_cond_using_ranges): Don't propagate
	innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
	Formatting fix.

	2016-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/68960
	* gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
	it and DECL_ALIGN too.

	2016-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/69055
	* ubsan.c (ubsan_instrument_float_cast): Call
	initialize_sanitizer_builtins.

	PR target/69015
	* ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).

	2015-12-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67376
	* fold-const.c (size_low_cst): Removed.
	(fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR
	call get_inner_reference and handle INDIRECT_REF base of it.  Use
	offset_int for computation of the bitpos.
	(fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting
	fixes for X +- Y CMP X and C - X CMP X folding.  Add X CMP X +- Y
	and X CMP C - X folding.

2016-02-09  Bernd Schmidt  <bschmidt@redhat.com>

	PR middle-end/65702
	* varasm.c (make_decl_rtl): Mark invalid register vars as
	DECL_EXTERNAL.

2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline
	2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	PR rtl-optimization/69567
	* combine.c (distribute_notes) <REG_DEAD>: Place the death note
	before I2 only if the register is both used and set in I2.

2016-02-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2016-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/69644
	* config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
	Force oldval into register if it does not satisfy reg_or_short_operand
	predicate.  Fix up formatting.

2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/69118
	* config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
	Fix target.

2016-02-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67032
	* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.

2016-02-02  Alan Modra  <amodra@gmail.com>

	PR target/69548
	* config/rs6000/predicates.md (quad_int_reg_operand): Don't
	allow subregs.

2016-02-01  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
	PR target/68986
	* config/i386/i386.c (ix86_compute_frame_layout): Move stack
	alignment adjustment to ...
	(ix86_update_stack_boundary): Here.  Don't over-align stack nor
	change stack_alignment_needed for __tls_get_addr.
	(ix86_finalize_stack_realign_flags): Use stack_alignment_needed
	if __tls_get_addr is called.

2016-02-01  Richard Henderson  <rth@redhat.com>

	Backport from mainline.
	2016-01-28  Richard Henderson  <rth@redhat.com>

	PR target/69305
	* config/aarch64/aarch64-modes.def (CC_Cmode): New
	* config/aarch64/aarch64-protos.h: Update.
	* config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
	(aarch64_select_cc_mode): Add check for use of CC_Cmode.
	(aarch64_get_condition_code_1): Handle CC_Cmode.
	* config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
	(*add<mode>3_compareC_cconly_imm): New.
	(*add<mode>3_compareC_cconly): New.
	(*add<mode>3_compareC_imm): New.
	(add<mode>3_compareC): New.
	(add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
	to be first.  Use aarch64_carry_operation.
	(*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
	(*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
	(*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
	(subti3): Use subdi3_compare1.
	(*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
	(sub<mode>3_compare1): New.
	(*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
	(*sub<mode>3_carryin): Use aarch64_borrow_operation.
	(*subsi3_carryin_uxtw): Likewise.
	(*ngc<mode>, *ngcsi_uxtw): Likewise.
	(*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
	* config/aarch64/iterators.md (DWI): New.
	* config/aarch64/predicates.md (aarch64_carry_operation): New.
	(aarch64_borrow_operation): New.

2016-01-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69459
	* config/i386/constraints.md (C): Only accept constant zero operand.
	(BC): New constraint.
	* config/i386/sse.md (*mov<mode>_internal): Use BC constraint
	instead of C constraint.
	* doc/md.texi (Machine Constraints): Update description
	of C constraint.

2016-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/69551
	* config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
	SSE1, copy target into the temporary reg first before recursing
	on it.

2016-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/69542
	* lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
	non-debug insns.

2016-01-28  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/69447
	* lra-remat.c (subreg_regs): New.
	(dump_candidates_and_remat_bb_data): Dump it.
	(operand_to_remat): Reject if operand in subreg_regs.
	(set_bb_regs): Collect subreg_regs.
	(lra_remat): Init and free subreg_regs.  Compute
	calculate_local_reg_remat_bb_data before create_cands.

2016-01-28  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/69355
	* tree-sra.c (analyze_access_subtree): Correct hole detection when
	total_scalarization fails.

2016-01-26  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69110
	* tree-data-ref.c (initialize_data_dependence_relation): Handle
	DR_NUM_DIMENSIONS == 0.

2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.

2016-01-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69426
	* tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
	removed clobber.

2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69403
	* config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
	define_insn_and_split.  Ensure operands[1] and operands[0] do not
	get assigned the same register.

2016-01-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	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.

2016-01-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/67781
	* tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
	and cmpnop in two steps: first the ones not accessed in original
	gimple expression in a endian independent way and then the ones not
	accessed in the final result in an endian-specific way.

2016-01-20  Marek Polacek  <polacek@redhat.com>

	PR c/68513
	* match.pd ((x & ~m) | (y & m)): Only perform on GIMPLE.

2016-01-19  Sergei Trofimovich <siarheit@google.com>

	Backport from mainline
	PR other/60465
	* config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
	for local symbolic operands.
	* config/ia64/predicates.md (local_symbolic_operand64): New
	predicate.

2016-01-19  Jeff Law  <law@redhat.com>

	Backport from mainline
	2016-01-12  Jeff Law  <law@redhat.com>

	PR tree-optimization/pr67755
	* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
	"need_profile_correction".
	(thread_block_1): Initialize new field to false by default.  If we
	have multiple thread paths through a common joiner to different
	final targets, then set new field to true.
	(compute_path_counts): Only do count adjustment when it's really
	needed.

2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/69135
	* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
	attribute to unconditional.  Remove %? from output template.

2016-01-18  Alexander Fomin  <alexander.fomin@intel.com>

	Backport from mainline
	2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/67895
	* config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
	Adjust embedded rounding/SAE specifier position.
	(define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
	(define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
	(define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
	(define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
	(define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
	Likewise.
	(define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.

2016-01-18  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2016-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/69140
	* config/i386/i386.c (ix86_frame_pointer_required): Enable
	frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.

2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline:
	2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/68799
	* gimple-ssa-strength-reduction.c (create_phi_basis): Directly
	look up phi candidates in the statement-candidate map.
	(phi_add_costs): Likewise.
	(record_phi_increments): Likewise.
	(phi_incr_cost): Likewise.
	(ncd_with_phi): Likewise.
	(all_phi_incrs_profitable): Likewise.

2016-01-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	Backport from mainline
	2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
		    Jim Wilson  <jim.wilson@linaro.org>

	PR target/69194
	* config/arm/arm-builtins.c (arm_expand_neon_args): Call
	copy_to_mode_reg instead of force_reg.

2016-01-15  Alexander Fomin  <alexander.fomin@intel.com>

	Backport from mainline
	2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>

	PR target/69228
	* config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
	Change first operand predicate from register_or_constm1_operand
	to register_operand.
	(define_expand "avx512pf_gatherpf<mode>df"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>df"): Likewise.
	(define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
	(define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
	* config/i386/i386.c (ix86_expand_builtin): Remove first operand
	comparison with constm1_rtx from vec_prefetch_gen part.

2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69013
	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
	Exchange assert for a test.

2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2016-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/69198
	* config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
	aligned_mem is properly set for AVX512-VL floating point masked
	stores.

	2015-12-04  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* config/i386/sse.md (<avx512>_store<mode>_mask): Fix
	operand checked for alignment.

2016-01-12  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline r222186.
	2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/65689
	* genpreds.c (struct constraint_data): Add maybe_allows_reg and
	maybe_allows_mem bitfields.
	(maybe_allows_none_start, maybe_allows_none_end,
	maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
	maybe_allows_mem_end): New variables.
	(compute_maybe_allows): New function.
	(add_constraint): Use it to initialize maybe_allows_reg and
	maybe_allows_mem fields.
	(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
	is_address constraints such that those that allow neither mem nor
	reg come first, then those that only allow reg but not mem, then
	those that only allow mem but not reg, then the rest.
	(write_allows_reg_mem_function): New function.
	(write_tm_preds_h): Call it.
	* stmt.c (parse_output_constraint, parse_input_constraint): Use
	the generated insn_extra_constraint_allows_reg_mem function
	instead of always setting *allows_reg = true; *allows_mem = true;
	for unknown extra constraints.

2016-01-11  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_emit_move_sequence): Handle floating point
	reloads for other unsupported memory operands.

2016-01-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
	flag.

2016-01-11  Yury Gribov  <y.gribov@samsung.com>

	Backport from mainline
	2016-01-11  Yury Gribov  <y.gribov@samsung.com>

	PR 67425
	* common.opt (frandom-seed): Fix parameter name.
	* doc/invoke.texi (frandom-seed): Ditto and describe parameter.

2016-01-08  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2015-12-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/68851
	* cgraph.c (collect_callers_of_node_1): Do not collect thunks.
	* cgraph.h (cgraph_node): Change comment of collect_callers.

2016-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68648
	* config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
	the complement of operands[3] during splitting.

2015-12-31  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_insn "vec_dup<mode>"): Separate EVEX
	alternative.

2015-12-30  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
	Remove "prefix_extra".
	(define_insn "vec_extract_hi_<mode>_mask"): New.
	(define_insn "vec_extract_hi_<mode>"): Remove masking.

2015-12-25  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2015-12-25  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64
	defines. Use FBSD_DYNAMIC_LINKER instead.
	Rename and simplify LINK_OS_FREEBSD_SPEC_DEF32/64 to
	LINK_OS_FREEBSD_SPEC_DEF.

2015-12-22  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	PR target/68872
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le,
	pass %(asm_cpu_power8).

2015-12-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/68910
	* emit-rtl.c (set_unique_reg_note) <REG_EQUAL>: Add bypass for USEs.
	* config/sparc/sparc.md (anddi3): Enable only in 64-bit mode.
	(iordi3): Likewise.
	(xordi3): Likewise.
	(one_cmpldi2): Likewise.
	(*anddi3_sp32): Delete.
	(*and_not_di_sp32): Likewise.
	(*iordi3_sp32): Likewise.
	(*or_not_di_sp32): Likewise.
	(*xordi3_sp32): Likewise.
	(*xor_not_di_sp32): Likewise.
	(32-bit DImode logical operations splitter): Likewise.
	(*one_cmpldi2_sp32): Likewise.

2015-13-18  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68729
	* config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of
	floating-point reloads. Only reload operands that are not valid
	floating-point memory operands.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/predicates.md (const_mask_operand): New predicate.
	* config/s390/s390-builtins.def: Set a smaller bitmask for a
	few builtins.
	* config/s390/vector.md: Change predicate from immediate_operand
	to either const_int_operand or const_mask_operand.  Add special
	insn conditions on patterns which have to exclude certain values.
	* config/s390/vx-builtins.md: Likewise.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("*vec_set<mode>"): Change shift count
	mode from DI to SI.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin types added.
	* config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
	* config/s390/s390.c (s390_expand_builtin): Always truncate
	constants to the mode in the pattern.
	* config/s390/vecintrin.h: Let the vec_splat_* macros point to the
	respective builtin __builtin_s390_vec_splat_*.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: Sort builtin types.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_get_vstring_flags): Invert the
	condition for the RT flag.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md: Use private backport of
	const_vec_duplicate_p s390_const_vec_duplicate_p.
	* config/s390/s390-protos.h: Add prototype for
	s390_const_vec_duplicate_p.
	* config/s390/s390.c (s390_const_vec_duplicate_p): New function.
	(s390_contiguous_bitmask_vector_p): Use s390_const_vec_duplicate_p.
	(print_operand): Likewise.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline
	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md ("jKK"): New constraint.
	* config/s390/s390.c (tm-constrs.h): Include for
	satisfies_constraint_*.
	(s390_legitimate_constant_p): Allow jKK constants.  Use
	satisfies_constraint_* also for the others.
	(legitimate_reload_vector_constant_p): Likewise.
	(print_operand): Allow h output modifier on vectors.
	* config/s390/vector.md ("mov<mode>"): Add vrepi.

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backported from mainline

	2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
	letter I->K.

2015-12-18  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68835
	* tree.c (get_int_cst_ext_nunits): Return
	cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
	for all unsigned wi::neg_p (cst) constants.
	(build_new_int_cst): If cst.get_precision is not a multiple
	of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
	% HOST_BITS_PER_WIDE_INT.

2015-12-16  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68779
	* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
	(atomic_loaddi_1): Likewise.
	(atomic_storedi): Likewise.
	(atomic_storedi_1): Likewise.
	(atomic_loaddf): Likewise.
	(atomic_loaddf_1): Likewise.
	(atomic_storedf): Likewise.
	(atomic_storedf_1): Likewise.
	Move all atomic patterns to end of file.

2015-12-16  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-12-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68184
	* cgraphunit.c (cgraph_node::analyze): Set can_throw_external.

2015-12-16  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-12-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/68636
	* builtins.c (get_pointer_alignment_1): Take care of byte to
	bit alignment computation overflow.

	2015-11-30  Richard Biener  <rguenther@suse.de>

	PR c/68162
	* dwarf2out.c (gen_type_die_with_usage): Keep variant types
	of arrays.

2015-12-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* ipa-cp.c (propagate_constants_accross_call): Move thuk check...
	(call_passes_through_thunk_p): ...here.
	(find_more_scalar_values_for_callers_subset): Perform thunk checks
	like propagate_constants_accross_call does.

2015-12-14  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline.
	2015-12-09  James Greenhalgh  <james.greenhalgh@arm.com>

	PR rtl-optimization/67609
	* config/aarch64/aarch64-protos.h
	(aarch64_cannot_change_mode_class): Bring back.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Likewise.
	* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Likewise.
	* config/aarch64/aarch64.md (aarch64_movdi_<mode>low): Use
	zero_extract rather than truncate.
	(aarch64_movdi_<mode>high): Likewise.

2015-12-14  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2015-12-11  Martin Liska  <mliska@suse.cz>
		    Uros Bizjak  <ubizjak@gmail.com>

	PR target/67484
	* config/i386/i386.c (ix86_valid_target_attribute_tree):
	Use ggc_strdup to copy option_strings to opts->x_ix86_arch_string and
	opts->x_ix86_tune_string.

2015-12-13  Alexandre Oliva <aoliva@redhat.com>

	PR debug/67355
	* var-tracking.c (reverse_op): Don't add dummy zero to reverse
	ops that simplify back to the original value.
	* alias.c (refs_newer_value_p): Cut off recursion for
	expressions containing the original value.

2015-12-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68376
	PR rtl-optimization/68670
	* ifcvt.c (noce_try_abs): For one_cmpl allow < 0, >= 0
	or > -1 conditions regardless of negate, and disallow
	all other conditions.

2015-12-10  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2015-12-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h: Remove the redefinition of WCHAR_TYPE.

2015-12-10  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2015-12-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68701
	* config/i386/i386.c (ix86_option_override_internal): Enable
	-maccumulate-outgoing-args when %ebp is fixed due to stack
	realignment requirements.

2015-12-10  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r231224.
	2015-12-03  Ilya Enkovich  <enkovich.gnu@gmail.com>

	* cfgexpand.c (expand_gimple_stmt_1): Return statement with
	DECL as return value is allowed to have NULL bounds.

2015-12-10  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2015-04-30  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65948
	* ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
	to itself.

2015-12-09  John David Anglin  <danglin@gcc.gnu.org>

	PR target/68729
	* config/pa/pa.c (pa_emit_move_sequence): Don't check that mode is
	consistent with modes of the input and output operands when doing
	reloads to and from floating point registers.  Do reload for all
	address forms.

2015-12-09  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2015-12-09  Martin Liska  <mliska@suse.cz>

	PR ipa/68790
	* ipa-icf.c (sem_function::param_used_p): Return true
	if ipa_node_params_sum equals to NULL.

2015-12-07  Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	2015-12-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68680
	* calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for
	BUILT_IN_ALLOCA{,_WITH_ALIGN}.  Don't check for __builtin_alloca
	by name.

	PR tree-optimization/68671
	* tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic
	blocks starting with the successor of first bb we've modified
	and ending with last_bb call reset_flow_sensitive_info_in_bb.

2015-12-04  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
	rs6000_current_abi to ABI_AIX or ABI_ELFv2.

2015-12-04  Richard Biener  <rguenther@suse.de>

	* BASE-VER: Set to 5.3.1.

2015-12-04  Release Manager

	* GCC 5.3.0 released.

2015-11-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
	Remove support for FreeBSD 5 and earlier.

2015-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68552
	* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
	(expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
	or whether v0 == v1.

2015-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Backport from mainline
	2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/67037
	* lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.

2015-11-26  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2015-11-25  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
	both the symbol and the "dot" symbol for function descriptors. Fix
	inversion for rename of symbols with dollar sign.

2015-11-26  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r230938.
	2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/68416
	* config/i386/i386.h (enum reg_class): Add
	bounds registers to ALL_REGS.

2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
		    Bernd Schmidt  <bschmidt@redhat.com>

	PR rtl-optimization/67226
	* calls.c (store_one_arg): Take into account
	crtl->args.pretend_args_size when checking for overlap between
	arg->value and argblock + arg->locate.offset during sibcall
	optimization.

2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/67954
	* lra-constraints.c (curr_insn_transform): Add check on scratch
	pseudo when change class to NO_REGS.  Add an assert.

2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport form mainline
	2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
		    Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
	(Fv2): New mode attribute to be used when ISA 2.07 instructions
	are used on SF values, and ISA 2.06 instructions on DF values.
	(add<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(div<mode>3_fpr): Use <Fv2> instead of <Fv>.
	(sqrt<mode>2): Use <Fv2> instead of <Fv>.
	(fre<Fs>): Use <Fv2> instead of <Fv>.
	(rsqrt<mode>2): Use <Fv2> instead of <Fv>.
	(cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
	(xsrdpi<mode>): Add support for the lround function.
	(lround<mode>di2): Likewise.
	(fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
	(nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.

2015-11-24  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
	commit from r125920 for FreeBSD.

2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r230796.
	2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR c/68337
	* gimple-fold.c: Include ipa-chkp.h.
	(gimple_fold_builtin_memory_op): Don't fold call if we
	are going to instrument it and it may copy pointers.

2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
		    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/68194
	PR rtl-optimization/68328
	PR rtl-optimization/68185
	* ree.c (combine_reaching_defs): Reject copy_needed case if
	copies_list is not empty.

2015-11-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/68221
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
	use mem_ref_offset.

2015-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/68483
	* tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
	is valid vec_shr pattern, don't lower it even if can_vec_perm_p
	returns false.
	* optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
	whenever first is nelt or above.  Don't mask expected with
	2 * nelt - 1.

2015-11-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from mainline
	2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
		    Peter Bergner  <bergner@vnet.ibm.com>

	PR target/67808
	* config/rs6000/rs6000.md (extenddftf2): In the expander, only
	allow registers, but provide insns for the combiner to create for
	loads from memory. Separate VSX code from non-VSX code. For
	non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
	externaldftf2_internal to externaldftf2_fprs. Reorder constraints
	so that registers come before memory operations. Drop support from
	converting DFmode to TFmode, if the DFmode value is in a GPR
	register.
	(extenddftf2_fprs): Likewise.
	(extenddftf2_internal): Likewise.
	(extenddftf2_vsx): Likewise.
	(extendsftf2): In the expander, only allow registers, but provide
	insns for the combiner to create for stores and loads.

2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68363
	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
	that are not INSN_P.

2015-11-23  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
		    Martin Liska  <mliska@suse.cz>

	PR ipa/65908
	* ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
	construction of arg_types.
	(sem_function::sem_function): Likewise.
	(sem_function::~sem_function): Remove destruction of arg_types.
	(sem_function::compatible_parm_types_p): New function.
	(sem_function::equals_wpa): Reorg matching of return values
	and parameter types.
	(sem_function::equals_private): Reorg mathcing of argument types.
	(sem_function::parse_tree_args): Remove.
	(sem_function::param_used_p): New function.
	* ipa-icf.h (init_wpa): Do not call it.
	(parse_tree_args): Remove.
	(compatible_parm_types_p): Declare.
	(result_type): Remove.
	(arg_types): Remove.
	(param_used_p): Declare.

2015-11-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-10-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/56956
	* fold-const.c (fold_cond_expr_with_comparison): Do not fold
	unsigned conditonal negation to ABS_EXPR.

2015-11-22  Dominique d'Humieres  <dominiq@lps.ens.fr>

	Backport from mainline
	2015-09-14  Manuel López-Ibáñe<manu@gcc.gnu.org>

	PR fortran/67460
	* diagnostic.c (diagnostic_initialize): Do not set
	some_warnings_are_errors.
	(diagnostic_finish): Use DK_WERROR count instead.
	(diagnostic_report_diagnostic): Do not set
	some_warnings_are_errors.
	* diagnostic.h (struct diagnostic_context): Remove
	some_warnings_are_errors.

2015-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/66432
	* tree-inline.c (copy_debug_stmt): If
	gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
	in decl_debug_args, don't call remap_gimple_op_r on it.

2015-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/68339
	* omp-low.c (expand_simd_clones): Call node->get_body () before
	allocating stuff in GC.

2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/md.texi (Standard Names): Move entry for addptr3 around,
	add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
	glitch in entries for cbranch4 and jump.

2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	* config/s390/s390.md ("bswaphi2"): New pattern.

2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	* config/s390/s390.md (GPR1_REGNUM): New constant.
	("*trunc<BFP:mode><DFP_ALL:mode>2")
	("*trunc<DFP_ALL:mode><BFP:mode>2")
	("trunc<BFP:mode><DFP_ALL:mode>2")
	("trunc<DFP_ALL:mode><BFP:mode>2")
	("*extend<BFP:mode><DFP_ALL:mode>2")
	("*extend<DFP_ALL:mode><BFP:mode>2")
	("extend<BFP:mode><DFP_ALL:mode>2")
	("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.

2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/61313
	* configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
	by the user.
	* configure: Regenerate.

2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/68408
	* config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
	(DTORS_SECTION_ASM_OP): Likewise.

2015-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/68376
	* ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
	encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.

	PR target/67770
	* config/i386/i386.md (simple_return): Disable if
	ix86_static_chain_on_stack is true.

2015-11-18  Richard Henderson  <rth@redhat.com>

	Backport from mainline
	PR rtl-opt/67609
	* config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
	sse check to the exact conditions of PR 67609.

	* config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
	narrowing subregs on SSE and MMX registers.
	* doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
	appear to be sub-words of multi-register pseudos must be rejected.
	* doc/tm.texi: Regenerate.

2015-11-18  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-11-07  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/68057
	PR ipa/68220
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
	issue when offset is out of range.
	(contains_type_p): Fix out of range check, clear dynamic flag.

	2015-10-23  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/pr67600
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
	instance offset with offset of outer type.

	2015-10-12  Richard Biener  <rguenther@suse.de>

	PR ipa/67783
	* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
	code that analyzes IVs on each stmt but in a cheaper way avoiding
	quadratic behavior.

	2015-10-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/67056
	* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
	is negative we don't know the type.
	(check_stmt_for_type_change): Skip constructors of non-polymorphic
	types as those won't help devirutalization.

	2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/66098
	PR c/66711
	* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
	account when deciding what was the command-line status.

2015-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68143
	* config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
	offset from dstbase and use it appropriately in
	adjust_automodify_address.
	(arm_block_set_aligned_vect): Likewise.

2015-11-18  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-10-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/68067
	* fold-const.c (negate_expr_p): We cannot negate plus or minus
	if overflow is not wrapping.  Likewise multiplication unless
	one operand is constant and not power of two.
	(fold_negate_expr): Adjust accordingly.

	2015-10-26  Richard Biener  <rguenther@suse.de>
		Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR middle-end/67443
	* alias.c (ao_ref_from_mem): Remove promoted subreg handling.
	Properly prune ref->ref for accesses outside of ref.

	2015-10-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68017
	* tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.

	2015-09-23   Richard Biener  <rguenther@suse.de>

	PR middle-end/67662
	* fold-const.c (fold_binary_loc): Do not reassociate two vars with
	undefined overflow unless they will cancel out.

2015-11-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/68157
	* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
	pow_stmt or mul_stmt from stmt's uid.
	(reassociate_bb): Set uid of mul_stmt from stmt's uid.

2015-11-16  Charles Baylis  <charles.baylis@linaro.org>

	Backport from mainline r227407
	PR ipa/67280
	* cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
	in new callgraph edge.

2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
		    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/68277
	* config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
	operands[2].
	(*addsi3): Add another insn_and_split variant for reload.

2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/67265
	* config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
	assertion on the CFA register.

2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/67265
	* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
	frame pointer for stack checking if non-call exceptions aren't used.
	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.

2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68129
	* config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
	* config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
	Delete VOIDmode case.  Assert that mode is not VOIDmode.
	* config/aarch64/predicates.md (const0_operand): Remove const_double
	match.

2015-11-10  James Greenhalgh  <james.greenhalgh@arm.com>

	Partial backport from trunk r228751.
	PR tree-optimization/68238
	2015-10-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Use
	LOOP_VINFO_COMP_ALIAS_DDRS to estimate alias versioning cost.

2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/57845
	* config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
	not promote the mode for aggregate types.

2015-11-09  Mike Stump  <mikestump@comcast.net>

	PR debug/66728
	* dwarf2out.c (get_full_len): Return a value based upon the actual
	precision needed for the value.
	(add_const_value_attribute): Use a maximal wide-int for
	CONST_WIDE_INTs, not VOIDmode.
	(output_die): Don't ever output NULL with printf.

	* rtl.h (get_precision of rtx_mode_t): Ensure we never process
	BLKmode nor VOIDmode values.

2015-11-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68106
	* lra-remat.c (input_regno_present_p): Process hard regs
	explicitly present in machine description insns.
	(call_used_input_regno_present_p): Ditto.
	(calculate_gen_cands): Ditto.
	(do_remat): Ditto.

2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/freebsd64.h (ASM_SPEC32): Adapt spec to handle PIE
	executables.

2015-11-02  Steve Ellcey  <sellcey@imgtec.com>

	Backport from mainline
	2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
		    Andrew Pinski  <apinski@cavium.com>

	PR rtl-optimization/67736
	* combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
	of gen_lowpart.

2015-10-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/68102
	* config/aarch64/aarch64.md (*movsi_aarch64): Check that
	operands[0] is a reg before taking its REGNO in split condition.
	(*movdi_aarch64): Likewise.

2015-10-27  Caroline Tice  <cmtice@google.com.

	(from Richard Biener)
	* tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
	call to interative_hash_host_wide_int.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/67989
	* optabs.c (expand_atomic_compare_and_swap): Handle case when
	ptarget_oval or ptarget_bool are const0_rtx.

2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/67929
	* config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
	* config/arm/constraints.md (Dp): Update callsite.
	* config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.

2015-10-27  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (replace_removed_params_ssa_names): Change type of
	parameter stmt to gimple.

2015-10-26  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2015-10-09  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/67794
	* tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
	between types of statements but accept original definitions as a
	parameter.
	(ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
	iterate over definitions.

2015-10-25  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/68079
	* dojump.c (do_compare_and_jump): Canonicalize both function and
	method types.

2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/68015
	* config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
	already have a comparison result.

2015-10-22  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2015-10-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/68018
	* config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
	for 64-bit MS_ABI targets also when default incoming stack boundary
	is overriden.

2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline r229024
	2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66912
	* varasm.c (default_binds_local_p_2): Turn on extern_protected_data.

2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>

	* wide-int.h (struct binary_traits): Fix partial specialization syntax.
	(struct int_traits): Likewise.

2015-10-16  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/66311
	* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
	is zero- rather than sign-extended.

2015-10-15  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline
	2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
		    Torvald Riegel  <triegel@redhat.com>

	PR target/67281
	* config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
	(tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
	trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
	(*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
	*trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
	(tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
	trechkpt, treclaim, tsr, ttest): New define_expands.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__TM_FENCE__ for htm.
	* doc/extend.texi: Update documentation for htm builtins.

2015-10-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67967
	* config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
	REG_CFA_EXPRESSION to aligned SSE stores.

2015-10-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67940
	* config/i386/i386.c (ix86_compute_frame_layout): Correct
	stack alignment adjustment.
	(ix86_expand_prologue): Likewise.

2015-10-12  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Round up the
	SSE register save area to 16 bytes only if the incoming stack
	boundary is no less than 16 bytes.

	Backport from mainline
	2015-10-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66697
	* config/i386/i386.c (ix86_option_override_internal): Always use
	8-byte minimum stack boundary in 64-bit mode.
	(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
	(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
	Add a REG_CFA_EXPRESSION note if needed.
	(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
	(ix86_handle_force_align_arg_pointer_attribute): New.
	(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
	(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
	with ix86_handle_force_align_arg_pointer_attribute.
	* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.

2015-10-12  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/67850
	* config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
	(ix86_set_current_function): This.
	(TARGET_EXPAND_TO_RTL_HOOK): Removed.

2015-10-12  Alexander Fomin  <alexander.fomin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/67849
	* config/i386/sse.md (define_split vec_select/V8FI): Restrict
	split for upper-bank registers when target does not support
	AVX512VL.
	(define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
	split when target does not support AVX512VL.

2015-10-12  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-07-21  Mike Frysinger  <vapier@gentoo.org>
		    Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* configure.ac: Add check for new options in isl-0.15.
	* config.in, configure: Rebuilt.
	* graphite-blocking.c: Include <isl/constraint.h>
	* graphite-interchange.c,  graphite-poly.c: Likewise.
	* graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
	<isl/union_set.h>.
	* graphite-dependences.c: Include <isl/constraint.h>.
	(max_number_of_out_dimensions): Returns isl_stat.
	(extend_schedule_1): Likewise
	(extend_schedule): Corresponding changes.
	* graphite-optimize-isl.c: Include <isl/constraint.h> and
	<isl/union_set.h>.
	(getSingleMap): Change return type of isl_stat.
	(optimize_isl): Conditionally use
	isl_options_set_schedule_serialize_sccs.
	* graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
	if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.

2015-10-10  Alexandre Oliva <aoliva@redhat.com>

	PR debug/58315
	* tree-inline.c (reset_debug_binding): New.
	(reset_debug_bindings): Likewise.
	(expand_call_inline): Call it.

2015-10-08  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2015-09-17  Richard Henderson  <rth@redhat.com>

	PR libstdc++/65913
	* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
	pointers that encode the alignment of the object.

2015-10-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-09-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/67563
	* gimple-fold.c (gimplify_and_update_call_from_tree): Do not
	transfer EH info from old to new stmt.
	(replace_call_with_value): Likewise.
	(replace_call_with_call_and_fold): Likewise.
	(gimple_fold_builtin_memory_op): Likewise.
	(gimple_fold_builtin_memset): Likewise.
	(gimple_fold_builtin_stpcpy): Likewise.
	(gimple_fold_call): Likewise.

	2015-09-24  Richard Biener  <rguenther@suse.de>

	PR lto/67699
	* lto-cgraph.c (compute_ltrans_boundary): Do not stream
	abstract origins.

2015-10-06  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
	(expand_vec_perm_even_odd_1): Handle V64QImode.
	(ix86_expand_vec_perm_const_1): Try expansion with
	expand_vec_perm_even_odd_trunc as well.
	* config/i386/sse.md (VI124_AVX512F): Rename to ...
	(define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
	to V54QI.
	(define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
	(define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
	to V32HI and V16SI.
	(define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
	(define_expand "vec_pack_trunc_<mode>"): Update iterator name.
	(define_expand "vec_unpacks_lo_<mode>"): Ditto.
	(define_expand "vec_unpacks_hi_<mode>"): Ditto.
	(define_expand "vec_unpacku_lo_<mode>"): Ditto.
	(define_expand "vec_unpacku_hi_<mode>"): Ditto.

2015-10-05  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-10-05  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67821
	* tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.

2015-10-03  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67716
	* config/sh/sh.c (sh_override_options_after_change): New.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
	(sh_option_override): Move align_loops, align_jumps and
	align_functions handling into sh_override_options_after_change.

2015-10-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_const_operand_ok): Add missing
	brackets.

2015-10-01  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-10-01  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67769
	* tree-ssa-phiopt.c (conditional_replacement): Call
	reset_flow_sensitive_info_in_bb.
	(minmax_replacement): Likewise.
	(abs_replacement): Likewise.

2015-10-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
	Check for ld -type pie on Solaris 11.x and 12.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
	(STARTFILE_SPEC): Use it.
	(ENDFILE_CRTEND_SPEC): Define.
	(ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
	(SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
	ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
	(LINK_PIE_SPEC): Define.
	* config/i386/sol2.h (ENDFILE_SPEC): Remove.
	(ENDFILE_ARCH_SPEC): Define.
	* config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.

2015-10-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_solaris_crts): New test.
	* configure. Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (STARTFILE_SPEC): Simplify, provide
	HAVE_SOLARIS_CRTS variant.

2015-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-06-09  Shiva Chen  <shiva0217@gmail.com>

	* sync.md (atomic_load<mode>): Add conditional code for lda/ldr
	(atomic_store<mode>): Likewise.

2015-09-30  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/67029
	* ira-color.c: Include "recog.h" before including "ira-int.h".
	* target-globals.c: Likewise.
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
	adds an alternative_mask argument and use it instead of
	preferred_alternatives.
	* ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
	* ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
	* sched-deps.c: Include "ira-int.h" after including "ira.h".
	(sched_analyze_insn): Update call to
	ira_implicitly_set_insn_hard_regs.
	* sel-sched.c: Include "ira-int.h" after including "ira.h".
	(implicit_clobber_conflict_p): Update call to
	ira_implicitly_set_insn_hard_regs.

2015-09-30  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-09-30  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67690
	* tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
	reset_flow_sensitive_info_in_bb.
	* tree-ssa-tail-merge.c: Include "stringpool.h" and "tree-ssanames.h".
	(replace_block_by): Call reset_flow_sensitive_info_in_bb.
	* tree-ssanames.c: Include "gimple-iterator.h".
	(reset_flow_sensitive_info_in_bb): New function.
	* tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.

2015-09-29  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from mainline
	2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR ipa/66424.
	* lra-remat.c (operand_to_remat): Prevent using insns with input
	subregs processed separately by IRA.

2015-09-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
	the vector element is bigger than 64 bit.

2015-09-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
	("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.

2015-09-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c: Add V1TImode to constant pool modes.

2015-09-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md
	("vec_scatter_element<mode>_<non_vec_int>")
	("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
	attribute with bhfgq.

2015-09-29  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.md (prefetch):
	Change the predicate of operand 0 to register_operand.

2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>

	* config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.

2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
		    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67391
	* config/sh/sh-protos.h (sh_lra_p): Declare.
	* config/sh/sh.c (sh_lra_p): Make non-static.
	* config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
	arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
	Expand into addsi3_scr if operands[2] if needed.
	(*addsi3_compact): Rename to *addsi3_compact_lra.  Use
	arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
	(addsi3_scr, *addsi3): New insn_and_split patterns.

2015-09-28  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-08-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66917
	* tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
	field.
	(DR_VECT_AUX): New macro.
	(set_dr_misalignment): Adjust.
	(dr_misalignment): Likewise.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Compute whether the base is at least element aligned.
	* tree-vect-stmts.c (ensure_base_align): Adjust.
	(vectorizable_store): If the base is not element aligned
	preserve alignment of the original access if misalignment is unknown.
	(vectorizable_load): Likewise.

	2015-09-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/67442
	* fold-const.c (extract_muldiv_1): Properly extend multiplication
	result before builting a tree via wide_int_to_tree.

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/driver-sparc.c: map LEON to leon3

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
	  and make it inverse to change default
	* config/sparc/sync.md: Only use supervisor ASI for CASA when in
	  supervisor mode
	* doc/invoke.texi: Document change of default

2015-09-28  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
	true on %f0 for a target without FPU.
	* config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
	without FPU.
	(untyped_return): Do not load %f0 for a target without FPU.

2015-09-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize): Minor wording tweak.

2015-09-25  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize): Update URLs.

2015-09-24  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
	* config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
	Declare.
	* config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
	(pa_expand_compare_and_swap_loop): New.
	(pa_maybe_emit_compare_and_swap_exchange_loop): New.
	* config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
	atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
	(atomic_loaddf_1, atomic_storedf_1): New insn patterns.
	(atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
	Revise.

2015-09-24  Alan Modra  <amodra@gmail.com>

	Apply from mainline
	2015-09-02  Alan Modra  <amodra@gmail.com>
	* config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
	* config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
	(LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.

2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67391
	* config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping
	regs when matching the pattern.

2015-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/67439
	* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
	predicate.  Set predicable_short_it attr to "no".

2015-09-23  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from mainline
	2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/67143
	* config/aarch64/atomics.md (atomic_<optab><mode>): Replace
	'lconst_atomic' with 'const_atomic'.
	(atomic_fetch_<optab><mode>): Likewise.
	(atomic_<optab>_fetch<mode>): Likewise.
	* config/aarch64/iterators.md (lconst-atomic): Move below
	'const_atomic'.
	(const_atomic): New.

2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	Backport from mainline
	2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_legitimize_address): When handling
	'reg + reloc' cases, allow first operand to be non-REG, and use
	force_reg() to enforce address pattern.

2015-09-22  Kirill Yukhin <kirill.yukhin@intel.com>

	* gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
	operand in pattern.
	(define_insn "kunpcksi"): Ditto.
	(define_insn "kunpckdi"): Ditto.

2015-09-22  Kirill Yukhin <kirill.yukhin@intel.com>

	* gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
	iterator instead of fixed modes.

2015-09-21  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/67619
	* except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
	the address to a register.

2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67657
	* config/sh/sh.c (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Add new functions.
	* config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Declere them.
	* config/sh/sh.md: Use them in various peephole2 patterns.

2015-09-21  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66793
	* gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
	Properly split the block after stmts ending it.

	2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67055
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
	NULL gimple_block.

	2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67121
	* tree-if-conv.c (combine_blocks): Clear range-info produced
	by stmts no longer executed conditionally.

	2015-09-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/67271
	* fold-const.c (native_encode_expr): Bail out on bogus offsets.

	2015-07-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66952
	* tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
	blocks we end up executing unconditionally reset all SSA
	info such as range and alignment.
	* tree-ssanames.h (reset_flow_sensitive_info): Declare.
	* tree-ssanames.c (reset_flow_sensitive_info): New function.

	2015-09-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67470
	* tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
	structure for PHI hoisting by inserting a forwarder block
	if appropriate.

2015-09-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline
	2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67573
	* config/sh/sh.md (call_pcrel): Add early clobber to scratch
	operand.
	(call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.

2015-09-20  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67061
	* config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
	Handle call insns.

2015-09-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
	of TARGET_ELF32.

2015-09-18  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/67401
	* optabs.c (expand_atomic_compare_and_swap): Move result of emitting
	sync_compare_and_swap_optab libcall to target_oval.

2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/66790
	* df-problems.c (LIVE): Amend documentation.

2015-09-17  Marek Polacek  <polacek@redhat.com>

	Backport from mainline:
	2015-08-18  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67222
	* gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
	if the call isn't valid.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
	gimple_call_builtin_p.
	(call_may_clobber_ref_p_1): Likewise.
	(stmt_kills_ref_p): Likewise.

2015-09-12  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
	CONSTANT_P operands.

2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/67506
	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
	missing simplify_gen_subreg.

2015-09-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
	Solaris 12+.

2015-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67523
	* gimplify.c (gimplify_omp_for): If inner stmt is not found
	for combined loop, assert seen_error () and return GS_ERROR.

	PR middle-end/67521
	* gimplify.c (gimplify_omp_for): Don't call omp_add_variable
	if decl is already in outer->variables.

	PR middle-end/67517
	* gimplify.c (gimplify_scan_omp_clauses): Instead of
	asserting that decl is not specified in octx->variables,
	break out of the loop if it is.

	PR c++/67514
	* gimplify.c (gimplify_omp_for): For loop SIMD construct, if
	iterator is not explicitly determined, but is defined inside
	of the combined workshare region, handle it like if it has
	DECL_EXPR in OMP_FOR_PRE_BODY.

2015-09-09  Marek Polacek  <polacek@redhat.com>

	Backport from mainline:
	2015-09-09  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67512
	* tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
	for comparisons.

2015-09-09  Alan Modra  <amodra@gmail.com>

	PR target/67378
	* config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
	reload replacement for PRE_MODIFY address reg.

2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
	non-alphanumeric characters in the symbol name.

2015-09-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/67452
	* tree-ssa-live.c: Include cfgloop.h.
	(remove_unused_locals): Clear loop->simduid if simduid is about
	to be removed from cfun->local_decls.

2015-09-03  Richard Biener  <rguenther@suse.de>

	PR ipa/66705
	* tree-ssa-structalias.c (ctor_for_analysis): New function.
	(create_variable_info_for_1): Use ctor_for_analysis instead
	of get_constructor.
	(create_variable_info_for): Likewise.

2015-09-02  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-08-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/67317
	* config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
	(addqi3_cc): Ditto.
	(UNSPEC_ADD_CARRY): Remove.
	(addqi3_cconly_overflow): New expander.
	(*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
	Adjust for changed add<mode>3_carry.
	(*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
	(*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
	(<plusminus_insn><mode>3_carry): Remove expander.
	(*<plusminus_insn><mode>3_carry): Split insn pattern to
	add<mode>3_carry and sub<mode>3_carry.
	(plusminus_carry_mnemonic): Remove code attribute.
	(add<mode>3_carry): Canonicalize insn pattern.
	(*addsi3_carry_zext): Ditto.
	(sub<mode>3_carry): Ditto.
	(*subsi3_carry_zext): Ditto.
	(adcx<mode>3): Remove insn pattern.
	(addcarry<mode>): New insn pattern.
	(subborrow<mode>): Ditto.
	* config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
	gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
	(ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
	case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
	case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
	CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
	Rewrite expander to not clobber carry flag chains.

2015-09-02  Alan Modra  <amodra@gmail.com>

	PR target/67417
	* config/rs6000/predicates.md (current_file_function_operand): Don't
	return true for weak symbols.
	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.

2015-08-31  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-08-27  Marek Polacek  <polacek@redhat.com>

	PR middle-end/67005
	* tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
	an entry into an irreducible region.

2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>

	Backport from mainline:
	2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
	instead of a rotate.

2015-08-26  Renlin Li  <renlin.li@arm.com>

	Backport from mainline
	2015-08-24  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
	* config/arm/arm.c (arm_valid_symbolic_address_p): Define.
	* config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
	* config/arm/constraints.md ("j"): Add check for high code.

2015-08-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-builtins.def: Fix value range of vec_load_bndry.

2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from mainline:
	2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/67211
	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
	-mefficient-unaligned-vsx on ISA 2.7.

	* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
	option to a masked option.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
	logic for -mefficient-unaligned-vsx so that it is set via an arch
	ISA option, instead of being set if -mtune=power8 is set. Move
	-mefficient-unaligned-vsx and -mallow-movmisalign handling to be
	near other default option handling.

2015-08-20  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
	Multiply argument avr_n_flash by 64 to match unit of "KiB".
	(avr_pgm_check_var_decl): Same.

2015-08-18  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline:
	2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67028
	* combine.c (simplify_comparison): Fix comment.  Rearrange code.
	Add test to see if a const_int fits in the new mode.

2015-08-17  Jason Merrill  <jason@redhat.com>

	PR c++/65734
	* stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
	(finalize_type_size): Respect TYPE_USER_ALIGN.
	(layout_type) [ARRAY_TYPE]: Likewise.

2015-08-17  Yvan Roux  <yvan.roux@linaro.org>

	Backport from mainline:
	2015-08-12  Yvan Roux  <yvan.roux@linaro.org>

	PR target/67127
	* config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
	to ARM core registers.

2015-08-16  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-07-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66648
	* config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
	execution guard when min_size is less than size_needed.

2015-08-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/66828
	* tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
	from int64_t to uint64_t.

2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline
	2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67002
	* config/sh/sh.c (sh_recog_treg_set_expr): Return false when
	currently_expanding_to_rtl is set.

2015-08-07  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
	noavx512vl.
	(define_attr "enabled"): Handle avx521vl and noavx512vl.
	* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
	AVX-512 alternative out of SSE.
	(define_insn "*vec_concatv2df"): Ditto.

2015-08-05  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from trunk:
	2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/arm/arm.c (arm_split_compare_and_swap): For ARMv8,
	replace an initial acquire barrier with final barrier.

2015-08-05  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from trunk:
	2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/arm/arm.c (arm_split_atomic_op): For ARMv8, replace an
	initial acquire barrier with final barrier.

2015-08-05  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from trunk.
	2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
	for __sync memory models, emit initial loads and final barriers as
	appropriate.

2015-08-05  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from trunk.
	2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/aarch64/aarch64.c (aarch64_emit_post_barrier): New.
	(aarch64_split_atomic_op): Check for __sync memory models, emit
	appropriate initial loads and final barriers.

2015-08-05  Matthew Wahab  <matthew.wahab@arm.com>

	Backport from trunk
	2015-05-12  Andrew MacLeod  <amacleod@redhat.com>

	PR target/65697
	* coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
	(enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
	* tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed)
	(is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel)
	(is_mm_seq_cst, is_mm_sync): New accessor functions.
	* builtins.c (expand_builtin_sync_operation)
	(expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
	(expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
	(get_memmodel,  expand_builtin_atomic_compare_exchange)
	(expand_builtin_atomic_load, expand_builtin_atomic_store)
	(expand_builtin_atomic_clear): Use new accessor routines.
	(expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
	* optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
	(maybe_emit_sync_lock_test_and_set): Use new accessors and
	MEMMODEL_SYNC_ACQUIRE.
	(expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
	(expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load)
	(expand_atomic_store): Use new accessors.
	* emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
	* tsan.c (instrument_builtin_call): Update check for memory model beyond
	final enum to use MEMMODEL_LAST.
	* c-family/c-common.c: Use new accessor for memmodel_base.
	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
	accessors.
	* config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>)
	(arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>)
	(mem_thread_fence, *dmb): Likewise.
	* config/alpha/alpha.c (alpha_split_compare_and_swap)
	(alpha_split_compare_and_swap_12): Likewise.
	* config/arm/arm.c (arm_expand_compare_and_swap)
	(arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
	* config/arm/sync.md (atomic_load<mode>, atomic_store<mode>)
	(atomic_loaddi): Likewise.
	* config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
	Likewise.
	* config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
	* config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
	use new accessors.
	* config/ia64/sync.md (mem_thread_fence, atomic_load<mode>)
	(atomic_store<mode>, atomic_compare_and_swap<mode>)
	(atomic_exchange<mode>): Use new accessors.
	* config/mips/mips.c (mips_process_sync_loop): Likewise.
	* config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
	* config/rs6000/rs6000.c (rs6000_pre_atomic_barrier)
	(rs6000_post_atomic_barrier): Add new cases.
	(rs6000_expand_atomic_compare_and_swap): Use new accessors.
	* config/rs6000/sync.md (mem_thread_fence): Add new cases.
	(atomic_load<mode>): Add new cases and use new accessors.
	(store_quadpti): Add new cases.
	* config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
	accessors.
	* config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
	* doc/extend.texi: Update docs to indicate 16 bits are used for memory
	model, not 8.

2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline:
	2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
	(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.

	2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.

2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline:
	2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/htm.md (tabort.): Restrict the source operand to
	using a base register.

2015-08-03  John David Anglin  <danglin@gcc.gnu.org>

	PR target/67060
	* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
	Adjust splits to match new pattern.

2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport form mainline r226496.
	2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
	(negmulsf3_vfp): Likewise.
	(muldf3negdf_vfp): Disable for -frounding-math.
	(mulsf3negsf_vfp): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
	fix MULT cost with -frounding-math.

2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport form mainline
	2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/67049
	* config/sh/sh.md (GOTaddr2picreg): Fix typo.

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

	PR debug/66691
	* lra-int.h (lra_substitute_pseudo): Add a parameter.
	(lra_substitute_pseudo_within_insn): Ditto.
	* lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
	of constant.
	(lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
	to lra_substitute_pseudo.
	* lra-lives.c (process_bb_lives): Add an argument to
	lra_substitute_pseudo_within_insn call.
	* lra-constraints.c (inherit_reload_reg, split_reg): Add an
	argument to lra_substitute_pseudo and
	lra_substitute_pseudo_within_insn calls.
	(remove_inheritance_pseudos, undo_optional_reloads): Ditto.

2015-07-27  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-07-27  Marek Polacek  <polacek@redhat.com>

	* ipa-devirt.c (types_same_for_odr): Fix typo.

2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/66930
	* config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
	T bit register modified_between_p check.

2015-07-25  Tom de Vries  <tom@codesourcery.com>

	backport from trunk:
	2015-07-24  Tom de Vries  <tom@codesourcery.com>

	* graphite-sese-to-poly.c (is_reduction_operation_p): Limit
	flag_associative_math to FLOAT_TYPE_P.  Honour
	TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.

2015-07-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline
	2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65249
	* config/sh/sh.md (movdi): Split simple reg move to two movsi
	when the destination is R0.

2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline r226159.
	2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

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

2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline r226158.
	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.

2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r226155.
	2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>

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

2015-07-23  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/66891
	* calls.c (expand_call): Wrap precompute_register_parameters with
	NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.

	2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	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.

	2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/58066
	* calls.c (expand_call): Precompute register parameters before stack
	alignment is performed.

2015-07-23  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline r225867.
	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.

2015-07-23  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline r225838.
	2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
	    	    Martin Jambor  <mjambor@suse.cz>

	PR ipa/66760
	* 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.

2015-07-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r224643.
	2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/pr66581
	* tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
	reuse bounds created for abnormal ssa names.

2015-07-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r224602.
	2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR target/66569
	* function.c (assign_bounds): Add arguments assign_regs,
	assign_special, assign_bt.
	(assign_parms): For vararg functions handle bounds in BT
	and special slots after incoming vararg bounds.

2015-07-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r224601.
	2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66568
	* cfgexpand.c (expand_return): Handle missing bounds.
	(expand_gimple_stmt_1): Likewise.
	* tree-chkp.c (chkp_expand_zero_bounds): New.
	* tree-chkp.h (chkp_expand_zero_bounds): New.

2015-07-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r224600.
	2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66567
	* ipa-chkp.c (chkp_maybe_create_clone): Require
	functions to be instrumentable.
	* tree-chkp.c (chkp_replace_function_pointer): Use
	chkp_instrumentable_p instead of attribute check.

2015-07-23  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r223215.
	2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66134
	* tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
	(chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.

2015-07-23  Ilya Enkovich  <ilya.enkovich@intel.com>

	Backport from mainline r223114.
	2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/66048
	* function.c (diddle_return_value_1): Process bounds first.
	* config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
	register.

2015-07-23  Ilya Enkovich  <ilya.enkovich@intel.com>

	Backport from mainline r223216.
	2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.h (chkp_wrap_function): New.
	* ipa-chkp.c (chkp_wrap_function): Remove 'static'.
	(chkp_wrap_function_name): New.
	(chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
	to get wrapper name.
	* lto-cgraph.c: Include ipa-chkp.h.
	(input_cgraph_1): Avoid alias chain for wrappers.

2015-07-23  Ilya Enkovich  <ilya.enkovich@intel.com>

	Backport from mainline r224074.
	2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Create alias
	reference when cloning alias node.

2015-07-21  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2015-07-21 trunk r226046.

	PR target/66956
	* config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
	(<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.

2015-07-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66948
	* genmatch.c (capture_info::walk_match): Also recurse to
	captures.  Properly compute expr state from captures of
	captures.

2015-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66922
	* config/i386/i386.c (ix86_expand_pinsr): Reject insertions
	to misaligned positions.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66866
	* config/i386/i386.c (ix86_expand_pinsr): Reject non-lowpart
	source subregs.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-07-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (movdi_to_sse): Use gen_lowpart
	and gen_higpart instead of gen_rtx_SUBREG.
	* config/i386/i386.md
	(floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
	(read-modify peephole2): Use gen_lowpart instead of
	gen_rtx_SUBREG for operand 5.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-07-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66814
	* config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
	* config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
	(varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
	{GENERAL,SSE,MMX}_REG_P where appropriate.

2015-07-17  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-07-15  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/66838
	* postreload.c (reload_cse_move2add): Also process
	CALL_INSN_FUNCTION_USAGE when resetting information of
	call-clobbered registers.

2015-07-16  Martin Liska  <mliska@suse.cz>

	PR ipa/66896
	* ipa-prop.c (update_jump_functions_after_inlining): Create properly
	dst_ctx if it does not exist.

2015-07-16  Richard Biener  <rguenther@suse.de>

	* BASE-VER: Set to 5.2.1.

2015-07-16  Release Manager

	* GCC 5.2.0 released.

2015-07-15  Renlin Li  <renlin.li@arm.com>

	Backport from mainline.
	2015-07-13  Renlin Li  <renlin.li@arm.com>

	PR rtl/66556
	* simplify-rtx.c (simplify_const_relational_operation): Add
	side_effects_p checks.

2015-07-15  Thomas Schwinge  <thomas@codesourcery.com>

	Backport trunk r225560:

	2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/65099
	* config/nvptx/mkoffload.c (main): Create an offload image only in
	64-bit configurations.

	Backport trunk r222583:

	2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/65099
	* config/nvptx/mkoffload.c (target_ilp32): New variable.
	(main): Set it depending on "-foffload-abi=[...]".
	(compile_native, main): Use it to pass "-m32" or "-m64" to the
	compiler.

	Backport trunk r223805:

	2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>

	* builtins.c (expand_builtin_acc_on_device): Mark parameters
	with ATTRIBUTE_UNUSED.

	Backport trunk r223801:

	2015-05-28  Julian Brown  <julian@codesourcery.com>

	PR libgomp/65742

	* builtins.c (expand_builtin_acc_on_device): Don't use open-coded
	sequence for !ACCEL_COMPILER.

2015-07-14  Matthias Klose  <doko@ubuntu.com>

	PR target/66840
	* config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.

2015-07-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66820
	* gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
	or ORT_TASK contexts.
	* omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
	is non-zero.

	Backported from mainline
	2015-07-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66633
	* tree-nested.c (get_static_chain): Or in a flag into
	info->static_chain_added.
	(get_frame_field, get_nonlocal_debug_decl): Likewise.
	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
	2015-07-01 changes.
	(convert_tramp_reference_stmt): If a frame_decl or chain_decl
	is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
	add it to clauses.

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

	Backport from mainline
	2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/66782
	* lra-int.h (struct lra_insn_recog_data): Add comment about
	clobbered hard regs for arg_hard_regs.
	* lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
	* lra-lives.c (process_bb_lives): Process clobbered hard regs.
	Add condition for processing used hard regs.
	* lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
	Process clobbered hard regs.

2015-07-10  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-07-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66823
	* tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
	inverted predicate.

	2015-07-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/43341
	* toplev.c (compile_file): Reset maximum_field_alignment after parsing.

	2015-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66794
	* gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
	Free post-dominators.

2015-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport form mainline
	2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66780
	* config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
	change for target/65249.

2015-07-09  Iain Sandoe  <iain@codesourcery.com>

	PR target/66523
	* config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
	names from preservation.

2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	Backport from mainline r225465
	2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/65956
	* config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
	alignment attribute, exploring one level down for records and arrays.

2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	Backport from mainline r225461
	2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.

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

	Backport from mainline r224725
	2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65914
	* config/rs6000/predicates.md (altivec_register_operand): Permit
	virtual stack registers.
	(vsx_register_operand): Likewise.
	(vfloat_operand): Likewise.
	(vint_operand): Likewise.
	(vlogical_operand): Likewise.

2015-07-04  John David Anglin  <danglin@gcc.gnu.org>

	PR target/66114
	* config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
	of register_operand.  Remove constraint.

2015-07-03  Jack Howarth  <howarth.at.gcc@gmail.com>

	PR target/66509
	* configure.ac: Fix filds and fildq test for 64-bit.
	* configure: Regenerated.

2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline.
	2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>

	PR tree-optimization/66119
	* toplev.c (process_options): Don't set up default values for
	the sra_max_scalarization_size_{speed,size} parameters.
	* tree-sra (analyze_all_variable_accesses): If no values
	have been set for the sra_max_scalarization_size_{speed,size}
	parameters, call get_move_ratio to get target defaults.

2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/37072
	* doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
	is not actually the default on FreeBSD.

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

	* config/s390/s390-builtins.def: Fix vpopct instruction comments.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-builtin-types.def: Add flag to indicate the
	options under which the function type is needed.
	* config/s390/s390-builtins.def: Add flag to indicate the options
	under which the builtin is enabled.
	* config/s390/s390-builtins.h: Add flags parameter to macro
	definitions.
	(bflags_for_builtin): New function.
	(flags_for_builtin): Renamed to ...
	(opflags_for_builtin): ... this.
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
	flags_for_builtin to bflags_for_builtin and
	flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
	* config/s390/s390.c: Add initialization of bflags_builtin and
	opflags_builtin arrays.
	Remove code for flags_builtin.
	(s390_init_builtins): Only create builtin function types if one of
	their flags is active.
	Only create builtins if all of their flags are active.
	(s390_expand_builtin): Rename flags_for_builtin to
	opflags_for_builtin.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vecintrin.h: Remove internal builtins.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_secondary_reload): Fix check for
	GENERAL_REGS register class.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_support_vector_misalignment): Call
	default implementation for !TARGET_VX.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_legitimate_constant_p): Add
	TARGET_VX check.

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

	Backport from mainline
	2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_vector_abi): New variable definition.
	(s390_check_type_for_vector_abi): New function.
	(TARGET_ASM_FILE_END): New macro definition.
	(s390_asm_file_end): New function.
	(s390_function_arg): Call s390_check_type_for_vector_abi.
	(s390_gimplify_va_arg): Likewise.
	* configure: Regenerate.
	* configure.ac: Check for .gnu_attribute Binutils feature.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_vector_bool_type_p): New function.
	(s390_invalid_binary_op): New function.
	(TARGET_INVALID_BINARY_OP): Define macro.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
	c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
	* config/s390/s390-builtin-types.def: New file.
	* config/s390/s390-builtins.def: New file.
	* config/s390/s390-builtins.h: New file.
	* config/s390/s390-c.c: New file.
	* config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
	CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
	* config/s390/s390-protos.h (s390_expand_vec_compare_cc)
	(s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
	prototypes.
	* config/s390/s390.c (s390-builtins.h, s390-builtins.def):
	Include.
	(flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
	(s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
	variable definitions.
	(s390_const_operand_ok): New function.
	(s390_expand_builtin): Rewrite.
	(s390_init_builtins): New function.
	(s390_handle_vectorbool_attribute): New function.
	(s390_attribute_table): Add s390_vector_bool attribute.
	(s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
	(s390_branch_condition_mask): Generate masks for new modes.
	(s390_expand_vec_compare_cc): New function.
	(s390_mangle_type): Add mangling for vector bool types.
	(enum s390_builtin): Remove.
	(s390_atomic_assign_expand_fenv): Rename constants for sfpc and
	efpc builtins.
	* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
	s390_cpu_cpp_builtins.
	(REGISTER_TARGET_PRAGMAS): New macro.
	* config/s390/s390.md: Define more UNSPEC_VEC_* constants.
	(insn_cmp mode attribute): Add new CC modes.
	(s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
	(lcbb): New pattern definition.
	* config/s390/s390intrin.h: Include vecintrin.h.
	* config/s390/t-s390: New file.
	* config/s390/vecintrin.h: New file.
	* config/s390/vector.md: Include vx-builtins.md.
	* config/s390/vx-builtins.md: New file.S/390 zvector builtin
	support.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
	CCVFHE.
	* config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
	(s390_select_ccmode): Likewise.
	(s390_canonicalize_comparison): Swap operands if necessary.
	(s390_expand_vec_compare_scalar): Expand DFmode compare using
	single element vector instructions.
	(s390_emit_compare): Call s390_expand_vec_compare_scalar.
	(s390_branch_condition_mask): Generate CC masks for the new modes.
	* config/s390/s390.md (v0, vf, vd): New mode attributes.
	(VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
	(*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
	(*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
	(*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
	(*extend<DSF:mode><BFP:mode>2): New insn definition.
	(fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
	(extend<DSF:mode><BFP:mode>2): Turn into expander.
	(floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
	(div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
	(sqrt<mode>2): Add vector instruction.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
	constraints.
	* config/s390/predicates.md (const0_operand, constm1_operand)
	(constable_operand): Accept vector operands.
	* config/s390/s390-modes.def: Add supported vector modes.
	* config/s390/s390-protos.h (s390_cannot_change_mode_class)
	(s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
	(s390_bytemask_vector_p, s390_expand_vec_strlen)
	(s390_expand_vec_compare, s390_expand_vcond)
	(s390_expand_vec_init): Add prototypes.
	* config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
	(s390_vector_mode_supported_p): New function.
	(s390_contiguous_bitmask_p): Mask out the irrelevant bits.
	(s390_contiguous_bitmask_vector_p): New function.
	(s390_bytemask_vector_p): New function.
	(s390_split_ok_p): Vector regs don't work either.
	(regclass_map): Add VEC_REGS.
	(s390_legitimate_constant_p): Handle vector constants.
	(s390_cannot_force_const_mem): Handle CONST_VECTOR.
	(legitimate_reload_vector_constant_p): New function.
	(s390_preferred_reload_class): Handle CONST_VECTOR.
	(s390_reload_symref_address):  Likewise.
	(s390_secondary_reload): Vector memory instructions only support
	short displacements.  Rename reload*_nonoffmem* to reload*_la*.
	(s390_emit_ccraw_jump): New function.
	(s390_expand_vec_strlen): New function.
	(s390_expand_vec_compare): New function.
	(s390_expand_vcond): New function.
	(s390_expand_vec_init): New function.
	(s390_dwarf_frame_reg_mode): New function.
	(print_operand): Handle addresses with 'O' and 'R' constraints.
	(NR_C_MODES, constant_modes): Add vector modes.
	(s390_output_pool_entry): Handle vector constants.
	(s390_hard_regno_mode_ok): Handle vector registers.
	(s390_class_max_nregs): Likewise.
	(s390_cannot_change_mode_class): New function.
	(s390_invalid_arg_for_unprototyped_fn): New function.
	(s390_function_arg_vector): New function.
	(s390_function_arg_float): Remove size variable.
	(s390_pass_by_reference): Handle vector arguments.
	(s390_function_arg_advance): Likewise.
	(s390_function_arg): Likewise.
	(s390_return_in_memory): Vector values are returned in a VR if
	possible.
	(s390_function_and_libcall_value): Handle vector arguments.
	(s390_gimplify_va_arg): Likewise.
	(s390_call_saved_register_used): Consider the arguments named.
	(s390_conditional_register_usage): Disable v16-v31 for non-vec
	targets.
	(s390_preferred_simd_mode): New function.
	(s390_support_vector_misalignment): New function.
	(s390_vector_alignment): New function.
	(TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
	(TARGET_VECTOR_MODE_SUPPORTED_P)
	(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
	(TARGET_VECTOR_ALIGNMENT): Define target macro.
	* config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
	(FIRST_PSEUDO_REGISTER): Increase value.
	(VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
	(VECTOR_REG_P): Define macros.
	(FIXED_REGISTERS, CALL_USED_REGISTERS)
	(CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
	(HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
	(FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
	Add vector registers.
	(CANNOT_CHANGE_MODE_CLASS): Call C function.
	(enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
	(SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
	memory.
	(DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
	(SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
	* config/s390/s390.md (UNSPEC_VEC_*): New constants.
	(VR*_REGNUM): New constants.
	(ALL): New mode iterator.
	(INTALL): Remove mode iterator.
	Include vector.md.
	(movti): Implement TImode moves for VRs.
	Disable TImode splitter for VR targets.
	Implement splitting TImode GPR<->VR moves.
	(reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
	(reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
	reload<mode>_la_in, reload<mode>_la_out.
	(*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
	(*mov<mode>_64, *mov<mode>_31): Add vector instructions.
	(TD/TF mode splitter): Enable for GPRs only (formerly !FP).
	(mov<mode> SF SD): Prefer lder, lde for loading.
	Add lrl and strl instructions.
	Add vector instructions.
	(strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
	Call s390_expand_vec_strlen on z13.
	(*cc_to_int): Change predicate to nonimmediate_operand.
	(addti3): Rename to *addti3.  New expander.
	(subti3): Rename to *subti3.  New expander.
	* config/s390/vector.md: New file.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): Add
	z13.
	* config.gcc: Add z13.
	* config/s390/s390-opts.h (enum processor_type): Add
	PROCESSOR_2964_Z13.
	* config/s390/s390.c (s390_adjust_priority): Check for
	PROCESSOR_2964_Z13.
	(s390_reorg): Likewise.
	(s390_sched_reorder): Likewise.
	(s390_sched_variable_issue): Likewise.
	(s390_loop_unroll_adjust): Likewise.
	(s390_option_override): Likewise. Default to -mvx when available.
	* config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
	(TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
	(TARGET_VX_ABI): Define macros.
	macros.
	(TARGET_DEFAULT): Add MASK_OPT_VX.
	* config/s390/s390.md ("cpu" attribute): Add z13.
	("cpu_facility" attribute): Add vec.
	* config/s390/s390.opt (processor_type): Add z13.
	(mvx): New options.
	* doc/invoke.texi: Add z13 option for -march.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* optabs.c (expand_vec_perm): Don't re-use SEL as target operand.

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

	Backport from mainline
	2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
	alternative_mask to uint64_t.

2015-07-02  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-06-08  Jakub Jelinek  <jakub@redhat.com>

	* genattrtab.c (insn_alternatives): Change type from int *
	to uint64_t *.
	(check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
	(get_attr_value): Change type of num_alt to uint64_t.
	(compute_alternative_mask): Change return type from
	int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
	(make_alternative_compare, mk_attr_alt): Change argument type
	from int to uint64_t.
	(simplify_test_exp): Change type of i from int to uint64_t.
	Shift ((uint64_t) 1) instead of 1 up.
	(main): Adjust oballocvec first argument from int to uint64_t.
	Shift ((uint64_t) 1) instead of 1 up.

2015-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>

	2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
	PR target/64833
	* config/sh/sh.md (casesi_worker_1): Set length to 8 when
	flag_pic is set.

2015-07-01  David Malcolm  <dmalcolm@redhat.com>

	Backport from mainline r225207
	2015-06-30  David Malcolm  <dmalcolm@redhat.com>

	* typed-splay-tree.h: New file.

2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/66633
	* tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
	to true if the function is nested and if not optimizing.
	(convert_local_omp_clauses): Initialize need_frame to true if the
	function contains nested functions and if not optimizing.

2015-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66702
	* omp-low.c (simd_clone_adjust): Handle addressable linear
	or uniform parameters or non-gimple type uniform parameters.

2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/leon.md (leon_load): Enable for all LEON variants if
	-mfix-ut699 is not specified.
	(leon3_load): Rename into...
	(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
	is specified.

2015-06-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline:
	2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66136
	* config/aarch64/geniterators.sh: Rewrite in awk.

2015-06-27  James Greenhalgh  <james.greenhalgh@arm.com>

	Backport from mainline r224672.
	2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/vax/vax.md: Adjust sign/zero extend patterns to
	handle SUBREGs in operands[1].

2015-06-27  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65979
	PR target/66611
	* config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
	the replacement insn will work.

2015-06-26  Martin Jambor  <mjambor@suse.cz>

	PR debug/66301
	* tree-ssa-pre.c (before_dom_children): Check that dump_file is not
	NULL instead of calling dump_enabled_p.

2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
	    Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/66412
	* config/i386/i386.md (various splitters): Use shallow_copy_rtx
	before doing PUT_MODE or PUT_CODE on operands to avoid
	in-place RTX modification.

2015-06-25  Andreas Tobler  <andreast@gcc.gnu.org>

	Backport from mainline
	2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
	pie executables.
	(FBSD_ENDFILE_SPEC): Likewise.
	* config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
	config/freebsd-spec.h.
	(ENDFILE_SPEC): Likewise.

2015-06-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline
	2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/66563
	* config/sh/sh.md (GOTaddr2picreg): Add a new operand for
	an additional element of the unspec vector.  Modify indices
	of operands.
	(builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
	* config/sh/sh.c (prepare_move_operands): Pass incremented
	const_int to gen_GOTaddr2picreg.
	(sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.

2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Backport from mainline.
	2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	PR target/63408
	* config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
	for negative numbers.

2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	* config/aarch64/aarch64.c (TARGET_RELAXED_ORDERING): Define.

2015-06-24  Renlin Li  <renlin.li@arm.com>

	Backport from mainline
	2015-06-24  Renlin Li  <renlin.li@arm.com>

	* varasm.c (emit_local): Use unsigned int for align variable.

2015-06-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-06-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/66413
	* tree-inline.c (insert_init_debug_bind): Unshare value.

2015-06-23  Ludovic Courtès  <ludo@gnu.org>

	PR 65711
	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
	'-dynamic-linker' within %{!shared: ...}.

2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/63740
	* lra-lives.c (process_bb_lives): Check insn copying the same
	reload pseudo and don't create a copy for it.

2015-06-22  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-06-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66422
	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
	block after inserted gcc_unreachable.

2015-06-21  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-06-20  Marek Polacek  <polacek@redhat.com>

	* common.opt (fsanitize-undefined-trap-on-error): Add Driver.

2015-06-18  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-06-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66375
	* tree-scalar-evolution.c (follow_ssa_edge_binary): First
	add to the evolution before following SSA edges.

2015-06-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	Backport from mainline r224414.
	2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_MWAITX_SET): New.
	(ix86_handle_option): Handle mwaitx.
	* config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
	(x86_64-*-*): Likewise.
	* config/i386/mwaitxintrin.h: New header.
	* config/i386/cpuid.h (bit_MWAITX):  Define.
	 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
	MWAITX support.
	 * config/i386/i386.opt (mwaitx): New.
	* config/i386/i386-builtin-types.def
	(VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
	* config/i386/i386-c.c: Define __MWAITX__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
	(PTA_MWAITX): New.
	(ix86_option_override_internal): Handle new option.
	(processor_alias_table): Added PTA_MWAITX.
	(ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
	(ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
	(ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
	IX86_BUILTIN_MONITORX  built-ins.
	* config/i386/i386.h (TARGET_MWAITX): New.
	* config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
	UNSPEC_MONITORX.
	(mwaitx):  New pattern.
	(monitorx_<mode>): New pattern.
	* config/i386/x86intrin.h: Include mwaitxintrin.h.
	* doc/extend.texi: Document monitorx and mwaitx builtins.
	* doc/invoke.texi: Document -mmwaitx option.

2015-06-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66429
	* omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
	instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
	and has_force_vectorize_loops flags from cfun into
	child_cfun.
	(expand_omp_simd): For broken loop, set cfun->has_simduid_loops
	if simduid is non-NULL.
	* tree-pass.h (make_pass_simduid_cleanup): New prototype.
	* passes.def (pass_simduid_cleanup): Add new pass after loop
	passes.
	* tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
	indirection from htab argument's type.
	(shrink_simd_arrays): New function.
	(vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
	Don't call adjust_simduid_builtins if there are no loops.
	(pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
	(pass_simduid_cleanup::execute): New method.
	(make_pass_simduid_cleanup): New function.

2015-06-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	Backport from mainline r223929.
	2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65527
	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
	redirection for instrumented calls.
	* lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
	(append_compiler_options): Append -fcheck-pointer-bounds.
	* tree-chkp.h (chkp_copy_call_skip_bounds): New.
	(chkp_redirect_edge): New.
	* tree-chkp.c (chkp_copy_call_skip_bounds): New.
	(chkp_redirect_edge): New.

2015-06-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	Backport from mainline r224063.
	2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa.c (symbol_table::remove_unreachable_nodes): Don't
	remove instumentation thunks calling reachable functions.
	* lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
	* lto/lto-partition.c (privatize_symbol_name_1): New.
	(privatize_symbol_name): Privatize both decl and orig_decl
	names for instrumented functions.
	* cgraph.c (cgraph_node::verify_node): Add transparent
	transparent alias chain check for instrumented node.

2015-06-16  Jim Wilson  <jim.wilson@linaro.org>

	Backport from mainline
	2015-06-02  Jim Wilson  <jim.wilson@linaro.org>

	PR target/66258
	* config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
	!TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
	(aarch64_secondary_reload): Likewise
	(aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
	to !TARGET_FLOAT.
	(aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
	Likewise.

2015-06-16  Richard Biener  <rguenther@suse.de>

	Revert
	2015-06-01  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-05-26  Michael Matz  <matz@suse.de>

	PR middle-end/66251
	* tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.

	2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>

	Backport from mainline:
	2015-06-11  David Edelsohn  <dje.gcc@gmail.com>

		* dbxout.c (xcoff_debug_hooks): Provide a function for
		register_main_translation_unit hook.

2015-06-11  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
	CONST_INT for goto.

2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/66252
	* config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
	* config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
	(*addx_extend_sp32): Fix pasto.
	(*subx_extend): Rename into...
	(*subx_extend_sp32): ...this.
	(*adddi3_extend_sp32): Add earlyclobber.
	(*subdi3_insn_sp32): Likewise.
	(*subdi3_extend_sp32): Likewise.
	(*and_not_di_sp32): Likewise.
	(*or_not_di_sp32): Likewise.
	(*xor_not_di_sp32): Likewise.
	(*negdi2_sp32): Likewise.
	(*one_cmpldi2_sp32): Likewise.

2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>

	* debug.h (struct gcc_debug_hooks): Add a
	register_main_translation_unit hook.
	* debug.c (do_nothing_debug_hooks): Provide a function for this
	new hook.
	* dbxout.c (dbx_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* dwarf2out.c (main_translation_unit): New global variable.
	(dwarf2out_register_main_translation_unit): New function
	implementing the new hook.
	(dwarf2_debug_hooks): Assign
	dwarf2out_register_main_translation_unit to this new hook.
	(dwarf2out_init): Associate any main translation unit to
	comp_unit_die ().

2015-06-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66473
	* config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
	to prepare mask operand for AVX512 modes.

2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from mainline:
	2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/66474
	* doc/md.texi (Machine Constraints): Document that on the PowerPC
	if you use a constraint that targets a VSX register, you must use
	%x<n> in the template.

2015-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/66470
	* config/i386/i386.c (ix86_split_long_move): For collisions
	involving direct tls segment refs, move the UNSPEC_TP possibly
	wrapped in ZERO_EXTEND out of the address for lea, to each of
	the memory loads.

2015-06-08  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2015-06-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66275
	* config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
	to determine current function ABI.
	(ix86_function_value_regno_p): Ditto.

2015-06-08  Tom de Vries  <tom@codesourcery.com>

	backport from mainline:
	2015-06-08  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/66444
	* postreload.c (reload_combine): Use get_call_reg_set_usage instead of
	call_used_regs.

2015-06-08  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/sse.md (sse3_mwait): Swap the operand constriants.

2015-06-06  John David Anglin  <danglin@gcc.gnu.org>

	PR bootstrap/66319
	* config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
	defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
	Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
	later.
	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
	Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
	_INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
	_INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
	and non iso if unix2003.

2015-06-03  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-06-02  Richard Biener  <rguenther@suse.de>

	PR debug/65549
	* dwarf2out.c (lookup_context_die): New function.
	(resolve_addr): Avoid forcing a full DIE for the
	target of a DW_TAG_GNU_call_site during late compilation.
	Instead create a stub DIE without a type if we have a
	context DIE present.

	2015-06-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66280
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
	def-use walking.

	2015-05-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66272
	Revert parts of
	2014-08-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62031
	* tree-data-ref.c (dr_analyze_indices): Do not set
	DR_UNCONSTRAINED_BASE.
	(dr_may_alias_p): All indirect accesses have to go the
	formerly DR_UNCONSTRAINED_BASE path.
	* tree-data-ref.h (struct indices): Remove
	unconstrained_base member.
	(DR_UNCONSTRAINED_BASE): Remove.

	2015-05-21  Richard Biener  <rguenther@suse.de>

	PR c++/66211
	* match.pd: Guard pattern optimzing (int)(float)int
	conversions to apply only on GIMPLE.

	2015-05-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66123
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
	a taken edge.

2015-06-02  Renlin Li  <renlin.li@arm.com>

	Backport from mainline
	2015-04-30  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
	* config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.

2015-06-02  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2015-06-02  Marek Polacek  <polacek@redhat.com>

	PR middle-end/66345
	* gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
	get_maxval_strlen does not produce an INTEGER_CST.

2015-06-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
	2014-08-11 change.

2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Backport from mainline
	2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/66215
	* config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
	with -mhotpatch=.

2015-06-01  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-05-26  Michael Matz  <matz@suse.de>

	PR middle-end/66251
	* tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
	STMT_VINFO_VEC_STMT, also with SLP.

	2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/nios2/linux.h (CPP_SPEC): Define.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/microblaze/linux.h (CPP_SPEC): Define.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

	* config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
	-pthread is specified.

2015-05-27  John David Anglin  <danglin@gcc.gnu.org>

	PR target/66148
	* config/pa/pa.c (pa_emit_move_sequence): Correct placement of
	REG_EQUAL note when doing insert.

2015-05-27  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2015-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66101
	* tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
	fixup if we turn a loop exit edge to a fallthru edge.

2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65979
	* config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
	take into account the case that operands[1] and operands[2]
	are the same register.

2015-05-22  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2015-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/66233
	* match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
	Simplify.

	2015-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66199
	* tree.h (OMP_TEAMS_COMBINED): Define.
	* gimplify.c (enum gimplify_omp_var_data): Add
	GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
	(enum omp_region_type): Add ORT_COMBINED_TEAMS.
	(omp_notice_variable): Accept both ORT_TEAMS
	and ORT_COMBINED_TEAMS.  Don't recurse if
	GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
	GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
	GOVD_FIRSTPRIVATE.
	(omp_no_lastprivate): New function.
	(gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
	and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
	notice_outer and set appropriate bits, otherwise make
	sure default(none) combined constructs won't complain.
	(gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
	outer special casing, for OMP_CLAUSE_LASTPRIVATE if
	omp_no_lastprivate either remove the clause or turn it
	into OMP_CLAUSE_PRIVATE.
	(gimplify_omp_for): Fix up handling of implicit
	lastprivate or linear iterators.
	(gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
	ORT_COMBINED_TEAMS.
	* omp-low.c (lower_omp_for_lastprivate): For combined
	for simd use fd.loop.n2 from the for rather than simd.

	2015-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/66133
	* omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
	make sure it is never noreturn, even when the task body does not
	return.
	(lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
	right before GIMPLE_OMP_RETURN.
	(make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
	for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
	GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.

2015-05-21  Sandra Loosemore  <sandra@codesourcery.com>

	Backport from mainline r223418:
	* config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
	to build a biarch toolchain again.

2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	Backport from mainline r223471
	2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>

	PR middle-end/66221
	* ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
	build_distinct_type_copy to copy bounds.

2015-05-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66174
	* config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
	QImode inner modes for TARGET_AVX512BW.  Force mask operand
	to a register for AVX512F modes.

2015-04-16  Jan Hubicka  <hubicka@ucw.cz>

	PR target/66047
	* i386.c (ix86_function_sseregparm): Only return -1 if local function
	with implied regparm is called from -mno-sse function.
	(init_cumulative_args): Output error if ix86_function_sseregparm
	return -1 and SSE register would be needed.
	(function_arg_advance_32): Likewise.
	(function_arg_32): Likewise.
	* i386.h (ix86_args): Add decl field.

2015-04-16  Jan Hubicka  <hubicka@ucw.cz>

	PR target/66047
	* i386.c (ix86_function_sseregparm): Only return -1 if local function
	with implied regparm is called from -mno-sse function.
	(init_cumulative_args): Output error if ix86_function_sseregparm
	return -1 and SSE register would be needed.
	(function_arg_advance_32): Likewise.
	(function_arg_32): Likewise.
	* i386.h (ix86_args): Add decl field.
	* gcc.target/i386/pr66047.c: New testcase.

2015-04-16  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65873
	* ipa-inline.c (can_inline_edge_p): Allow early inlining of always
	inlines across optimization boundary; be tolerant about COMDAT;
	allow inlining across -fstrict-aliasing boundary.

2015-05-16  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from mainline
	2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/30967
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
	destination mode for the cost of scc patterns.

2015-05-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66140
	* config/alpha/alpha.c (get_aligned_mem): Also look for reload
	replacements in memory addresses.
	(get_unaligned_address): Ditto.

2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65955
	* config/arm/arm.md (movcond_addsi): Check that operands[2] is a
	REG before taking its REGNO.

2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
	and zEC12_simple_fp.
	* config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
	to 1.

2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
	Increase to 128.
	(aarch64_rewrite_selected_cpu): Do not chop off extensions starting
	at '.'.  Assert that there's enough space for everything.

2015-05-12  Yvan Roux  <yvan.roux@linaro.org>

	Backport from mainline.
	2015-05-05  Yvan Roux  <yvan.roux@linaro.org>

	* config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_843419_SPEC.
	* config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_843419_SPEC.
	* config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
	* configure: Regenerate.
	* configure.ac: Add --enable-fix-cortex-a53-843419 option.
	* doc/install.texi (aarch64*-*-*): Document new
	--enable-fix-cortex-a53-843419 option.
	* doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
	and -mno-fix-cortex-a53-843419 options.

2015-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
	when looking for memory references.

2015-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/65780
	* config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
	default_binds_local_p_2.
	* config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
	* config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.

2015-05-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/66015
	* config/alpha/alpha.c (alpha_override_options_after_change): New.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
	(alpha_override_options): Move align_loops, align_jumps and
	align_functions handling into alpha_override_options_after_change.

2015-05-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65990
	* config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
	if rep_8byte stringop strategy was specified for 32-bit target.

2015-05-06  Christian Bruel  <christian.bruel@st.com>

	PR target/66015
	* config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
	align_jumps, align_functions into aarch64_override_options_after_change.

2015-05-05  Peter Bergner  <bergner@vnet.ibm.com>

	Backport from mainline.
	2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/64579
	* config/rs6000/htm.md: Remove all define_expands.
	(UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
	UNSPECV_HTM_TABORTWCI): Remove.
	(UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
	(tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
	trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
	(tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
	(tabortdc_internal, tabortdci_internal, tabortwc_internal,
	tabortwci_internal): Remove define_insns.
	(tabort<wd>c, tabort<wd>ci): New define_insns.
	(tabort): Use gpc_reg_operand.
	(tcheck): Remove operand.
	(htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
	* config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
	expected value.
	* config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
	(BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
	(tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
	tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
	tsr, ttest): Pass in the RS6000_BTC_CR attribute.
	(get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
	get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
	(tcheck): Remove builtin argument.
	* config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
	not TARGET_64BIT.
	(htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
	tabortdc and tabortdci builtins when not in 64-bit mode.
	Modify code to handle the loss of the HTM define_expands.
	Emit code to copy the CR register to TARGET.
	(htm_init_builtins): Modify code to handle the loss of the HTM
	define_expands.
	* config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
	(RS6000_BTC_64BIT): Likewise.
	(RS6000_BTC_CR): New macro.
	* doc/extend.texi: Update documentation for htm builtins.

2015-05-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65984
	* ubsan.c: Include tree-cfg.h.
	(instrument_bool_enum_load): Use stmt_ends_bb_p instead of
	stmt_could_throw_p test, rename can_throw variable to ends_bb.

	* Makefile.in (PATCHLEVEL_c): New variable.
	(DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
	expand the same way as if DEVPHASE_c was non-empty.

2015-05-04  Kai Tietz  <ktietz@redhat.com>

	Backmerge from trunk.

	PR lto/65559
	* lto-wrapper.c (run_gcc): Open filename
	in binary-mode.

2015-04-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65801
	* doc/invoke.texi ([-Wnarrowing]): Update.

2015-04-30  Alan Modra  <amodra@gmail.com>

	PR target/65408
	PR target/58744
	PR middle-end/36043
	* calls.c (load_register_parameters): Don't load past end of
	mem unless suitably aligned.

2015-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65875
	* tree-vrp.c (update_value_range): If in is_new case setting
	old_vr to VR_VARYING, also set new_vr to it.  Remove
	old_vr->type == VR_VARYING test.
	(vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
	SSA_PROP_INTERESTING if update_value_range returned true,
	but new range is VR_VARYING.

2015-04-27  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2015-04-27 trunk r222459.

	PR target/65296
	PR target/65895
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
	Add hint how to use own spec file.

2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from mainline
	2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65849
	* config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
	save to independent variables use the Save attribute.  This will
	allow these options to be modified with the #pragma/attribute
	target support.
	(-mallow-movmisalign): Likewise.
	(-mallow-df-permute): Likewise.
	(-msched-groups): Likewise.
	(-malways-hint): Likewise.
	(-malign-branch-targets): Likewise.
	(-mvectorize-builtins): Likewise.
	(-msave-toc-indirect): Likewise.

	* config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
	can be set via the #pragma/attribute target support.
	(rs6000_opt_vars): Likewise.
	(rs6000_inner_target_options): If VSX was set, also set
	-mno-avoid-indexed-addresses.

2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r222385
	2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
	asterisk from name so this can be generated directly.
	(*altivec_stvx_<mode>_internal): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
	that this is never called during or after reload/lra.
	(rs6000_frame_related): Remove split_reg
	argument and logic that references it.
	(emit_frame_save): Remove last parameter from call to
	rs6000_frame_related.
	(rs6000_emit_prologue): Remove last parameter from eight calls to
	rs6000_frame_related.  Force generation of stvx instruction for
	Altivec register saves.  Remove split_reg handling, which is no
	longer needed.
	(rs6000_emit_epilogue):  Force generation of lvx instruction for
	Altivec register restores.

2015-04-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
	Mark operand1 commutative.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r222362
	2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
	TARGET_CRYPTO to TARGET_P8_VECTOR>
	(crypto_vpermxor_<mode>): Likewise.
	* config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
	(BU_CRYPTO_3A): Likewise.
	(BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
	(BU_CRYPTO_OVERLOAD_3A): New #define.
	(VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
	(VPERMXOR_V4SI): Likewise.
	(VPERMXOR_V8HI): Likewise.
	(VPERMXOR_V16QI): Likewise.
	(VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
	BU_CRYPTO_OVERLOAD_2A.
	(VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
	BU_CRYPTO_OVERLOAD_3A.
	* config/rs6000/rs6000.opt (mcrypto): Change description of
	option.

	Backport from mainline r222362
	2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (mcrypto): Change option description to
	match category changes in ISA 2.07B.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r222351
	2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
	adjustments.
	(insn_is_swappable_p): Return 1 for a convert from double to
	single precision when all of its uses are splats of BE element
	zero.

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline r222349
	2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65456
	* config/rs6000/rs6000.c (rs6000_option_override_internal):  For
	VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
	TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
	option.
	(rs6000_builtin_mask_for_load): Return 0 for targets with
	efficient unaligned VSX accesses so that the vectorizer will use
	direct unaligned loads.
	(rs6000_builtin_support_vector_misalignment): Always return true
	for targets with efficient unaligned VSX accesses.
	(rs6000_builtin_vectorization_cost): Cost of unaligned loads and
	stores on targets with efficient unaligned VSX accesses is almost
	always the same as the cost of an aligned load or store, so model
	it that way.
	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
	unaligned vectors if we have efficient unaligned VSX accesses.
	* config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
	undocumented option.

2015-04-23  Vladimir Makarov  <vmakarov@redhat.com>

	Backport from trunk r222223.

	2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65805
	* lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
	Don't use difference of offset and previous offset if
	update_sp_offset is non-zero.
	(eliminate_regs_in_insn): Ditto.
	* lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
	lra_eliminate_regs_1 call.
	* lra-constraints.c (get_equiv_with_elimination): Ditto.

2015-04-22  Georg-Johann Lay  <avr@gjlay.de>

	Backport from trunk r222179.

	2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>

	PR target/65296
	* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
	to new AVR-LibC file layout (bug #44574).
	(*avrlibc_devicelib): Same.
	* config/avr/avr-mcus.def: Adjust comments.
	* config/avr/avr.opt (nodevicelib): Adjust help.

2015-04-22  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 5.1.1.

2015-04-22  Release Manager

	* GCC 5.1.0 released.

2015-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65807
	* dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.

2015-04-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/plugins.texi: Rewrite first introductory paragraph.

2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65780
	* config/i386/i386.c (ix86_binds_local_p): Define only if
	TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.

2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/65787
	* config/rs6000/rs6000.c (rtx_is_swappable_p): Remove previous
	fix; ensure that a subsequent SH_NONE operand does not overwrite
	an existing *special value.

2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65780
	* output.h (default_binds_local_p_3): New.
	* varasm.c (default_binds_local_p_3): Make it public.  Take an
	argument to indicate if common symbol may be local.  If common
	symbol may be local, treat non-external variable as defined
	locally.
	(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
	(default_binds_local_p_1): Pass false to default_binds_local_p_3.
	* config/i386/i386.c (ix86_binds_local_p): New.
	(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
	ix86_binds_local_p.

2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65787
	* config/rs6000/rs6000.c (rtx_is_swappable_p): Handle case where
	vec_extract operation is wrapped in a PARALLEL with a CLOBBER.
	(adjust_extract): Likewise.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65771
	* dwarf2out.c (loc_list_from_tree): Return NULL
	for DEBUG_EXPR_DECL.

2015-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65765
	* ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
	and GIMPLE_PREDICT use break instead of return true. For
	GIMPLE_EH_DISPATCH, compare dispatch region.

2015-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/65761
	* cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
	get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).

2015-04-13  Jan Hubicka  <hubicka@ucw.cz>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Martin Jambor and
	Michael Matz.

2015-04-12  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 5.0.1.
	* DEV-PHASE: Set to prerelease.

	PR tree-optimization/65747
	* ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
	rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.

2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (-Wmemset-transposed-args): Break a long
	sentence.  Improve grammar.

2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.

2015-04-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65743
	* ipa-inline-transform.c (speculation_removed): Remove static var.
	(check_speculations): New function.
	(clone_inlined_nodes): Do not check spculations.
	(inline_call): Call check_speculations.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Do not
	consider non-invariants.

2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	PR ipa/65722
	* ipa-icf.c (sem_item::compare_cgraph_references): function and
	variable can not match.
	(sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
	(sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.

2015-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65735
	* tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
	Remove visited_phis argument, add visited_bbs, avoid recursing into the
	same bb rather than just into the same phi node.
	(thread_through_normal_block): Adjust caller.

2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Ira Rosen.

2015-04-11  Benno Schulenberg  <bensberg@justemail.net>

	* gcov.c (find_source): Fix miswording in error message.
	* config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
	(ix86_expand_sse_comi_round): Fix typo in error message.

2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Laurynas Biveinis.

2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Update Joe Buck's entry.

2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65710
	* lra-assigns.c (spill_for): Update smallest_bad_spills_num.
	Print bad_spills_num and insn_pseudos_num.

2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65694
	* config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
	when creating +1 values for SImode.

2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65729
	* lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
	assert.

2015-04-10  Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iain@codesourcery.com>

	PR target/65351
	* configure: Regenerate.

2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/65671
	* config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.

2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add John Marino.

2015-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65709
	* ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
	TREE_TYPE (TREE_TYPE (t)).

2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65710
	* lra-int.h (lra_bad_spill_regno_start): New.
	* lra.c (lra_bad_spill_regno_start): New.
	(lra): Set up lra_bad_spill_regno_start.  Set up
	lra_constraint_new_regno_start unconditionally.
	* lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
	spill preferences.

2015-04-09  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/65554
	* gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
	(fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
	of STRIP_NOPS.

2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/65693
	* combine.c (is_parallel_of_n_reg_sets): Move outside of
	#ifndef HAVE_cc0.

2015-04-09  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
	device specs file if "device-specs%s" didn't resolve to a path.

2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/65676
	* config/i386/i386.c (fixup_modeless_constant): New.
	(ix86_expand_args_builtin): Fixup modeless constant operand.
	(ix86_expand_round_builtin): Ditto.
	(ix86_expand_special_args_builtin): Ditto.
	(ix86_expand_builtin): Ditto.

2015-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/65693
	* config/i386/i386.md (*udivmod<mode>4_pow2): Allow
	any pow2 integer in between 2 and 0x80000000U inclusive.

2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/65693
	* combine.c (is_parallel_of_n_reg_sets): Change first argument
	from an rtx_insn * to an rtx.
	(try_combine): Adjust both callers.  Use it once more.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_find_const_bounds_var): Remove.
	(chkp_make_static_const_bounds): Search existing
	symbol by assembler name.  Use make_decl_one_only.
	(chkp_get_zero_bounds_var): Remove node	search which
	is now performed in chkp_make_static_const_bounds.
	(chkp_get_none_bounds_var): Likewise.

2015-04-08  Michael Witten  <mfwitten@gmail.com>

	* doc/extend.texi (Attribute Syntax): Add a trailing semicolon
	to an example.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree.h (CONVERT_EXPR_P): Commentary typo fix.

2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (__sync Builtins): Fix grammar.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/cfg.texi (GIMPLE statement iterators): Fix typo.

2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* varasm.c (emit_local): Move definition of align.

2015-04-08  Julian Brown  <julian@codesourcery.com>

	* config/nvptx/mkoffload.c (process): Support variable mapping.

2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
	alpha_links **.
	(alpha_write_one_linkage): Correct typo.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-comdats.c (propagate_comdat_group): Walk through thunks.

2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (bootstrap-lto-noplugin): Rewrite.

2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.h (chkp_insert_retbnd_call): New.
	* tree-chkp.c (chkp_insert_retbnd_call): New.
	* ipa-split.c (insert_bndret_call_after): Remove.
	(split_function): Use chkp_insert_retbnd_call.
	* cgraphunit.c (cgraph_node::expand_thunk): Build returned
	bounds for instrumented functions.

2015-04-07  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65540
	* calls.c (initialize_argument_information): When producing tail
	call also turn SSA_NAMES passed by references to original PARM_DECLs

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

	PR target/65648
	* lra-remat.c (do_remat): Process input and non-input insn
	registers separately.

2015-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/65678
	* valtrack.c (debug_lowpart_subreg): New function.
	(dead_debug_insert_temp): Use it.

	PR middle-end/65680
	* expr.c (get_inner_reference): Handle bit_offset that doesn't fit
	into signed HOST_WIDE_INT the same as negative bit_offset.

2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-comdats.c (ipa_comdats): Visit all thunks
	to set proper comdat group.

2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/65489
	* config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
	on constants for NEON VSTRUCT modes.

2015-04-07  Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iain@codesourcery.com>

	PR target/65351
	* configure: Regenerate.

2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65614
	* config/rs6000/rs6000.c (struct processor_costs): Add cost field
	for SF->DF conversions to make FLOAT_EXTEND more expensive, so
	that LFD is used to load double constants instead of LFS.  Add
	defaults for all costs structures.  Add comments for missing
	initialization fields.
	(size32_cost): Likewise.
	(size64_cost): Likewise.
	(rs64a_cost): Likewise.
	(mpccore_cost): Likewise.
	(ppc403_cost): Likewise.
	(ppc405_cost): Likewise.
	(ppc440_cost): Likewise.
	(ppc476_cost): Likewise.
	(ppc601_cost): Likewise.
	(ppc603_cost): Likewise.
	(ppc604_cost): Likewise.
	(ppc604e_cost): Likewise.
	(ppc620_cost): Likewise.
	(ppc630_cost): Likewise.
	(ppccell_cost): Likewise.
	(ppc750_cost): Likewise.
	(ppc7450_cost): Likewise.
	(ppc8540_cost): Likewise.
	(ppce300c2c3_cost): Likewise.
	(ppce500mc_cost): Likewise.
	(ppce500mc64_cost): Likewise.
	(ppce5500_cost): Likewise.
	(ppce6500_cost): Likewise.
	(titan_cost): Likewise.
	(power4_cost): Likewise.
	(power6_cost): Likewise.
	(power7_cost): Likewise.
	(power8_cost): Likewise.
	(ppca2_cost): Likewise.
	(rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.

	* config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
	instead of XXLOR to copy SFmode to clear out dirty bits created
	when SFmode denormals are generated.
	(mov<mode>_hardfloat, FMOVE32 case): Likewise.
	(truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.

2015-04-06  Evandro Menezes  <e.menezes@samsung.com>

	* doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
	* config/aarch64/aarch64-cores.def (exynos-m1): New core.
	* config/aarch64/aarch64-tune.md: Regenerate.

2015-04-06  Evandro Menezes  <e.menezes@samsung.com>

	* doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
	* config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
	* config/arm/arm-cores.def (exynos-m1): New core.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Add entry for "exynos-m1".
	* config/arm/bpabi.h: Likewise.

2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-cp (set_single_call_flag): Remove too
	restrictive assert.

2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
	GOMP_offload_unregister from the destructor.

2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
	flags for instrumentation thunk.
	(chkp_produce_thunks): Likewise.

2015-04-05  Martin Liska  <mliska@suse.cz>

	PR ipa/65665
	* ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
	has computed data structure.
	(sem_item_optimizer::update_hash_by_addr_refs): Likewise.

2015-04-04  Jan Hubicka  <hubicka@ucw.cz>

	* invoke.texi (inline-unit-growth): Increase growth to 20%
	* params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.

2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65647
	* lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
	value checking.
	(lra_rematerialization_iter): New.
	* lra.c (lra): Initialize lra_rematerialization_iter.
	Stop updating lra_constraint_new_regno_start after switching of
	inheritance and rematerialization.
	* lra-remat.c (lra_rematerialization_iter): New.
	(lra_remat): Add printing pass iteration.  Do rematerialization
	only first LRA_MAX_REMATERIALIZATION_PASSES iterations.

2015-04-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64909
	PR tree-optimization/65660
	* tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
	to take a cost vector for scalar iteration cost.
	(vect_get_single_scalar_iteration_cost): Likewise.
	* tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
	Compute the scalar iteration cost into a cost vector.
	(vect_get_known_peeling_cost): Use the scalar cost vector to
	account for the cost of the peeled iterations.
	(vect_estimate_min_profitable_iters): Likewise.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
	Likewise.

2015-04-04  Alan Modra  <amodra@gmail.com>

	PR target/65576
	PR target/65240
	* config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
	0.0 constant unless TARGET_VSX.
	* config/rs6000/rs6000.md (extenddftf2_internal): Remove last
	alternative.

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65654
	* ipa-inline-transform.c (inline_call): Skip sanity check to work
	around the ICE

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65655
	* ipa-inline-analysis.c (edge_set_predicate): Do not redirect
	speculative indirect edges to avoid ordering issue.

2015-04-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* ipa-inline.c (edge_badness): Add combined size to the denominator.

2015-04-03  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
	TYPE_ARTIFICIAL on the .omp_data* types.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* cgraphunit.c (cgraph_node::expand_thunk): Don't expand
	instrumentation thunks.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/i386.c (ix86_expand_call): Avoid nested
	PARALLEL in returned call value.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	* lto-cgraph.c (input_cgraph_1): Always link instrumented
	assembler name with original one.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_register_priority): Use AX_REG.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	Revert parts of r216820.
	* config/i386/i386.md (movqi_internal): Correct type calculation
	for alternatives 3 and 5.

2015-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/61977
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
	predefine __vector/__bool/__pixel macros nor context sensitive
	macros for CLK_ASM.
	* config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.

2015-04-02  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Directly handle register
	indexed memory operand.  Simplify handling of scaled register indexed
	memory operands.

2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR driver/65444
	* config/i386/linux-common.h (MPX_SPEC): New.
	(CHKP_SPEC): Add MPX_SPEC.
	* doc/invoke.texi (-fcheck-pointer-boudns): Document
	possible issues with '-z bndplt' support in linker.

2015-04-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
	(loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
	(storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
	* reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
	(subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.

2015-04-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (UNSPEC_MOVA): Remove.
	(atomic_load<mode>): Change operand 0 predicate to
	nonimmediate_operand and fix up the destination when needed.
	Use UNSPEC_LDA.
	(atomic_loaddi_fpu): Use UNSPEC_LDA.
	(atomic_store<mode>): Change operand 1 predicate to
	nonimmendate_operand and move the source to register when needed.
	Use UNSPEC_STA.
	(atomic_store<mode>_1): Use UNSPEC_STA.
	(atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
	Fix moves from memory operand.  Use UNSPEC_STA.

2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* expmed.c (strict_volatile_bitfield_p): Check that the access will
	not cross a MODESIZE boundary.
	(store_bit_field, extract_bit_field): Added assertions in the
	strict volatile bitfields code path.

2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR target/65624
	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
	Increase args array size by one to avoid buffer overflow.

2015-03-31  Jan Hubicka  <hubicka@ucw.cz>

	* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
	split_part.
	* ipa-inline.c (edge_badness): Add wrapper penalty.
	(sum_callers): Move up.
	(inline_small_functions): Set single_caller.
	* ipa-inline.h (inline_summary): Add single_caller.
	* ipa-split.c (split_function): Set split_part.
	(cgraph_node::create_clone): Do not shadow decl; copy split_part.
	* cgraph.h (cgraph_node): Add split_part.

2015-03-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/58945
	* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
	Do not split operands 0 and operands 2 to halfmode.
	(atomic_compare_and_swap<mode>): Update for
	atomic_compare_and_swap<dwi>_doubleword changes.

2015-03-31  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (need_assembler_name_p): Artificial types have no ODR names.
	* ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
	no caching is done.

2015-03-31  Martin Liska  <mliska@suse.cz>

	PR ipa/65557
	* ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
	has already filled up function summary.
	(sem_item_optimizer::update_hash_by_addr_refs): Likewise.

2015-03-31  Richard Biener  <rguenther@suse.de>

	* tree-sra.c (create_access_replacement): Drop under-/over-alignment
	of types.

2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
	nested functions.
	(s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
	(s390_asm_output_function_label): Adapt to new signature of
	s390_function_num_hotpatch_hw
	Optimise the code generating assembler output.
	Add comments to assembler file.

2015-03-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/65626
	* tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
	of the noreturn call so it is last and cleanup_control_flow_bb
	can do the CFG part.

2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65531
	* ipa-chkp.c (chkp_maybe_create_clone): Don't set
	same_comdat_group for external symbols.
	* symtab.c (symtab_node::verify_symtab_nodes): Avoid
	infinite same_comdat_group traversal loop.

2015-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/61176
	* Makefile.in (install-plugin): Add all gcc/*.{h,def} files
	automatically to $headers.

2015-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65610
	* ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
	function.
	(decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
	Use it.
	* ipa-prop.c (param_type_may_change_p): Likewise.
	* tree-ssa-live.c: Include ipa-utils.h and its dependencies.
	(remove_unused_scope_block_p): Add in_ctor_dtor_block
	argument.  Before inlining, preserve
	inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
	with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
	recursive calls.
	(remove_unused_locals): Adjust remove_unused_scope_block_p caller.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* ipa-inline.c (edge_badness): Base denominator on callee's
	grwoth squared.

2015-03-27  Martin Jambor  <mjambor@suse.cz>

	PR ipa/65478
	* params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
	(PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
	* ipa-prop.h (ipa_node_params): New flags node_within_scc and
	node_calling_single_call.
	* ipa-cp.c (count_callers): New function.
	(set_single_call_flag): Likewise.
	(initialize_node_lattices): Count callers and set single_flag_call if
	necessary.
	(incorporate_penalties): New function.
	(good_cloning_opportunity_p): Use it, dump new flags.
	(propagate_constants_topo): Set node_within_scc flag if appropriate.
	* doc/invoke.texi (ipa-cp-recursion-penalty,
	ipa-cp-single-call-pentalty): Document.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65588
	* symtab.c (symtab_node::get_partitioning_class): Register vars
	are duplicated.
	* varpool.c (symbol_table::output_variables) Do not assemble unefined
	decls for non-symbols.

2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65248
	* output.h (default_binds_local_p_2): New.
	* varasm.c (default_binds_local_p_2): Renamed to ...
	(default_binds_local_p_3): This.  Don't return true on protected
	data symbol if protected data may be external.
	(default_binds_local_p): Use default_binds_local_p_3.
	(default_binds_local_p_1): Likewise.
	(default_binds_local_p_2): New.
	* config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
	default_binds_local_p_2 if TARGET_MACHO is undefined.

2015-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/65593
	* config/i386/i386.c (legitimize_pic_address): If base
	is SYMBOL_REF or LABEL_REF using %rip addressing, force
	it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR target/65531
	* symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
	comdat groups.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65600
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
	of optimized out indirect call.
	(redirect_to_unreachable): Always build symbol table node for
	BUILT_IN_UNREACHABLE

2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65407
	* ira-costs.c (record_reg_classes): Process all constraint string
	containing 0-9.

2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>

	* config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
	memory_operand.

	PR target/65052
	* config/c6x/constraints.md (S3): New constraint.
	* config/c6x/c6x.md (real_jump): Use it.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/65595
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
	do redirection if the call is not optimized out.

2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65495
	* c-family/c.opt (fcheck-pointer-bounds): List supported languages.
	(fchkp-check-incomplete-type): Add LTO.
	(fchkp-zero-input-bounds-for-main): Likewise.
	(fchkp-first-field-has-own-bounds): Likewise.
	(fchkp-narrow-bounds): Likewise.
	(fchkp-narrow-to-innermost-array): Likewise.
	(fchkp-use-static-bounds): Likewise.
	(fchkp-use-static-const-bounds): Likewise.
	(fchkp-treat-zero-dynamic-size-as-infinite): Likewise.

2015-03-27  Marek Polacek  <polacek@redhat.com>

	* gimple-iterator.h (gsi_prev_nondebug): Fix typo.

2015-03-27  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/65583
	* ubsan.c (ubsan_create_edge): New function.
	(instrument_bool_enum_load): Call it.
	(instrument_nonnull_arg): Likewise.
	(instrument_nonnull_return): Likewise.
	(instrument_object_size): Likewise.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer.h (class lto_location_cache): Turn loc_cache into
	auto_vec.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65536
	* lto-streamer.h (class lto_location_cache): New.
	(struct data_in): Add location_cache.
	(lto_input_location): Update prototype.
	(stream_input_location_now): New.
	* streamer-hooks.h (struct streamer_hooks): Make input_location to take
	pointer to location.
	(stream_input_location): Update.
	* ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
	(warn_odr): Apply location cache before warning.
	(lto_input_location): Update prototype.
	* gimple-streamer-in.c (input_phi, input_gimple_stmt):
	Use stream_input_location_now.
	* lto-streamer-in.c (lto_location_cache::current_cache): New static
	variable.
	(lto_location_cache::cmp_loc): New function.
	(lto_location_cache::apply_location_cache): New function.
	(lto_location_cache::accept_location_cache): New function.
	(lto_location_cache::revert_location_cache): New function.
	(lto_location_cache::input_location): New function.
	(lto_input_location): Do location caching.
	(stream_input_location_now): New function.
	(input_eh_region, input_struct_function_base): Use
	stream_input_location_now.
	(lto_data_in_create): use new.
	(lto_data_in_delete): Use delete.
	* tree-streamer-in.c (unpack_ts_block_value_fields,
	unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
	lto_input_ts_exp_tree_pointers): Update for cached location api.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65076
	* passes.def: Add pass_nothrow.
	* ipa-pure-const.c: (pass_data_nothrow): New.
	(pass_nothrow): New.
	(pass_nothrow::execute): New.
	(make_pass_nothrow): New.
	* tree-pass.h (make_pass_nothrow): Declare.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
	edge to change by speculation resolution or redirection.
	(edge_set_predicate): Likewise.
	(inline_summary_t::duplicate): Likewise.
	(remap_edge_summaries): Likewise.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
	New macros.
	(can_inline_edge_p): Relax option matching for always inline functions.

2015-03-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/65561
	* config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
	Check operand 4 and operand 0 for equality.
	(avx512f_vextract<shuffletype>32x4_1_maskm):
	Check operand 6 and operand 0 for equality.
	(vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
	for equality.
	(vec_extract_hi_<mode>_maskm): Ditto.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
	dead calls back to live.
	(cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
	cross check to ...
	(cgraph_node::verify_node): ... here; verify only callee edges,
	not caller.
	* cif-code.def (CILK_SPAWN): New code.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (redirect_to_unreachable): New function.
	(edge_set_predicate): Use it to mark unreachable edges.
	(inline_summary_t::duplicate): Remove unnecesary code.
	(remap_edge_summaries): Likewise.
	(dump_inline_summary): Report contains_cilk_spawn.
	(compute_inline_parameters): Compute contains_cilk_spawn.
	(inline_read_section, inline_write_summary): Stream
	contains_cilk_spawn.
	* ipa-inline.c (can_inline_edge_p): Do not touch
	DECL_STRUCT_FUNCTION that may not be available;
	use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
	remove check for callee_fun->can_throw_non_call_exceptions and
	replace it by optimization attribute check; check for flag_exceptions.
	* ipa-inline-transform.c (inline_call): Maintain
	DECL_FUNCTION_PERSONALITY
	* ipa-inline.h (inline_summary): Add contains_cilk_spawn.

2015-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65551
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
	TYPE_PRECISION only for INTEGRAL_TYPE_P types.

2015-03-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/65555
	* tree-cfg.c (verify_gimple_call): Do not require a call to
	have no LHS if it wasn't recognized as control altering yet.

2015-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64715
	* passes.def: Add another instance of pass_object_sizes before ccp1.
	* tree-object-size.c (pass_object_sizes::execute): In
	first_pass_instance, only handle __bos (, 1) and __bos (, 3)
	calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
	__bos result and the computed constant.  Remove redundant
	checks, obsoleted by gimple_call_builtin_p test.

	* var-tracking.c (variable_tracking_main_1): Don't track
	variables for targetm.no_register_allocation targets.

2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
	* config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.

2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65569
	* config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
	XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
	0.0 is correctly setup.
	(extenddftf2_internal): Likewise.

2015-03-25  Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/65177
	* tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
	(bb_in_bbs): New.
	(duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
	edges not adjacent on the path to the original code.

2015-03-25  Uros Bizjak  <ubizjak@gmail.com>

	PR bootstrap/65537
	* doc/install.texi (Building a native compiler): Document new
	bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
	configuration assumes that the host supports the linker plugin.

2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65508
	* tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
	chain for generated call.

2015-03-25  Richard Biener  <rguenther@suse.de>

	* passes.c (pass_manager::execute_early_local_passes): Guard
	execution of pass_chkp_instrumentation_passes with
	flag_check_pointer_bounds.
	(pass_chkp_instrumentation_passes::gate): Likewise.

2015-03-25  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/65538
	* symbol-summary.h (function_summary::~function_summary):
	Relese memory for allocated summaries.
	(function_summary::release): New function.

2015-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR lto/65515
	* lto-streamer-out.c (DFS::worklist): New struct.
	(DFS::worklist_vec): New data member.
	(DFS::next_dfs_num): Remove.
	(DFS::DFS): Rewritten using worklist instead of recursion,
	using most of code from DFS::DFS_write_tree.
	(DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
	pass it to DFS_write_tree calls.
	(DFS::DFS_write_tree): Remove SINGLE_P argument, after
	quick initial checks push it into worklist_vec and return.

2015-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/65519
	* genmatch.c (expr::gen_transform): Re-write to avoid
	using gimple_build.

2015-03-25  Bin Cheng  <bin.cheng@arm.com>

	* doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.

2015-03-25  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.opt (print_tune_info): New option.
	* config/arm/arm.c (arm_print_tune_info): New function.
	(arm_file_start): Call arm_print_tune_info.
	* config/arm/arm-protos.h (struct tune_params): Add comment.
	* doc/invoke.texi (@item -mprint-tune-info): New item.
	(-mtune): mention it in ARM Option Summary.

2015-03-25  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
	correct clause.

2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
	* ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
	(sem_item::add_type): New function.
	(sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
	(sem_function::compare_polymorphic_p): Do not consider indirect calls.
	(sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
	(sem_function::equals_wpa): Fix typo.
	* ipa-icf.h (sem_item::add_type): New function.
	(symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
	order.

2015-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65533
	* tree-vect-slp.c (vect_build_slp_tree): Before re-trying
	with swapped operands, call vect_free_slp_tree on
	SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
	vector.

2015-03-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/65517
	* tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
	for fixup if necessary.

2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes): Add @cindex entries
	for all attributes and regularize their format.  Delete text
	about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
	information about "eightbit_data", "tiny_data", and "model"
	variable attributes to the Variable Attributes section.  Fix
	some obvious typos and copy-editing issues.
	(Variable Attributes, Type Attributes): Likewise add/fix
	@cindex entries for all attributes.

2015-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/65523
	* tree-chkp.c (chkp_build_returned_bound): Ignore
	ERF_RETURNS_ARG calls if they have fewer than needed arguments.

2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65505
	* config/sh/predicates.md (simple_mem_operand,
	displacement_mem_operand): Add test for reg.
	(short_displacement_mem_operand): Test for displacement_mem_operand
	before invoking sh_disp_addr_displacement.
	* config/sh/constraints.md (Sdd, Sra): Simplify.
	* config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
	Remove redundant displacement_mem_operand tests.

2015-03-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
	the same -mmcu=MCU more than once.

2015-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/65522
	* ipa-devirt.c: Remove duplicate demangle.h include.

	PR target/65504
	* config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
	on the pseudo.
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
	REG_POINTER on *destptr after adjusting it for prologue size.

	PR ipa/65521
	* ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
	ultimate_alias_target ()->order ints instead of
	ultimate_alias_target () pointers.

2015-03-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65518
	* tree-vect-stmts.c (vectorizable_load): Reject single-element
	interleaving cases we generate absymal code for.

2015-03-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65494
	* tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
	matches here.
	(vect_analyze_slp_instance): But do that here, always and once.

2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* expmed.c (synth_mult): Fix comment about multiplying by T-1 and
	adding T or multiplying by T+1 and subracting T.

2015-03-22  Jeff Law  <law@redhat.com>

	PR rtl-optimization/64317
	* Makefile.in (OBJS): Add gcse-common.c
	* gcse.c: Include gcse-common.h
	(struct modify_pair_s): Move structure definition to gcse-common.h
	(compute_transp): Move function to gcse-common.c.
	(canon_list_insert): Similarly.
	(record_last_mem_set_info): Break out some code and put it into
	gcse-common.c.  Call into the new common code.
	(compute_local_properties): Pass additional arguments to compute_transp.
	* postreload-gcse.c: Include gcse-common.h and df.h
	(modify_mem_list_set, blocks_with_calls): New variables.
	(modify_mem_list, canon_modify_mem_list, transp): Likewise.
	(get_bb_avail_insn): Pass in the expression index too.
	(alloc_mem): Allocate memory for the new bitmaps and lists.
	(free_mem): Free memory for the new bitmaps and lists.
	(insert_expr_in_table): Record a bitmap index for each entry we
	add to the table.
	(record_last_mem_set_info): Call into common code in gcse-common.c.
	(get_bb_avail_insn): If no available insn was found in the requested
	BB.  If BB has a single predecessor, see if the expression is
	transparent in BB and available in that single predecessor.
	(compute_expr_transp): New wrapper for compute_transp.
	(eliminate_partially_redundant_load): Pass expression's bitmap_index
	to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
	(gcse_after_reload_main): If there are elements in the hash table,
	then compute transparency for all the elements in the hash table.
	* gcse-common.h: New file.
	* gcse-common.c: New file.

2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/cpp.texi (Search Path): Hyphenate "command-line" when used
	as an adjective.
	(System Headers): Likewise.
	(Ifdef): Likewise.
	(Traditional macros): Likewise.
	(Invocation): Likewise.
	(Option Index): Likewise.
	* doc/cppopts.texi (-M): Likewise.
	(-finput-charset): Likewise.
	(--help): Likewise.
	* doc.invoke.texi (AVR Options): Likewise.
	(V850 Options): Likewise.

2015-03-22  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65475
	* ipa-devirt.c: Include demangle.h
	(odr_type_d): Add field rtti_broken.
	(odr_subtypes_equivalent_p): Do not require name to match.
	(compare_virtual_tables): Fix typo; if type already has ODR violation,
	bypass the tests; be ready for function referneces in vtables that are
	not DECL_VIRTUAL; make warnings to be OPT_Wodr.
	(warn_odr): Give up for nameless types.
	(warn_types_mismatch): Report mismatch in mangled names;
	report mismatch in anonymous namespaces; look into component types to
	give useful error; report when mismatch is dragged in from other ODR
	type.
	(odr_types_equivalent_p): Match types for being polymorphic; avoid
	duplicated diagnostics.
	(add_type_duplicate): Reorder checks so more informative ones come
	first; fix typo; do not output "the extra base is defined here" when
	we did not warn.
	(BINFO_N_BASE_BINFOS): Relax sanity check.

2015-03-22  Martin Liska  <mliska@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (def_builtin): Set deferred_isa_values for
	masks that can potentially include a builtin.
	(ix86_add_new_builtins): Introduce fast filter for isa values
	that cannot trigger builtin inclusion.

2015-03-22  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
	(sem_item::update_hash_by_local_refs): Likewise.
	(sem_variable::get_hash): Empty line is fixed.
	(sem_item_optimizer::execute): Include adding of hash references.
	(sem_item_optimizer::update_hash_by_addr_refs): New function.
	(sem_item_optimizer::build_hash_based_classes): Use local hash.
	* ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
	(sem_item::update_hash_by_local_refs): Likewise.

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65502
	* ipa-comdats.c (enqueue_references): Walk through thunks.
	(ipa_comdats): Likewise.
	(set_comdat_group_1): New function.

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65475
	* ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
	non-polymorphic

2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Update entry for Danny Smith.

2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
	function parameter declaration.
	* config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
	Update arguments to nios2_adjust_call_address().
	(sibcall_internal): Rename from *sibcall.
	(sibcall_value_internal): Rename from *sibcall_value.
	* config/nios2/nios2.c (nios2_emit_add_constant): New function.
	(nios2_large_got_address): Add target temp reg parameter.
	(nios2_got_address): Adjust call to nios2_large_got_address, add
	force_reg around it.
	(nios2_load_pic_address): Add target temp reg parameter, replace call
	to nios2_got_address with corresponding code.
	(nios2_legitimize_constant_address): Update call to
	nios2_load_pic_address.
	(nios2_adjust_call_address): Add temp reg parameter, update PIC case
	to use temp reg for PIC loading purposes.
	(nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
	(TARGET_ASM_OUTPUT_MI_THUNK): Likewise.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fno-diagnostics-show-caret): Fix
	usage of "the @option{...}".
	(-Wopenmp-simd): Likewise.
	(-fsanitize-recover): Likewise.
	(-fsanitize-undefined-trap-on-error): Likewise.
	(-flto): Likewise.
	(tracer-dynamic-coverage-feedback): Likewise.
	(reorder-block-duplicate-feedback): Likewise.
	(loop-unroll-jam-size): Likewise.
	(-B): Likewise.
	(-I-): Likewise.
	(-mabs=legacy): Likewise.
	(-mupper-regs-df): Likewise.
	(-mupper-regs-sf): Likewise.
	(-mpointers-to-nested-functions): Likewise.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Cilk Plus Builtins): Add markup.

2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
	additional index entries and cross-references.
	(-fchkp-check-incomplete-type): Likewise.
	(-fchkp-first-field-has-own-bounds): Likewise.
	(-fchkp-narrow-to-innermost-array): Likewise.
	(-fchkp-use-fast-string-functions): Likewise.
	(-fchkp-use-nochk-string-functions): Likewise.
	(-fchkp-use-static-const-bounds): Likewise.
	(-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
	(-fchkp-instrument-marked-only): Likewise.
	(-fchkp-use-wrappers): Likewise.
	(-static-libmpx): Likewise.
	(-static-libmpxwrappers): Likewise.
	* doc/extend.texi (bnd_legacy): Likewise.
	(bnd_instrument): Likewise.
	(bnd_variable_size): Likewise.
	(Pointer Bounds Checker builtins): Likewise.

2015-03-21  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65458
	* cgraph.c (cgraph_node::dump): Handle parallelized_function field.
	* cgraph.h (cgraph_node): Add parallelized_function field.
	* lto-cgraph.c (lto_output_node): Write parallelized_function field.
	(input_overwrite_node): Read parallelized_function field.
	* omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
	parallelized_function on cgraph_node for child_fn.
	* tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
	Remove include of gt-tree-parloops.h.
	(parallelized_functions): Remove static variable.
	(parallelized_function_p): Rewrite using parallelized_function field of
	cgraph_node.
	(create_loop_fn): Remove adding to parallelized_functions.
	* Makefile.in (GTFILES): Remove tree-parloops.c

2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64366
	* lra.c (lra_update_insn_regno_info): Consider regs in
	CALL_INSN_FUNCTION_USAGE memory.

2015-03-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/64715
	* tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
	for type comparison and gcc_checking_assert.
	(chrec_fold_plus_poly_poly): Likewise.
	(chrec_fold_multiply_poly_poly): Likewise.
	(chrec_convert_1): Likewise.
	* gimplify.c (gimplify_expr): Remove premature folding of
	&X + CST to &MEM[&X, CST].

2015-03-20  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
	already is final.
	(ipa_inline): Recompute inline_failed codes.
	* cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
	USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
	CIF_FINAL_ERROR.

2015-03-20  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/60851
	* recog.c (constrain_operands): Accept a pseudo register before reload
	for LRA enabled targets.

2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65240
	* config/rs6000/predicates.md (easy_fp_constant): Remove special
	-ffast-math handling that kept non-0 constants live in the RTL
	until reload.  Remove logic testing the number of instructions it
	took to create a constant in a GPR that was never used, due to a
	test for soft-float earlier.
	(memory_fp_constant): Delete, no longer used.

	* config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
	alternatives for loading non-0 constants into GPRs for hard
	floating point that is no longer needed due to changes in
	easy_fp_constant.  Add support for loading 0.0 into GPRs.
	(mov<mode>_hardfloat32): Likewise.
	(mov<mode>_hardfloat64): Likewise.
	(mov<mode>_64bit_dm): Likewise.
	(movtd_64bit_nodm): Likewise.
	(pre-reload move FP constant define_split): Delete define_split,
	since it is no longer used.
	(extenddftf2_internal): Remove GHF constraints that are not valid
	for extenddftf2.

2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63491
	* lra-constraints.c (check_and_process_move): Use src instead of
	sreg.  Remove some dead code.

2015-03-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65380
	* ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
	(sem_variable::merge): Likewise.

2015-03-19  Martin Liska  <mliska@suse.cz>

	PR ipa/65465
	* cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
	all fields of cgraph_thunk_info.

2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_maybe_create_clone): Don't try to
	clone instrumented thunks.

2015-03-19  Richard Biener  <rguenther@suse.de>

	Revert
	2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/63155
	* tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
	* tree-ssa-coalesce.c: Include timevar.h.
	(attempt_coalesce): Handle graph being NULL.
	(coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
	Split out abnormal coalescing to ...
	(perform_abnormal_coalescing): ... this function.
	(coalesce_ssa_name): Perform abnormal coalescing without computing
	live/conflict.
	(verify_ssa_coalescing_worker): New function.
	(verify_ssa_coalescing): Likewise.

2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65400
	* tsan.c (instrument_gimple): Clear tail call flag on
	calls.

2015-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65400
	* ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
	call in the return bb.
	(find_split_points): Add RETURN_BB argument, don't call
	find_return_bb.
	(split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
	if true append TSAN_FUNC_EXIT internal call after the call to
	the split off function.
	(execute_split_functions): Call find_return_bb here.
	Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
	Adjust find_split_points and split_function calls.

2015-03-18  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
	(iorqi3_virt): Likewise.

2015-03-18  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (parallelize_loops): Make static.
	* tree-parloops.h (parallelize_loops): Remove extern declaration.

2015-03-18  Andrew Stubbs  <ams@codesourcery.com>

	PR middle-end/64491
	Revert:
	2014-11-20  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
	condition would be removed due to undefined behaviour.

2015-03-18  Martin Liska  <mliska@suse.cz>

	PR ipa/65432
	* cgraph.c (cgraph_node::get_create): Remove unnecessary
	xstrdup_for_dump wrapper.
	* ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
	sem_item::name.
	(sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
	with xstrdup_for_dump.
	(sem_variable::equals): Likewise.
	(sem_item_optimizer::read_section): Use symtab_node::name instead of
	sem_item::name.
	(sem_item_optimizer::parse_funcs_and_vars): Likewise.
	(sem_item_optimizer::merge_classes): Wrap symtab_node::name and
	symtab_node::asm_name with xstrdup_for_dump.
	(congruence_class::dump): Use symtab_node::name instead of
	sem_item::name.
	* ipa-icf.h (symtab_node::name): Remove.
	(symtab_node::asm_name): Likewise.

2015-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65450
	* tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
	function.
	(vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
	it instead of duplicate_ssa_name_ptr_info.

	PR target/65222
	* doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.

2015-03-18  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (struct access_matrix): Remove.
	(AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
	AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
	AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
	(am_vector_index_for_loop): Likewise.
	(struct data_reference): Remove access_matrix member.
	(DR_ACCESS_MATRIX): Remove.
	(lambda_vector_new): Add comment.
	(lambda_matrix_new): Use XOBNEWVEC.

2015-03-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
	(pass_ch::execute): Cleanup the CFG only if we did sth.
	* tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.

2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* expmed.c (synth_mult): Use std::swap instead of manually
	swapping algorithms.

2015-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/65078
	* config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.

2015-03-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config/avr/avr.opt (-nodevicelib): New option.
	* doc/invoke.texi (AVR Options): Document it.
	* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
	libgcc.a, libc.a, libm.a.
	* config/avr/specs.h: Same.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
	which don't (directly) depend on the device.  Print more help.
	(*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
	(*cpp): Don't define __AVR_DEV_LIB_NAME__.
	* config/avr/driver-avr.c: Remove -nodevicelib from option list in
	case of an error.
	(avr_devicespecs_file): Use suffix "%s" instead of absolute path
	for specs file name.
	* config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
	* config/avr/avr-mcus.def: Adjust initializers and comments.

2015-03-16  Jan Hubicka  <hubicka@ucw.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Use
	DECL_ONE_ONLY to check if decl is one only.
	* ipa-split.c (consider_split): Limit splitt of one only functions.

2015-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65427
	* tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
	functions.
	(expand_vector_operations_1): Handle BLKmode vector COND_EXPR.

2015-03-16  Marek Polacek  <polacek@redhat.com>

	* cgraph.h (add_new_static_var): Remove declaration.
	* varpool.c (add_new_static_var): Remove function.

2015-03-16  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
	instead of vec<tree> * with vec_alloc and release for args.
	Adjust all users.

	PR middle-end/65431
	* omp-low.c (delete_omp_context): Only splay_tree_delete
	reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
	is_gimple_omp_oacc contexts.  Don't look at ctx->outer.

2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR sanitizer/64820
	* cfgexpand.c (align_base): New function.
	(alloc_stack_frame_space): Call it.
	(expand_stack_vars): Align prev_frame to be sure
	data->asan_vec elements aligned properly.

2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/65409
	* expr.c (store_field): Do not do a direct block copy if the source is
	a PARALLEL with BLKmode.

2015-03-16  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/65414
	Revert:
	2015-03-12  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64895
	* lra-lives.c (check_pseudos_live_through_calls): Use
	actual_call_used_reg_set instead of call_used_reg_set, if available.

2015-03-16  Alan Modra  <amodra@gmail.com>

	PR target/63150
	* config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
	Modify Z->r bswapdi splitter to use dest in place of scratch.
	In r->Z and Z->r bswapdi splitter rename word_high, word_low
	to word1, word2 and rearrange logic to suit.
	(bswapdi2_64bit): Remove early clobber on Z->r alternative.
	(bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
	(bswapdi2_32bit): Remove early clobber on Z->r alternative.
	Add one '?' on r->r.  Modify Z->r splitter to avoid need for
	early clobber.

2015-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65369
	* tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
	Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
	(vs - 1) * TYPE_SIZE_UNIT (elem_type).

	PR tree-optimization/65418
	* tree-ssa-reassoc.c (extract_bit_test_mask): If there
	are casts in the first PLUS_EXPR operand, ensure tbias and
	*totallowp are in the inner type.

	PR rtl-optimization/65401
	* combine.c (rtx_equal_for_field_assignment_p): Add widen_x
	argument.  If true, adjust_address_nv of x with big-endian
	correction for the mode widening to GET_MODE (y).
	(make_field_assignment): Don't do MEM mode widening here.
	Use MEM_P instead of GET_CODE == MEM.

2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>

	* varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
	the external decls.

2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64600
	* config/arm/arm.c (arm_gen_constant, AND case): Use
	ARM_SIGN_EXTEND when constructing AND mask.

2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* graph.c (print_graph_cfg): Make function names visible and append
	parenthesis to it.  Also make groups of basic blocks belonging to the
	same function visible.

2015-03-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
	to avoid quadratic behavior with inline expansion splitting blocks.
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
	with the successor if the predecessor will be merged with it.
	* tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
	entry block with its successor.

2015-03-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
	(cleanup_tree_cfg_1): Do not call it.
	(execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
	(fixup_noreturn_call): Mark the stmt as control altering.
	* tree-cfg.c (execute_fixup_cfg): Do not dump the function
	here.
	(pass_data_fixup_cfg): Produce a dump file.
	* tree-ssa-dom.c: Include tree-cfgcleanup.h.
	(need_noreturn_fixup): New global.
	(pass_dominator::execute): Fixup queued noreturn calls.
	(optimize_stmt): Queue calls that became noreturn for fixup.
	* tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
	* tree-ssa-pre.c: Include tree-cfgcleanup.h.
	(el_to_fixup): New global.
	(eliminate_dom_walker::before_dom_childre): Queue calls that
	became noreturn for fixup.
	(eliminate): Fixup queued noreturn calls.
	* tree-ssa-propagate.c: Include tree-cfgcleanup.h.
	(substitute_and_fold_dom_walker): New member stmts_to_fixup.
	(substitute_and_fold_dom_walker::before_dom_children): Queue
	alls that became noreturn for fixup.
	(substitute_and_fold): Fixup queued noreturn calls.

2015-03-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
	and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
	are building; for methods check ODR type of class they belong to if
	they may lead to a polymorphic call.
	(sem_function::compare_polymorphic_p): Be bit smarter about testing
	when function may lead to a polymorphic call.
	(sem_function::compare_type_list): Remove.
	(sem_variable::equals): Update use of compatible_types_p.
	(sem_variable::parse_tree_refs): Remove.
	(sem_item_optimizer::filter_removed_items): Do not filter out CXX
	cdtor.
	* ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
	matching here.
	(func_checker::compatible_polymorphic_types_p): Break out from ...
	(unc_checker::compatible_types_p): ... here.
	* ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
	Declare.
	(unc_checker::compatible_types_p): Update.
	* ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
	Remove.

2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/65235
	* simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
	When first element of vec_concat is const_int, calculate its size
	using second element.

2015-03-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/65270
	* fold-const.c (operand_equal_p): Fix ordering of resetting
	OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.

2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_reorg): Move code to output nops after label
	to s390_reorg ().
	(s390_asm_output_function_label): Likewise.
	* config/s390/s390.c (s390_asm_output_function_label):
	Fix function label alignment with -mhtopatch.
	* config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
	UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
	("nop_2_byte"): New define_insn.
	("nop_4_byte"): Likewise.
	("nop_6_byte"): Likewise.
	* doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
	* doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.

2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65103
	* config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
	register.

2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65044
	* toplev.c (process_options): Restrict Pointer Bounds Checker
	usage with Address Sanitizer.

2015-03-12  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (gimple_split_block): Remove loop finding stmt
	to split on.
	* omp-low.c (expand_omp_taskreg): Split block before removing
	the stmt.
	(expand_omp_target): Likewise.
	* ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
	* tree-parloops.c (create_call_for_reduction_1): Pass a proper
	stmt to split_block.

2015-03-12  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64895
	* lra-lives.c (check_pseudos_live_through_calls): Use
	actual_call_used_reg_set instead of call_used_reg_set, if available.

2015-03-10  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
	(cgraph_node::remove): Likewise.
	(cgraph_node::get_untransformed_body): Likewise.
	* varpool.c (varpool_node::remove): Likewise.
	(varpool_node::get_constructor): Add sanity check.

2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fgnu89-inline): Remove discussion about
	old GCC versions.
	(-fabi-compat-version): Likewise.
	(-ffriend-injection): Likewise.
	(-Wdeclaration-after-statement): Likewise.
	(-fomit-frame-pointer): Likewise.
	(-ftree-coalesce-inlined-vars): Likewise.
	(-fvisibility=): Likewise.
	* doc/extend.texi (Typeof): Likewise.
	(Zero Length): Likewise.
	(Escaped Newlines): Likewise.
	(Compound Literals): Likewise.
	(Function Attributes): Likewise.
	(Label Attributes): Likewise.
	(Type Attributes): Likewise.
	(Function Names): Likewise.
	(Other Builtins): Likewise.
	(Function Specific Option Pragmas): Likewise.
	(C++ Interface): Likewise.

2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".

2015-03-11  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/65388
	* tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.

2015-03-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/invoke.texi (AVR Options) [-mrmw]: Document it.
	[-mn-flash]: Document it.
	[__AVR_ARCH__]: Document avrtiny.

	* config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
	(*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
	(*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.

2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* doc/invoke.texi: Add missing cpu values (z196, zEC12).

2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65242
	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
	allow reloads of PLUS in floating point/VSX registers.

2015-03-11  Junmo Park  <junmoz.park@samsung.com>

	* config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
	crypto_sha256_fast.
	(cortex_a57_crypto_complex): Add crypto_sha256_slow.

2015-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65310
	* tree-sra.c (build_ref_for_offset): Also preserve larger
	alignment.

2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>

	* asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/65368
	* config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
	new define_expand.
	(*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.

2015-03-10  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
	(sem_function::equals_wpa): ... here.

2015-03-10  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65367
	* ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
	when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
	separately.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/65286
	* config/rs6000/t-linux: For powerpc64* target set
	MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.

2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
	for redirect_all_calls.

2015-03-10  Marek Polacek  <polacek@redhat.com>

	* gdbinit.in (pcfun): Define and document.

2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>

	* config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
	of libgomp-plugin.h.
	(find_target_compiler): Support a case when the path to gcc is
	specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
	(generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
	intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
	libgomp-plugin.h.
	(main): Use GCC_INSTALL_NAME as target_driver_name.
	* config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
	define.
	(mkoffload.o): Remove obsolete include path and defines.
	(mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).

2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/63155
	* tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
	* tree-ssa-coalesce.c: Include timevar.h.
	(attempt_coalesce): Handle graph being NULL.
	(coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
	Split out abnormal coalescing to ...
	(perform_abnormal_coalescing): ... this function.
	(coalesce_ssa_name): Perform abnormal coalescing without computing
	live/conflict.
	(verify_ssa_coalescing_worker): New function.
	(verify_ssa_coalescing): Likewise.

2015-03-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config.gcc (extra_options) [avr]: Remove.
	(extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
	(tm_file) [avr]: Add avr/specs.h after avr/avr.h.
	(tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.

	* config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
	(-mmcu=): Add Var and MissingArgError properties.
	(-march=): Remove.
	* config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
	* config/avr/t-multilib: Regenerate.
	* config/avr/specs.h: New file.
	* config/avr/driver-avr.c: New file.
	* config/avr/genopt.sh: Remove file.
	* config/avr/avr-tables.opt: Remove file.
	* config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
	* config/avr/avr-c.c: Same.
	* avr-arch.h: Same.
	(avr_current_device): Remove proto.
	* config/avr/avr.h (avr_current_arch): Rename to avr_arch.
	(AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(avr_devicespecs_file): New specs function proto.
	(DRIVER_SELF_SPECS): Use device-specs-file spec function.
	* config/avr/avr.c (avr_current_arch): Rename to avr_arch.
	(avr_current_device): Remove definition and usage.
	(avr_set_core_architecture): New static function.
	(avr_option_override): Use it.
	* config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
	(mcu_name): New static array.
	(comparator, avr_archs_str, avr_mcus_str): New static functions.
	(avr_inform_devices, avr_inform_core_architectures): New functions.
	* config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
	(avrlibc.h) [WITH_AVRLIBC]: Include.
	(../rtems.h, rtems.h) [WITH_RTEMS]: Include.
	(print_mcu): Rewrite from scratch.
	* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
	Forward to avr-specific specs defined in device-specs file.
	* config/avr/t-avr (driver-avr.o): New rule.
	(avr-devices.o): Depend on avr-arch.h.
	(avr-mcus): No more depend on avr-tables.opt.
	(avr-tables.opt): Remove rule.
	(install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* c-family/c.opt (fchkp-use-wrappers): New.
	* ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
	(chkp_wrap_function): New.
	(chkp_build_instrumented_fndecl): Support wrapped
	functions.
	* doc/invoke.texi (-fcheck-pointer-bounds): New.
	(-fchkp-check-incomplete-type): 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.
	(-fchkp-use-wrappers): New.
	(-static-libmpx): New.
	(-static-libmpxwrappers): New.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
	(CHKP_SPEC): Add wrappers library.
	* c-family/c.opt (static-libmpxwrappers): New.

2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/linux-common.h (LIBMPX_LIBS): New.
	(LIBMPX_SPEC): New.
	(CHKP_SPEC): New.
	* gcc.c (CHKP_SPEC): New.
	(LINK_COMMAND_SPEC): Add CHKP_SPEC.
	* c-family/c.opt (static-libmpx): New.

2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* cgraph.h (struct cgraph_edge_hasher): Add hash overload
	for compare_type.
	* cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
	(cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
	(cgraph_add_edge_to_call_site_hash): Likewise.
	(cgraph_node::get_edge): Likewise.
	(cgraph_edge::set_call_stmt): Likewise.
	(cgraph_edge::remove_caller): Likewise.

2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
	(callee_saved_gpr_regs_size): ... this.
	(callee_saved_regs_first_regno): Rename to ...
	(callee_saved_first_gpr_regno): ... this.
	(callee_saved_regs_last_regno) Rename to ...
	(callee_saved_last_gpr_regno): ... this.
	* config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
	variables.
	(nds32_initial_elimination_offset): Likewise.
	(nds32_expand_prologue): Likewise.
	(nds32_expand_epilogue): Likewise.
	(nds32_expand_prologue_v3push): Likewise.
	(nds32_expand_epilogue_v3pop): Likewise.
	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
	Adjust renamed variables.
	(nds32_output_stack_pop): Likewise.

2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
	code in comment.

2015-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/65321
	* cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
	than shift mode.
	* var-tracking.c (use_narrower_mode): Likewise.

2015-03-10  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/65355
	* varasm.c (notice_global_symbol): Do not produce RTL.
	* symtab.c (symtab_node::can_increase_alignment_p): Check for section
	anchor.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
	check for section anchors.

2015-03-10  Alan Modra  <amodra@gmail.com>

	PR target/65286
	* config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
	to be single-arch by default.  Set cpu_is_64bit for powerpc64
	given --with-cpu=native.
	* config/rs6000/t-fprules: Do not set default MULTILIB vars.
	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
	and powerpc64le.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
	rs6000_isa_flags rather than TARGET_64BIT.

2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.

2015-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR lto/65361
	* ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
	on a TREE_BINFO, instead use BINFO_TYPE.

2015-03-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/65270
	* tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
	* fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
	operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
	of that.  When comparing dereferences compare alignment.
	When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.

2015-03-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (check_callers): Check
	node->can_remove_if_no_direct_calls_and_refs_p.
	(growth_likely_positive): Reorganize to call
	can_remove_if_no_direct_calls_p later.
	* cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
	will_be_removed_from_program_if_no_direct_calls_p): Add
	will_inline parameter.
	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
	cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
	Handle inliner case correctly.

2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63743
	* cfgexpand.c (reorder_operands): Also reorder if only second operand
	had its definition forwarded by TER.

2015-03-08  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65316
	* ipa-utils.h (types_odr_comparable): Add strict argument.
	* ipa-devirt.c: Fix whitespace;
	(odr_hasher): Remove.
	(odr_name_hasher, odr_vtable_hasher): New hashers.
	(can_be_name_hashed_p): New predicate.
	(hash_type_name): remove.
	(hash_odr_name): New.
	(odr_name_hasher::hash): new.
	(can_be_vtable_hashed_p): New.
	(hash_odr_vtable): New.
	(odr_vtable_hasher::hash): New.
	(types_same_for_odr): Add strict parameter.
	(types_odr_comparable): Likewise.
	(odr_name_hasher::equal): New.
	(odr_vtable_hasher::equal): New.
	(odr_name_hasher::remove): New.
	(odr_hash_type): Change to hash_table<odr_name_hasher>.
	(odr_vtable_hash_type): New.
	(odr_vtable_hash): New.
	(odr_subtypes_equivalent_p): Do strict comparsion.
	(add_type_duplicate): Merge type names; cleanup; avoid type
	duplicates.
	(register_odr_type): Initialize vtable hash.
	(build_type_inheritance_graph): Likewise
	(get_odr_type): Reorg to use two hashes.
	(dump_possible_polymorphic_call_targets): Move sanity check after debug
	output.
	(ipa_devirt): Dump type_inheritance_graph.
	(types_same_for_odr): Add strict mode.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65334
	* cgraph.h (symtab_node): Add definition_alignment,
	can_increase_alignment_p and increase_alignment.
	* symtab.c (symtab_node::can_increase_alignment_p,
	increase_alignment_1, symtab_node::increase_alignment,
	symtab_node::definition_alignment): New.
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
	can_increase_alignment_p.
	* tree-vectorizer.c (increase_alignment): Use increase_alignment.
	* tree-vect-stmts.c (ensure_base_align): Likewise.
	* varasm.c (function_section_1): Use definition_alignment.
	(assemble_start_function): Likewise.
	(emit_local): likewise.
	(build_constant_desc): Likewsie.
	(output_constant_def_contents): Likewise.
	(place_block_symbol): Likewise.
	(output_object_block): Likewise.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65316
	* tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
	when outputting debug.

2015-03-07  Marek Polacek  <polacek@redhat.com>
	    Martin Uecker  <uecker@eecs.berkeley.edu>

	PR sanitizer/65280
	* doc/invoke.texi: Update description of -fsanitize=bounds.

2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* tree-ssa-phiopt.c (neg_replacement): Remove.
	(tree_ssa_phiopt_worker): Remove negate optimization.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65302
	* value-prof.c (gimple_ic): Pure dead eh edges when needed.

2015-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/64928
	* tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
	and liveout_obstack members.
	(calculate_live_on_exit): Remove.
	(calculate_live_ranges): Change declaration.
	* tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
	(new_tree_live_info): Adjust.
	(calculate_live_ranges): Delete livein when not wanted.
	(calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
	Deal with partly deleted live info.
	(loe_visit_block): Remove temporary bitmap by using
	bitmap_ior_and_compl_into.
	(live_worklist): Adjust accordingly.
	(calculate_live_on_exit): Make static.
	* tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
	we do not need livein.

2015-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* real.c (real_from_string): Fix typo in assertion.

2015-03-06  Alex Velenko  <alex.velenko@arm.com>

	* ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
	the patch.

2015-03-05  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.

2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64342
	* lra-assigns.c (find_hard_regno_for): Rename to
	find_hard_regno_for_1.  Add a new parameter.
	(find_hard_regno_for): New function using find_hard_regno_for_1.

2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/65067
	* expmed.c (store_bit_field, extract_bit_field): Reworked the
	strict volatile bitfield handling.

2015-03-05  Martin Liska  <mliska@suse.cz>

	PR ipa/65318
	* ipa-icf.c (sem_variable::equals): Compare variables types.

2015-03-05  Richard Henderson  <rth@redhat.com>

	PR target/65121
	* config/arm/arm.c (arm_function_in_section_p): Fix predicate to
	correctly check weak symbol binding.

2015-03-05  Steve Ellcey  <sellcey@imgtec.com>

	PR middle-end/65315
	* cfgexpand.c (expand_stack_vars): Update large_align to maximum
	needed alignment.

2015-03-05  Martin Liska  <mliska@suse.cz>

	* ipa-inline.c (inline_small_functions): Set default value to
	prevent warning during bootstrap.
	* tree.h: Add pragma guard that ignores false positives during
	bootstrap.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65310
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Properly preserve alignment of the base of the access.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR ipa/65270
	* ipa-icf-gimple.c (func_checker::compare_memory_operand):
	Compare dependence info.

2015-03-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/65233
	* ipa-polymorphic-call.c: Include tree-ssa-operands.h and
	tree-into-ssa.h.
	(walk_ssa_copies): Revert last chage.  Instead do not walk
	SSA names registered for SSA update.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65270
	* ipa-icf.c (sem_item::compare_cgraph_references): Compare
	vtable references for their containing type.
	(sem_function::equals_wpa): Compare TYPE_RESTRICT
	and type attributes.

2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (round_up_loc): Cast divisor to signed on all paths
	before negating it.
	* stor-layout.c (finalize_record_size): Revert latest change.

2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
	for correct comdat handling.
	(cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
	Likewise.
	* cgraph.h (call_for_symbol_and_aliases): Fix formating.
	(used_from_object_file_p_worker): Remove.
	(cgraph_node::only_called_directly_or_alised): Add
	used_from_object_file_p.
	* ipa-inline-analysis.c (growth_likely_positive): Optimie.
	* ipa-inline-transform.c (can_remove_node_now_p_1): Use
	can_remove_if_no_direct_calls_and_refs_p.

2015-03-04  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.h (enum reg_class): Remove real registers from
	General register class.
	* config/rl78/rl78-real.md: Replace general register constraints
	with real+virtual register constraints.

2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
	from checking for -mhtm option.

2015-03-03  Jan Hubicka  <hubicka@ucw.cz>

	* tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
	(struct ipa_sra_check_caller_data): Add has_thunk field.
	(ipa_sra_check_caller): Check for thunk.
	(ipa_sra_preliminary_function_checks): Give up on function with
	thunks.
	(ipa_early_sra): Use call_for_symbol_and_aliases.

2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65249
	* config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
	called for __stack_chk_guard symbol.

2015-03-03  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
	inc/dec.
	(*addhi3_real): Likewise.
	* config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
	pattern to match incrementing memory.
	* config/rl78/predicates.md (rl78_1_2_operand): New.
	* config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
	it's the same and only mem.
	(rl78_alloc_physical_registers_op2): If there's effectively only
	one MEM, transcode it into HL.
	(rl78_far_p): Reject addresses that aren't legitimate.

2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
	negating it.

	* tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.

2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>

	Implement call0 ABI for xtensa
	* config/xtensa/constraints.md ("a" constraint): Include stack
	pointer in case of call0 ABI.
	("q" constraint): Make empty in case of call0 ABI.
	("D" constraint): Include stack pointer in case of call0 ABI.
	* config/xtensa/xtensa-protos.h (xtensa_set_return_address,
	xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
	prototypes.
	* config/xtensa/xtensa.c (xtensa_callee_save_size): New
	variable.
	(xtensa_regno_to_class): Make it a local variable in the
	function xtensa_regno_to_class.
	(xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
	macro, function prototype and implementation.
	(reg_nonleaf_alloc_order): Make it a local variable in the
	function order_regs_for_local_alloc.
	(xtensa_conditional_register_usage): New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
	(xtensa_valid_move): Allow direct moves to stack pointer
	register in call0 ABI.
	(xtensa_setup_frame_addresses): Only spill register windows in
	windowed ABI.
	(xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
	call0 ABI respectively.
	(xtensa_function_arg_1): Only mark a7 register for copying in
	windowed ABI.
	(xtensa_call_save_reg): New function.
	(compute_frame_size): Add space for callee saved register
	storage to the frame size in call0 ABI.
	(xtensa_expand_prologue): Generate code to set up stack frame
	and save callee-saved registers in call0 ABI.
	(xtensa_expand_epilogue): New function.
	(xtensa_set_return_address): New function.
	(xtensa_return_addr): Calculate return address in call0 ABI.
	(xtensa_builtin_saveregs): Only mark a7 register for copying and
	emit copying code in windowed ABI.
	(order_regs_for_local_alloc): Add preferred register allocation
	order for non-leaf function in call0 ABI.
	(xtensa_static_chain): Add atatic chain passing for call0 ABI.
	(xtensa_asm_trampoline_template): Add trampoline generation for
	call0 ABI.
	(xtensa_trampoline_init): Add trampoline initialization for
	call0 ABI.
	(xtensa_conditional_register_usage, xtensa_regno_to_class): New
	functions.
	* config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
	(TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
	(CALL_USED_REGISTERS): Modify to encode both windowed and call0
	ABI call-used registers.
	(HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
	(INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
	call0 ABI.
	(REG_CLASS_CONTENTS): Include all registers into the preferred
	reload registers set, adjust the set in the
	xtensa_conditional_register_usage.
	(xtensa_regno_to_class): Drop variable declaration.
	(REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
	function.
	(WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
	respectively.
	(FUNCTION_PROFILER): Add _mcount call for call0 ABI.
	(TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
	(RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
	(ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
	location in call0 ABI.
	(EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
	stack adjustment size when handling exception.
	(CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
	* config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
	definitions.
	("return" pattern): Generate ret.n/ret in call0 ABI.
	("epilogue" pattern): Expand epilogue.
	("nonlocal_goto" pattern): Use default in call0 ABI.
	("eh_return" pattern): Move implementation to eh_set_a0_windowed,
	emit eh_set_a0_* depending on ABI.
	("eh_set_a0_windowed" pattern): Former eh_return pattern.
	("eh_set_a0_call0", "blockage"): New patterns.

2015-03-03  Martin Liska  <mliska@suse.cz>

	PR ipa/65287
	* ipa-icf.c (sem_variable::parse): Skip all alias variables.

2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR 65138/target
	* config/rs6000/rs6000-tables.opt: Regenerate table.

2015-03-03  Renlin Li  <renlin.li@arm.com>

	* doc/md.texi (@item ^): Change ? into ^.

2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/tm.texi: Regenerated.

2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>

	* builtins.c (expand_builtin_return_addr): Add
	RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
	surrounding #ifdef.
	* config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
	definition to 1.
	* config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
	Likewise.
	* defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
	undefined.
	* doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
	paragraph.

2015-03-03  Martin Jambor  <mjambor@suse.cz>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (ipa_sra_check_caller_data): New type.
	(has_caller_p): Removed.
	(ipa_sra_check_caller): New function.
	(ipa_sra_preliminary_function_checks): Use it.

2015-03-03  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
	instead of if branch.

2015-03-03  Martin Liska  <mliska@suse.cz>

	PR ipa/65282
	* ipa-icf.c (sem_variable::equals): Fix wrong condition.

2015-03-23  Jeff Law  <law@redhat.com>

	PR tree-optimization/65241
	* tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
	hash table if INSERT is true.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65296
	* config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	PR target/64331
	* config/avr/avr.c (context.h, tree-pass.h): Include them.
	(avr_pass_data_recompute_notes): New static variable.
	(avr_pass_recompute_notes): New class.
	(avr_register_passes): New static function.
	(avr_option_override): Call it.

2015-03-03  Georg-Johann Lay  <avr@gjlay.de>

	Fix various problems with specs file generation.

	PR target/65296
	* config.gcc (extra_gcc_objs) [avr]: Remove.
	* config/avr/driver-avr.c: Remove file.
	* config/avr/t-avr (driver-avr.o): Remove rule.
	(gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
	INCLUDES to build.  Depend on TM_H.
	* config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
	build warnings.  Fix non-matching types and non-existing %-codes.
	(tm.h): Include.
	(*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
	(*libgcc) [WITH_AVRLIBC]: Add "-lm".
	* config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
	* config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
	(CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
	(LIBGCC_SPEC): Remove definitions.

2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
	to create a register in testing mode.

2015-03-03  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65263
	* cgraph.c (cgraph_node::has_thunk_p): New function.
	* cgraph.h (cgraph_node::has_thunk_p: Likewise.
	* ipa-icf.c (redirect_all_callers): Do not redirect thunks.
	(sem_function::merge): Assert is changed.

2015-03-03  Martin Liska  <mliska@suse.cz>
	    Martin Jambor  <mjambor@suse.cz>

	PR ipa/65087
	* ipa-icf.c (sem_item_optimizer::execute): Change function
	return value to boolean.
	(sem_item_optimizer::merge_classes): Likewise.
	(ipa_icf_driver): Return TODO_remove_functions in case there's
	a merge operation processed.
	* ipa-icf.h: Change function return value to boolean.

2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR 65138/target
	* config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
	processor type for 64-bit little endian PowerPC.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	-mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
	TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
	printing built-in mask so it does not pass NULL pointers.

	* doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
	-mcpu=powerpc64le.

2015-03-02  Steve Ellcey  <sellcey@imgtec.com>

	PR target/58158
	* config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
	!ISA_HAS_FP_CONDMOVE.

2015-03-02  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.md (*udivmod<mode>4_pow2): Remove
	reload_completed.

2015-03-02  Ulrich Drepper  <drepper@gmail.com>

	* doc/invoke.texi (Options for Code Generation Conventions):
	Fix URL of DSO paper.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65130
	* ipa-inline.c (check_callers): Looks for recursion.
	(inline_to_all_callers): Give up on uninlinable or recursive edges.
	* ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
	summary of inline clones.
	(do_estimate_growth_1): Fix recursion check.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64988
	* ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
	comdat groups.

2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
	    Aldy Hernandez  <aldyh@redhat.com>

	PR lto/65276
	* ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
	when checking TYPE_BINFO.

2015-03-02  Richard Biener  <rguenther@suse.de>

	PR ipa/65270
	* ipa-icf-gimple.c: Include builtins.h.
	(func_checker::compare_memory_operand): Compare base alignment.

2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65184
	* gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
	are never passed by reference.

2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65183
	* tree-chkp.c (chkp_check_lower): Don't check against
	zero bounds for already instrumented functions.
	(chkp_check_upper): Likewise.
	(chkp_fini): Clean pass local data to avoid wrong reusage.

2015-02-28  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_variable::equals): Improve debug output;
	get variable constructor.
	(sem_variable::parse): Do not filter out too early; give up on
	volatile and register vars.
	(sem_item_optimizer::filter_removed_items): Filter out nonreadonly
	variables.
	* ipa-icf.h (sem_variable::init): Do not set ctor.
	(sem_variable::ctor): Remove.

2015-03-01  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/65233
	* ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c: Include stor-layout.h
	(sem_function::compare_cgraph_references): Rename to ...
	(sem_item::compare_cgraph_references): ... this one.
	(sem_variable::equals_wpa): New function
	(sem_variable::equals): Do not check stuff already verified by
	equals_wpa.
	(sem_variable::equals): Reorg based on varasm.c:compare_constant.
	* ipa-icf.h (sem_item): Add compare_cgraph_references.
	(sem_function): Remove compare_cgraph_references.
	(sem_variable): Turns equals_wpa into non-inline.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
	(sem_item::add_expr): New function.
	(sem_function::hash_stmt): Handle operands of most statements.
	(sem_variable::get_hash): Hash the actual constructor.
	* ipa-icf.h (sem_item): Add add_expr.
	(sem_function): Update prototype of hash_stmt

2015-02-28  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65245
	* ipa-icf-gimple.c (func_checker::compare_function_decl):
	Remove.
	(func_checker::compare_variable_decl): Skip symtab vars.
	(func_checker::compare_cst_or_decl): Update.
	* ipa-icf.c (sem_function::parse): Do not consider aliases.
	(sem_function::compare_cgraph_references): Add ADDRESS parameter;
	use correct symtab predicates.
	(sem_function::equals_wpa): Update uses of compare_cgraph_references.
	(sem_variable::parse):  Update comment.
	(sem_item_optimizer::build_graph): Consider ultimate aliases
	for references.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
	of OBJ_TYPE_REF.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
	(sem_variable::merge) Likewise.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
	target; also match flag_ipa_devirt.

2015-03-01  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* ipa-icf-gimple.c (func_checker::compare_variable_decl):
	Validate variable alignment.
	* ipa-icf.c (sem_function::equals_private): Be more precise
	about non-common function attributes.
	(sem_variable::equals): Likewise.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65237
	* ipa-icf.c (sem_function::merge): Do not attempt to produce alias
	across COMDAT group boundary.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65232
	* ipa-icf.c (clear_decl_rtl): New function.
	(sem_function::merge): Clear RTL before forming alias.
	(sem_variable::merge): Clear RTL before forming alias.

2015-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65236
	* cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.

2015-02-28  Xingxing Pan  <xxingpan@marvell.com>

	* config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
	to neon_to_gp<q>.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
	a typo in the description.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64317
	* params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
	* params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
	* lra-constraints.c: Include "params.h".
	(EBB_PROBABILITY_CUTOFF): Use
	LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
	(lra_inheritance): Use '<' instead of '<=' for
	EBB_PROBABILITY_CUTOFF.
	* doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
	Document change.

2015-02-27  Martin Liska  <mliska@suse.cz>

	* ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
	vector length condition.

2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (x86 transactional memory intrinsics):
	Reorganize discussion of _xbegin.  Clarify that the return
	value is a bit mask.  Expand example and move to end of section.

2015-02-26  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	PR rtl-optimization/65220
	* config/i386/i386.md (*udivmod<mode>4_pow2): New.

2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/65032
	* lra-remat.c (update_scratch_ops): New.
	(do_remat): Call it.
	* lra.c (lra_register_new_scratch_op): New. Take code from ...
	(remove_scratches): ... here.
	* lra-int.h (lra_register_new_scratch_op): New prototype.

2015-02-27  Marek Polacek  <polacek@redhat.com>

	PR c/65040
	* doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
	-Wformat-signedness anymore.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
	function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (enum s390_builtin):
	Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
	(code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
	(s390_init_builtins): Generate new builtin functions.
	* config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
	(s390_sfpc, s390_efpc): New pattern definitions.

2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
	Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
	(s390_builtin_decls): New array.
	(s390_init_builtins): Put builtin decls into s390_builtin_decls.
	(s390_builtin_decl): New function.
	(TARGET_BUILTIN_DECL): Define macro.

2015-02-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/63175
	* builtins.c (get_object_alignment_2): Make sure to re-apply
	the ANDed mask after recursing to its operand gets us a new
	misalignment bit position.

2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
	    Martin Liska  <mliska@suse.cz>

	PR bootstrap/65150
	* ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
	Use address_matters_p.
	(redirect_all_callers, set_addressable): New functions.
	(sem_function::merge): Reorganize and fix merging issues.
	(sem_variable::merge): Likewise.
	(sem_variable::compare_sections): Remove.
	* common.opt (fmerge-all-constants, fmerge-constants): Remove
	Optimization flag.
	* symtab.c (symtab_node::resolve_alias): When alias has aliases,
	redirect them.
	(symtab_node::make_decl_local): Set ADDRESSABLE bit when
	decl is used.
	(address_matters_1): New function.
	(symtab_node::address_matters_p): New function.
	* cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
	check for merged flag.
	* cgraph.h (address_matters_p): Declare.
	(symtab_node::address_taken_from_non_vtable_p): Remove.
	(symtab_node::address_can_be_compared_p): New method.
	(ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
	* ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
	Remove.
	(comdat_can_be_unshared_p_1) Use address_matters_p.
	(update_vtable_references): Fix formating.
	* ipa-ref.c (ipa_ref::address_matters_p): Move inline.
	* cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
	* cgraphclones.c: Preserve merged and icf_merged flags.

2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes): Fix spelling and typos.
	(Label Attributes): Likewise.
	(Cilk Plus Builtins): Likewise.
	(ARC SIMD Built-in Functions): Likewise.
	(ARM C Language Extensions (ACLE)): Likewise.
	(PowerPC Built-in Functions): Likewise.
	(PowerPC Hardware Transactional Memory Built-in Functions):
	Likewise.

2015-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65216
	* tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
	new stmt and new SSA_NAME for lhs whenever the arguments have
	changed and weren't just swapped.  Fix comment typo.

	PR tree-optimization/65215
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
	for PDP endian targets.
	(perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
	Fix up formatting issues.
	(bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
	size is smaller than the original, adjust MEM_REF offset by the
	difference of sizes.  Use is_gimple_mem_ref_addr instead of
	is_gimple_min_invariant test to avoid adding address temporaries.

2015-02-26  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64693
	* ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
	(sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
	(sem_item_optimizer::process_cong_reduction): Include division by
	sensitive references.
	* ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
	* ipa-ref.c (ipa_ref::address_matters_p): New function.
	* ipa-ref.h (ipa_ref::address_matters_p): Likewise.

2015-02-26  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65192
	* config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
	Remove.
	* config/avr/avr.c: Same.
	(avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
	Refuse any constant address not in 0..0xbf.
	* config/avr/avr.md (*mov<mode>, *movsf): Remove
	tiny_valid_direct_memory_access_range from insn conditions.
	(mov<mode>): Don't special-case expansion of avrtiny addresses.

2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/61142
	* config/sh/sh.c (sh_check_add_incdec_notes): New function.
	* config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
	* config/sh/predicates.md (const_logical_operand): New predicate.
	* config/sh/sh.md: Add new peephole2 patterns.

2015-02-26  Marek Polacek  <polacek@redhat.com>

	PR ipa/65008
	* ipa-inline.c (early_inliner): Recompute inline parameters.

2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65171
	* config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
	instructions with TImode operands are included in the analysis.

2015-02-26  Sebastian Pop  <s.pop@samsung.com>

	* tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
	of an EDGE_FSM_THREAD.

2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>

	* config/rs6000/htm.md (tcheck): Fix assembly encoding.

2015-02-25  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/46102
	* dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.

2015-02-26  Sebastian Pop  <s.pop@samsung.com>

	PR tree-optimization/65048
	* tree-ssa-threadupdate.c (valid_jump_thread_path): New.
	(thread_through_all_blocks): Call valid_jump_thread_path.
	Remove invalid FSM jump-thread paths.

2015-02-26  Jakub Jelinek  <jakub@redhat.com>

	* passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
	(ipa_write_optimization_summaries): Likewise.
	* tree-streamer.h: Include data-streamer.h.
	(streamer_mode_table): Declare extern variable.
	(bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
	* lto-streamer-out.c (lto_output_init_mode_table,
	lto_write_mode_table): New functions.
	(produce_asm_for_decls): Call lto_write_mode_table when streaming
	offloading LTO.
	* lto-section-in.c (lto_section_name): Add "mode_table" entry.
	(lto_create_simple_input_block): Add mode_table argument to the
	lto_input_block constructors.
	* ipa-prop.c (ipa_prop_read_section, read_replacements_section):
	Likewise.
	* data-streamer-in.c (string_for_index): Likewise.
	* ipa-inline-analysis.c (inline_read_section): Likewise.
	* ipa-icf.c (sem_item_optimizer::read_section): Likewise.
	* lto-cgraph.c (input_cgraph_opt_section): Likewise.
	* lto-streamer-in.c (lto_read_body_or_constructor,
	lto_input_toplevel_asms): Likewise.
	(lto_input_mode_table): New function.
	* tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
	pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
	Use bp_pack_machine_mode.
	* real.h (struct real_format): Add name field.
	* lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
	(class lto_input_block): Add mode_table member.
	(lto_input_block::lto_input_block): Add mode_table_ argument,
	initialize mode_table.
	(struct lto_file_decl_data): Add mode_table field.
	(lto_input_mode_table, lto_output_init_mode_table): New prototypes.
	* tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
	unpack_ts_decl_common_value_fields,
	unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
	* tree-streamer.c (streamer_mode_table): New variable.
	* real.c (ieee_single_format, mips_single_format,
	motorola_single_format, spu_single_format, ieee_double_format,
	mips_double_format, motorola_double_format,
	ieee_extended_motorola_format, ieee_extended_intel_96_format,
	ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
	ibm_extended_format, mips_extended_format, ieee_quad_format,
	mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
	decimal_single_format, decimal_double_format, decimal_quad_format,
	ieee_half_format, arm_half_format, real_internal_format): Add name
	field.
	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.

2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR target/65161
	* config/i386/i386.c (ix86_sched_reorder): Skip instruction
	reordering for selective scheduling.

2015-02-26  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
	* config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
	(arm_arch_no_volatile_ce): Declare new global variable.
	* config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
	(arm_option_override): Assign value to arm_arch_no_volatile_ce.
	* config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
	(TARGET_NO_VOLATILE_CE): New macro.
	* config/arm/arm.md (arm_comparison_operator): Disabled if not allow
	volatile memory access in IT block

2015-02-25  Kai Tietz  <ktietz@redhat.com>

	PR tree-optimization/61917
	* tree-vect-loop.c (vectorizable_reduction): Handle obvious case
	that reduc_def_stmt is null.

2015-02-25  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
	hard register variables.

2015-02-25  Kai Tietz  <ktietz@redhat.com>

	PR target/64212
	* symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
	(symtab::noninterposable_alias): Likewise.

2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/65167
	* gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
	bounds registers.
	(avoid_func_arg_motion): Add dependencies for BNDSTX insns.

2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/64997
	* config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
	as split condition; force split via '#' in output pattern.

2015-02-25  Richard Biener  <rguenther@suse.de>
	    Kai Tietz  <ktietz@redhat.com>

	PR tree-optimization/61917
	* tree-vect-loop.c (vectorizable_reduction): Allow
	vect_internal_def without reduction to exit graceful.

2015-02-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/65196
	* config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
	only with NONDEBUG_INSN_P.

2015-02-25  Georg-Johann Lay  <avr@gjlay.de>

	Use variadic macros with avr-log.c.

	* config/avr/avr-protos.h (avr_vdump): New prototype.
	(avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
	(avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
	* config/avr/avr-log.c: Adjust comments.
	(avr_vdump): New function.
	(avr_vadump): Pass caller as 2nd argument instead of format string.
	(avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
	(avr_log_set_caller_e, avr_log_set_caller_f): Remove.

2015-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR lto/64374
	* target.def (target_option_stream_in): New target hook.
	* tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
	targetm.target_option.post_stream_in if non-NULL.
	* doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
	* doc/tm.texi: Updated.
	* config/i386/i386.c (ix86_function_specific_post_stream_in): New
	function.
	(TARGET_OPTION_POST_STREAM_IN): Redefine.

2015-02-24  Jeff Law  <law@redhat.com>

	PR target/65117
	* config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
	of operand 0 and operand 2.
	(zero_cost_loop_end, loop_end): Similarly.

2015-02-24  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
	CXX_MEM_STAT_INFO.

2015-02-24  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
	* config/rl78/rl78-expand.md (movsf): New, same as movsi.
	* config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
	instead of hardcoding SImode.

2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>

	* omp-low.c (create_omp_child_function): Tag entrypoint
	functions with a special attribute.

2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

	PR target/65058
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.

2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65123
	* lra-remat.c (operand_to_remat): Check hard regs in insn
	definition too.

2015-02-24  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
	to the assembler.

2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
	(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
	(BUILT_IN_GOACC_PARALLEL): Specify as
	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
	* builtin-types.def
	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	Remove function types.
	(BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
	(BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	New function types.

2015-02-24  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.

2015-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65170
	* wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
	if val[1] < 0, clear also val[2] and return 3.

2015-02-24  Alan Modra  <amodra@gmail.com>

	PR target/65172
	* config/rs6000/rs6000.c (get_memref_parts): Only return true
	when *base is a reg.  Handle nested plus addresses.  Simplify
	pre_modify test.

2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
	use natural alignment when optimizing for size.

2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/65153
	* config/sh/sh.md (movsicc_true+3): Remove peephole.
	* config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
	* config/sh/sh.c (replace_n_hard_rtx): Remove.

2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>

	PR fortran/63427
	* wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
	too big for a wide_int.  Implement missing wrapping operation.

2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/65163
	* config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
	instead of const_int 4294901760.

2015-02-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr: Fix typo in comment.

2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/rtl.texi (fma): Clarify documentation.

2015-02-20  Aldy Hernandez  <aldyh@redhat.com>

	PR debug/58123
	* gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
	over input_location.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>

	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
	unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
	restrict alignments to absolute_biggest_alignment.
	* config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
	Define.
	* doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
	* doc/tm.texi: Regenerate.
	* target.def (absolute_biggest_alignment): New DEFHOOKPOD.

2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64172
	* ira-color.c (color_pass): Prevent splitting multi-register pseudos.

2015-02-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65136
	* tree-ssa-propagate.c: Include cfgloop.h.
	(replace_phi_args_in): Avoid replacing loop latch edge PHI
	arguments with constants.

2015-02-20  Jakub Jelinek  <jakub@redhat.com>
	    Martin Liska  <mliska@suse.cz>

	PR target/63892
	* ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
	don't try to create_thunk if stdarg_p.  If
	!sem_item::target_supports_symbol_aliases_p (), similarly, and try to
	redirect_callers if possible.
	(sem_item_optimizer::execute): Call unregister_hooks here...
	(ipa_icf_driver): ... instead of here.

2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
	Mark operand 0 as earlyclobber in 2nd alternative.
	(1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
	Write negated shift amount into QI lowpart operand 0 and use it
	in the shift step.
	(2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>

	* cgraph.h (clone_function_name_1): Declare.
	* cgraphclones.c (clone_function_name_1): New function.
	(clone_function_name): Use it.
	* lto-partition.c: Include "stringpool.h".
	(must_not_rename, maybe_rewrite_identifier)
	(validize_symbol_for_target): New static functions.
	(privatize_symbol_name): Use must_not_rename.
	(promote_symbol): Call validize_symbol_for_target.
	(lto_promote_cross_file_statics): Likewise.
	(lto_promote_statics_nonwpa): Likewise.

2015-02-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/64452
	* config/avr/avr.md (pushhi_insn): New insn.
	(push<mode>1): Push virtual regs in one chunk using pushhi1_insn.

2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* tree-streamer.c (preload_common_nodes): Don't preload
	TI_VA_LIST* for offloading.
	* tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
	in_lto_p.

2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>

	* config/pa/pa.c (pa_emit_move_sequence): Always force
	(const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
	note on insn.

	* config/pa/pa.c (pa_reloc_rw_mask): New function.
	(TARGET_ASM_RELOC_RW_MASK): Define.
	(pa_cannot_force_const_mem): Revert previous change.

2015-02-19  Martin Jambor  <mjmabor@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65028
	* ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
	across jump functions.

2015-02-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.

2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.

2015-02-19  Richard Henderson  <rth@redhat.com>

	PR middle-end/65074
	* varasm.c (default_binds_local_p_2): Don't test node->definition;
	test DECL_EXTERNAL independent of symtab_node.

2015-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR lto/65012
	* varpool.c (varpool_node::get_constructor): Return early
	if this->lto_file_data is NULL.

2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
	(rank_for_schedule_debug): Update.
	(ready_sort): Make static.  Move sorting logic to ...
	(ready_sort_debug, ready_sort_real): New static functions.
	(schedule_block): Sort both debug insns and real insns in preparation
	for ready list trimming.  Improve debug output.
	* sched-int.h (ready_sort): Remove global declaration.

2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>

	* ipa-icf.c (sem_function::equals_private): Adjust.
	(sem_function::bb_dict_test): Take a vec<int> * instead of
	auto_vec<int>.
	* ipa-icf.h (bb_dict_test): Likewise.

2015-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/64634
	* tree-eh.c (frob_into_branch_around): Fix up typos
	in function comment.
	(lower_catch): Put eh_seq resulting from EH lowering of
	the cleanup sequence after the cleanup rather than before it.

2015-02-18  Tom de Vries  <tom@codesourcery.com>

	* common.opt (fstdarg-opt): New option.
	* tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
	* doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
	(@item -fstdarg-opt): New item.

2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/65064
	* config/ia64/predicates.md (sdata_symbolic_operand): Return false
	for common symbols.

2015-02-18  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/t-intelmic (mkoffload.o): Remove dependency on
	insn-modes.h.
	(ALL_HOST_OBJS): Add mkoffload.o.
	* config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.

2015-02-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
	(compare_virtual_tables): Be smarter about skipping typeinfos;
	do sane output on virtual table table mismatch.
	(warn_odr): Be ready for forward declarations of enums;
	output sane info on base mismatch and virtual table mismatch.
	(add_type_duplicate): Fix code choosing prevailing type; do not ICE
	when only one type is polymorphic.
	(get_odr_type): Fix hashtable corruption.
	(dump_odr_type): Dump mangled names.

2015-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65063
	* tree-predcom.c (determine_unroll_factor): Return 1 if we
	have replaced looparound PHIs.

2015-02-18  Martin Liska  <mliska@suse.cz>

	* lto-streamer.c (lto_streamer_init): Encapsulate
	streamer_check_handled_ts_structures with checking macro.

2015-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65087
	* cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
	section if !implicit_section.
	(cgraph_node::create_version_clone_with_body): Likewise.
	* trans-mem.c (ipa_tm_create_version): Likewise.

2015-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62217
	* tree-ssa-dom.c (cprop_operand): Avoid propagating copies
	into BIVs.

2015-02-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/65081
	* ubsan.c (OBJSZ_MAX_OFFSET): Define.
	(ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
	is in range [-16K, -1].  Don't issue run-time error if
	(ptr > ptr + offset).

2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/install.texi (nvptx-*-none): New section.
	* doc/invoke.texi (Nvidia PTX Options): Likewise.
	* config/nvptx/nvptx.opt: Update.

	* config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
	(access_check): New functions, copied from
	config/i386/intelmic-mkoffload.c.
	(main): For non-installed testing, look in all COMPILER_PATHs for
	GCC_INSTALL_NAME.

	* config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.

2015-02-18  Andrew Pinski  <apinski@cavium.com>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
	Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.

2015-02-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Only
	check locality if node is not already local.
	* ipa-inline.c (want_inline_function_to_all_callers_p): Use
	call_for_symbol_and_aliases instead of
	call_for_symbol_thunks_and_aliases.
	(ipa_inline): Likewise.
	* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
	first walk aliases.
	* ipa.c (symbol_table::remove_unreachable_nodes): Use
	call_for_symbol_and_aliases.
	* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
	(ipa_propagate_frequency_1): Use it; use opt_for_fn
	(ipa_propagate_frequency): Update.
	(ipa_profile): Add opt_for_fn gueards.

2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.opt (mcbranch-force-delay-slot): New option.
	* doc/invoke.texi (SH options): Document it.
	* config/sh/sh.c (sh_insn_length_adjustment): Check
	TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.

2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>

	* common.opt (fipa-cp-alignment): New.
	* ipa-cp.c (ipcp_store_alignment_results): Check
	flag_ipa_cp_alignment.
	* opts.c (default_options_table): Enable -fipa-cp-alignment for
	-O2.
	(enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
	* doc/invoke.texi: Document -fipa-cp-alignment.

2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64793
	* config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
	to nil.  Adjust comments.

2015-02-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Only
	check locality if node is not already local.
	* ipa-inline.c (want_inline_function_to_all_callers_p): Use
	call_for_symbol_and_aliases instead of
	call_for_symbol_thunks_and_aliases.
	(ipa_inline): Likewise.
	* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
	first walk aliases.
	* ipa.c (symbol_table::remove_unreachable_nodes): Use
	call_for_symbol_and_aliases.
	* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
	(ipa_propagate_frequency_1): Use it; use opt_for_fn
	(ipa_propagate_frequency): Update.
	(ipa_profile): Add opt_for_fn guards.

2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/mkoffload.c (parse_file): Fix logic error in
	skipping of "strange" tokens.

2015-02-17  Jeff Law  <law@redhat.com>

	* tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
	obsolete comment.

2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
	as forcing a HARD_DEP between instructions, thereby
	disallowing rewriting to break dependencies.

2015-02-16  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
	* lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
	variables in boundary that have no inlitalizer encoded and are
	not aliases.
	* varasm.c (default_binds_local_p_2): External definitions do not
	count as definitions here.

2015-02-16  Jeff Law  <law@redhat.com>

	PR tree-optimization/64823
	* tree-vrp.c (identify_jump_threads): Handle blocks with no real
	statements.
	* tree-ssa-threadedge.c (potentially_threadable_block): Allow
	threading through blocks with PHIs, but no statements.
	(thread_through_normal_block): Distinguish between blocks where
	we did not process all the statements and blocks with no statements.

2015-02-16  Jakub Jelinek  <jakub@redhat.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>

	PR ipa/64963
	* cgraphclones.c (cgraph_node::create_virtual_clone): Copy
	section if not linkonce.  Fix up formatting.
	(cgraph_node::create_version_clone_with_body): Copy section.
	* trans-mem.c (ipa_tm_create_version): Likewise.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65077
	* tree-ssa-structalias.c (get_constraint_for_1): Handle
	IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
	(find_func_aliases): Allow float values to carry pointers again.

2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/install.texi (Specific): Reorder targets list to put
	aarch64 in alphabetical order.  Add a link to aarch64*-*-*
	from the top menu.

2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	PR target/65058
	* config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
	mapping class to external variable or function reference.
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
	mapping class.

2015-02-16  David Eelsohn  <dje.gcc@gmail.com>

	PR target/53348
	* config/rs6000/rs6000.c (rs6000_declare_alias): Only use
	ASM_WEAKEN_DECL if defined.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* varasm.c (default_file_start): For LTO produced units
	emit <artificial> as file directive.

2015-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63593
	* tree-predcom.c (execute_pred_commoning_chain): Delay removing
	stmts and releasing SSA names until...
	(execute_pred_commoning): ... after processing all chains.

2015-02-16  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65059
	* ipa-comdats.c (ipa_comdats): Do not categorize thunks to
	external functions.

2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/bugreport.texi: Adjust section titles throughout the file
	to use "Title Case".
	* doc/extend.texi: Likewise.
	* doc/gcov.texi: Likewise.
	* doc/implement-c.texi: Likewise.
	* doc/implement-cxx.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/objc.texi: Likewise.
	* doc/standards.texi: Likewise.
	* doc/trouble.texi: Likewise.

2015-02-15  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (symtab_node::has_aliases_p): Simplify.
	(symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
	* tree.c (lookup_binfo_at_offset): Make static.
	(get_binfo_at_offset): Do not shadow offset; add explanatory
	comment.

2015-02-15  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_secondary_reload): Request a secondary reload
	for all floading point loads and stores except those using a register
	index address.
	* config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
	to a register.

2015-02-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (growth_data): Add uninlinable field.
	(do_estimate_growth_1): Record if any uninlinable edge was seen.
	(estimate_growth): Handle uninlinable edges correctly.
	(check_callers): New.
	(growth_likely_positive): Handle aliases correctly.

2015-02-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-chkp.c: Use iterate_direct_aliases.
	* symtab.c (resolution_used_from_other_file_p): Move inline.
	(symtab_node::create_reference): Fix formating.
	(symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
	(symtab_node::iterate_reference): Move inline.
	(symtab_node::iterate_referring): Move inline.
	(symtab_node::iterate_direct_aliases): Move inline.
	(symtab_node::used_from_object_file_p_worker): Inline into ...
	(symtab_node::used_from_object_file_p): ... this one; move inline.
	(symtab_node::call_for_symbol_and_aliases): Move inline;
	use iterate_direct_aliases.
	(symtab_node::call_for_symbol_and_aliases_1): New method.
	(cgraph_node::call_for_symbol_and_aliases): Move inline;
	use iterate_direct_aliases.
	(cgraph_node::call_for_symbol_and_aliases_1): New method.
	(varpool_node::call_for_node_and_aliases): Rename to ...
	(varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
	use iterate_direct_aliases.
	(varpool_node::call_for_symbol_and_aliases_1): New method.
	* ipa.c (ipa_single_use): Use iterate_direct_aliases.
	(ipa_discover_readonly_nonaddressable_var): Update.
	* ipa-devirt.c: Fix formating.
	* cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
	Move inline.
	(cgraph_node::call_for_symbol_and_aliases): Move inline.
	(cgraph_node::call_for_symbol_and_aliases_1): New function..
	* cgraph.h (used_from_object_file_p_worker): Remove.
	(resolution_used_from_other_file_p): Move inline.
	(symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
	(symtab_node::iterate_reference): Move inline.
	(symtab_node::iterate_referring): Move inline.
	(symtab_node::iterate_direct_aliases): Move inline.
	(symtab_node::used_from_object_file_p_worker): Inline into ...
	(symtab_node::used_from_object_file_p): Move inline.
	* tree-emutls.c (ipa_lower_emutls): Update.
	* varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
	(varpool_node::call_for_node_and_aliases): Remove.

2015-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/62209
	* tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
	op == range->exp, insert seq and gimplified code after labels
	instead of after the phi.

2015-02-13  Jeff Law  <law@redhat.com>

	PR bootstrap/65060
	Revert my change for tree-optimization/64823.

2015-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/65053
	* tree-ssa-phiopt.c (value_replacement): When moving assign before
	cond, either reset VR on lhs or set it to phi result VR.

2015-02-13  Jeff Law  <law@redhat.com>

	PR tree-optimization/64823
	* tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
	* tree-ssa-threadedge.c (potentially_threadable_block): Allow
	threading through blocks with PHIs, but no statements.
	(thread_through_normal_block): Distinguish between blocks where
	we did not process all the statements and blocks with no statements.

	PR rtl-optimization/47477
	* match.pd (convert (plus/minus (convert @0) (convert @1): New
	simplifier to narrow arithmetic.

2015-02-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65028
	* ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
	polymorphic call info when type is not known to be preserved.

2015-02-13  Maritn Jambor  <mjambor@suse.cz>

	PR ipa/65028
	* ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
	(inline_call): Use it.

2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
	GOMP_DEVICE_NVIDIA_PTX.

2015-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/65034
	* stmt.c (emit_case_nodes): Use void_type_node instead of
	NULL_TREE as LABEL_DECL type.

2015-02-13  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/constraints.md: Change "Q" and "T" constraints to memory
	constraints.
	* config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
	symbolic references to data to be forced to constant memory on the
	SOM target.

2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR tree-optimization/65002
	* tree-cfg.c (pass_data_fixup_cfg): Don't update
	SSA on start.
	* tree-sra.c (some_callers_have_no_vuse_p): New.
	(ipa_early_sra): Reject functions whose callers
	assume function is read only.

2015-02-13  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
	for LTO produced CUs.

2015-02-13  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/64705
	* tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
	* tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
	* tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
	(find_bivs, find_givs_in_stmt_scev): Pass new argument to
	expand_simple_operations.

2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
	    Richard Henderson  <rth@redhat.com>

	PR rtl/32219
	* cgraphunit.c (cgraph_node::finalize_function): Set definition
	before notice_global_symbol.
	(varpool_node::finalize_decl): Likewise.
	* varasm.c (default_binds_local_p_2): Rename from
	default_binds_local_p_1, add weak_dominate argument.  Use direct
	returns instead of assigning to local variable.  Unify varpool and
	cgraph paths via symtab_node.  Reject undef weak variables before
	testing visibility.  Reorder tests for simplicity.
	(default_binds_local_p): Use default_binds_local_p_2.
	(default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Unify varpool and cgraph paths
	via symtab_node.
	(default_elf_asm_output_external): Emit visibility when specified.

2015-02-13  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
	code setting up r11 for out-of-line fp restore.

2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
	(muser-mode): Likewise.

2015-02-13  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
	or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.

2015-02-12  David Howells  <dhowells@redhat.com>

	* tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
	warning.
	* tree-ssa-uninit.c (dump_predicates): Likewise.
	* opts.c (print_filtered_help): Likewise.

2015-02-12  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_die): Use "%s", name instead of name to
	avoid -Wformat-security warning.

	* dwarf2asm.c (dw2_asm_output_vms_delta): Only define
	if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
	* dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
	only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.

2015-02-12  Jason Merrill  <jason@redhat.com>

	* common.opt (-flifetime-dse): New.

2015-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65019
	* ubsan.c (ubsan_expand_objsize_ifn): Always return true.

	PR tree-optimization/65014
	* fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
	use original second operand of arg0 or arg1 instead of
	that adjusted by STRIP_NOPS.

2015-02-11  Jeff Law  <law@redhat.com>

	PR target/63347
	* haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
	that needs to be queued, just queue it for a single cycle.

2015-02-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
	bodies of thunks; comment on why.
	* symtab.c (symtab_node::get_partitioning_class): Aliases of extern
	symbols are extern.

2015-02-11  Richard Henderson  <rth@redhat.com>

	PR sanitize/65000
	* tree-eh.c (mark_reachable_handlers): Mark source and destination
	regions of __builtin_eh_copy_values.

2015-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/65003
	* varasm.c (place_block_symbol): Assert that DECL_RTL of the
	ultimate alias is MEM with SYMBOL_REF satisfying
	SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
	to place_block_symbol, but instead pass the SYMBOL_REF operand of it.

2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
	"diagnostic-core.h".
	(main): Initialize progname, and call diagnostic_initialize.

	* config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
	instead of __OPENMP_TARGET__.

	* config/nvptx/mkoffload.c: Include "gomp-constants.h".
	(process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
	hard-coding PTX_ID.

2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/sourcebuild.texi (pie_enabled): Document.

2015-02-11  Martin Liska  <mliska@suse.cz>

	PR ipa/64813
	* cgraphunit.c (cgraph_node::expand_thunk): Do not create
	a return value for call to a function that is noreturn.

2015-02-11  Richard Biener  <rguenther@suse.de>

	PR lto/65015
	* dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
	and -fresolution.

2015-02-11  Andrew Pinski  <apinski@cavium.com>

	PR target/64893
	* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
	Change the first argument type to size_type_node and add another
	size_type_node.
	(aarch64_simd_expand_builtin): Handle the new argument to
	AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
	print an out when the first two arguments are not
	nonzero integer constants.
	* config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
	Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.

2015-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/61925
	* config/i386/i386.c (ix86_reset_to_default_globals): Removed.
	(ix86_reset_previous_fndecl): Restore it here, unconditionally.
	(ix86_set_current_function): Rewritten.
	(ix86_add_new_builtins): Temporarily clear current_target_pragma
	when creating builtin fndecls.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/65005
	* ipa-visibility.c (cgraph_node::non_local_p): Turn into static
	function.
	* symtab.c (symtab_node::verify_base): Remove check that non-definitions
	have no comdat group.
	* lto-cgraph.c (lto_output_node): Always output thunk and alias info.
	(lto_output_varpool_node): Always output alias info.
	(output_refs): Output refs of boundary aliases, too.
	(compute_ltrans_boundary): Add alias and thunk target into boundaries.
	(output_symtab): Output call eges in thunks in boundary.
	(get_alias_symbol): Remove.
	(input_node, input_varpool_node): Do not special case weakrefs.
	* ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
	alias and thunks targets in the boundary; do not take removed symbols
	from their comdat groups.
	* cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
	(cgraph_node::global_info): Remove.
	(cgraph_node::rtl_info): Look through aliases and thunks.
	* cgrpah.h (global_info): Remove.
	(non_local_p): Remove.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
	to inline asm.  List dialects in proper order.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.

2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
	modified) reference to Solaris.

2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Extended Asm): Fix typos.

2015-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/65004
	* ubsan.c (ubsan_expand_vptr_ifn): Always return true.

2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64661
	* config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
	TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
	TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
	* config/sh/constraints.md (Ara, Add): New constraints.
	* config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
	predicates.
	(atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
	atomic_mem_operand_0.  Don't use force_reg on the memory address.
	(atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
	Sra constraint.  Convert to insn_and_split.  Add workaround for
	PR 64974.
	(atomic_compare_and_swap<mode>_hard): Copy to
	atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_0 predicate.
	(atomic_compare_and_swap<mode>_soft_gusa,
	atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
	AraAdd constraints.
	(atomic_compare_and_swap<mode>_soft_tcb,
	atomic_compare_and_swap<mode>_soft_imask,
	atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
	atomic_mem_operand_0 predicate and SraSdd constraints.
	(atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
	constraint.
	(atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
	(atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
	atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
	force_reg on the memory address.
	(atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
	atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
	atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
	atomic_mem_operand_1 predicate and Sra constraint.
	(atomic_fetch_<fetchop_name><mode>_hard): Copy to
	atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_<fetchop_name><mode>_hard): Copy to
	atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
	insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_<fetchop_name>_fetch<mode>_hard): Copy to
	atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
	Use atomic_mem_operand_1 predicate.
	(atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
	Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
	(atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
	in generated insn with original mem operand before emitting the insn.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa,
	atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
	atomic_<fetchop_name>_fetch<mode>_soft_gusa,
	atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
	Use atomic_mem_operand_1 predicate and AraAdd constraints.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb,
	atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
	atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
	atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
	atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
	atomic_<fetchop_name>_fetch<mode>_soft_tcb,
	atomic_not_fetch<mode>_soft_tcb,
	atomic_<fetchop_name>_fetch<mode>_soft_imask,
	atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
	atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
	Use atomic_mem_operand_1 predicate and SraSdd constraints.

2015-02-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
	and 3 earlyclobber operands.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt (fstack-reuse): Mark as optimization.

2015-02-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64982
	* cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.

2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>

	PR tree-optimization/64326
	* cfghooks.c (make_forwarder_block): Cap frequency of created block.

2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>

	PR gcov-profile/61889
	* gcov-tool.c: Remove wrong #if !defined(_WIN32)

2015-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64995
	* tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
	value we use is final.
	(visit_reference_op_store): Always valueize op.
	(visit_use): Properly valueize vuses.

2015-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64909
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
	pass a scalar-stmt count estimate to the cost model.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.

2015-02-10  Alexander Monakov  <amonakov@ispras.ru>

	* doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
	enabled by default together with var-tracking.

2015-02-10  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c: Remove DIV attribute code accidentally
	included in previous rl78 commit.

2015-02-10  Richard Biener  <rguenther@suse.de>

	* tree-streamer.h (streamer_read_tree_bitfields): Adjust.
	* tree-streamer-in.c (streamer_read_tree_bitfields): Do not
	return the bitpack.

2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>

	PR gcov-profile/61889
	* config.in: regenerate.
	* configure.in: Likewise.
	* configure.ac: Check for ftw.h.
	* gcov-tool.c: Check for ftw.h before using nftw.

2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>

	PR lto/64076
	* ipa-visibility.c (update_visibility_by_resolution_info): Only
	assert when not in lto mode.

2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>

	* ira-color.c (setup_left_conflict_sizes_p): Simplify
	initialization/assignment of conflict_size.

2015-02-09  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64978
	* ipa-cp.c (gather_caller_stats): Skip thunks.
	(propagate_constants_topo): Skip aliases.

2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* config/sh/sh.c (sh_option_override): Don't change
	-freorder-blocks-and-partition to -freorder-blocks even when
	unwinding is enabled.
	(sh_can_follow_jump): Return false if the followee jump is
	a crossing jump when -freorder-blocks-and-partition is specified.
	* config/sh/sh.md (*jump_compact_crossing): New insn.

2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
	* config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
	(sh_can_redirect_branch): Rename to ...
	(sh_can_follow_jump): ... this.  Constify argument types.
	* config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
	* doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
	* reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
	* doc/tm.texi: Regenerate.

2015-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64981
	* builtins.c (expand_builtin): Call targetm.expand_builtin
	for BUILT_IN_MD builtins regardless of asan_intercepted_p.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-icf.c (set_local): New function.
	(sem_function::merge): Use it.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_types_equivalent_p): Fix formating.
	(add_type_duplicate): Fix comparison of BINFOs.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
	on getting VOID pointer.

2015-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/64979
	* tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
	va_list escapes.

2015-02-09  Richard Biener  <rguenther@suse.de>

	* genmatch.c (replace_id): Copy expr_type.

2015-02-09  Richard Biener  <rguenther@suse.de>

	* tree-streamer.h (streamer_pack_tree_bitfields): Remove.
	(streamer_write_tree_bitfields): Declare.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
	properly unpack padding.
	(unpack_value_fields): Inline ...
	(streamer_read_tree_bitfields): ... here.
	* tree-streamer-out.c (pack_ts_base_value_fields): Inline
	and properly add padding bits.
	(streamer_pack_tree_bitfields): Fold into ...
	(streamer_write_tree_bitfields): ... this new function,
	exposing the bitpack object.
	* lto-streamer-out.c (lto_write_tree_1): Call
	streamer_write_tree_bitfields.

2015-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54000
	* tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
	(struct ivopts_data): Add loop_loc member.
	(tree_ssa_iv_optimize_loop): Dump loop location.
	(create_new_ivs): Likewise, also dump number of IVs generated.

2015-02-09  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
	just if not yet registered.
	(ipa_icf_generate_summary): Register callgraph hooks.

2015-02-08  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (gty_dummy): Delete.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
	(cgraph_node::local_p): Remove thunk related FIXME.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* i386.c (ix86_function_regparm): Look through aliases to see if callee
	is local and optimized.
	(ix86_function_sseregparm): Likewise; also use target's SSE math
	settings; error out instead of silently generating wrong code
	on mismatches.
	(init_cumulative_args): Look through aliases.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* ipa-split.c (execute_split_functions): Split if function has aliases.

2015-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63566
	* cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
	aliases before trying to expand it.
	(cgraph_node::expand_thunk): Fix formating.

2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Function Attributes [naked]): Copy-edit.
	(Using Assembly Language with C): Expand introduction.
	(Basic Asm): Copy-edit.  Add more information about uses of
	basic asm.
	(Extended Asm): Copy-edit.  Document new escape syntax and
	%l[label] syntax.
	(Global Reg Vars): Copy-edit.
	(Local Reg Vars): Likewise.

2015-02-06  David Edelsohn  <dje.gcc@gmail.com>

	PR debug/2714
	PR bootstrap/64256
	* xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
	(DBX_CONTIN_CHAR): Define.

2015-02-06  Sebastian Pop  <s.pop@samsung.com>
	    Brian Rzycki  <b.rzycki@samsung.com>

	PR tree-optimization/64878
	* tree-ssa-threadedge.c: Include tree-ssa-loop.h.
	(fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
	Stop recursion at loop phi nodes after having visited a loop phi node.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	* toplev.c (process_options): Change flag_ipa_ra before creating
	optimization_{default,current}_node.

	PR ipa/64896
	* cgraphunit.c (cgraph_node::expand_thunk): If
	restype is not is_gimple_reg_type nor the thunk_fndecl
	returns aggregate_value_p, set restmp to a temporary variable
	instead of resdecl.

2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra_emit_add): Fix a typo in using disp instead of base.

2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64205
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
	add a general secondary reload handler for SDmode, unless we have
	both read/write support for SDmode.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64937
	* dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
	Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
	or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
	1 before, push it to abstract_vec.
	(dwarf2out_abstract_function): Adjust caller.  Don't call
	set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
	DECL_ABSTRACT_P flags for all abstract_vec elts.

2015-02-06  Renlin Li  <renlin.li@arm.com>

	* tree-ssa-forwprop.c (execute): Keep location info while rewrite
	complex gimple.
	* tree-ssa.c (execute_update_addresses_taken): Likewise.

2015-02-06  Jeff Law  <law@redhat.com>

	PR target/64889
	* config/h8300/h8300.c (push): New argument "in_prologue".
	Pass "in_prologue" along to "F".
	(h8300_push_pop): Corresponding changes.
	(h8300_expand_prologue): Likewise.
	(h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.

2015-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64957
	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
	IOR rather than for AND.

2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/62631
	* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
	of shift-add and (add + shift) operations.  Rename local variable.

2015-02-05  Jeff Law  <law@redhat.com>

	PR target/17306
	* config/h8300/constraints.md (U): Correctly dectect
	"eightbit_data" memory addresses.
	* config/h8300/h8300.c (eightbit_constant_address_p): Also
	handle (const (plus (symbol_ref (x)))) where x is declared
	as an 8-bit data memory address.
	* config/h8300/h8300.md (call, call_value): Correctly detect
	"funcvec" functions.

	PR target/43264
	* config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
	24 to 28 bits for the H8/300.

2015-02-06  Alan Modra  <amodra@gmail.com>

	PR target/64876
	* config/rs6000/rs6000.c (chain_already_loaded): New function.
	(rs6000_call_aix): Use it.

2015-02-05  Jan Hubicka <hubicka@ucw.cz>

	* ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
	check.

2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/h8300/constraints.md ("U" constraint): Use strict
	variant of REG_OK_FOR_BASE_P after reload has started.

2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>

	* config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
	define to zero if !TARGET_NEON.
	(TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
	    Trevor Saunders  <tsaunders@mozilla.com>

	PR ipa/61548
	* tree-emultls.c (new_emutls_decl): Resolve alias after creating it.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
	when removing varpool nodes.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61548
	* varpool.c (varpool_node::remove): Fix order of variables.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64686
	* ipa-inline.c (inline_small_functions): Fix ordering issue between
	speculation resolution and key updates.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (update_indirect_edges_after_inlining): By more careful
	about not letting any speculative edges unupdated.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR gcov/64123
	* gcov-io.c (gcov_var): Export.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/64922
	* ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
	edges that become speculative.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
	or DW_LANG_Fortran08.
	(lower_bound_default): Return 1 for DW_LANG_Fortran03 or
	DW_LANG_Fortran08.
	(gen_compile_unit_die): Handle "GNU Fortran2003" and
	"GNU Fortran2008" language strings.
	* dbxout.c (get_lang_number): Use lang_GNU_Fortran.
	* langhooks.h (lang_GNU_Fortran): New prototype.
	* langhooks.c (lang_GNU_Fortran): New function.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
	lang_GNU_Fortran.

2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
	(RTX_OK_FOR_OLO10_P): Likewise.

2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.

2015-02-04  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/64922
	* gimple.c: Include gimple-ssa.h.
	(maybe_remove_unused_call_args): New function.
	* gimple.h (maybe_remove_unused_call_args): Declare.
	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
	* gimple-fold.c (gimple_fold_call): Likewise.

2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/64905
	* lra-eliminations.c (setup_can_eliminate): Clear hard frame
	pointer alignment if it isn't needed.

2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-cores.def: Add cortex-a72 and
	cortex-a72.cortex-a53.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".

2015-02-04  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
	inside a MEM.

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
	(DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
	(DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
	of DEF_BUILTIN.
	(BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
	BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
	DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
	(BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
	BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
	BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
	DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
	* tree-core.h (enum built_in_function): In between
	BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
	for builtins that use DEF_BUILTIN_CHKP macro.

2015-02-04  Alexandre Oliva <aoliva@redhat.com>

	PR debug/64817
	* cfgexpand.c (expand_debug_expr): Compute unsignedp from
	operands for tcc_comparison exprs.  Fix typos.

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Simplify one
	of two XORs that have an intervening AND or IOR.

	PR debug/64817
	* simplify-rtx.c (simplify_binary_operation_1): Rewrite
	simplification of XOR of AND to not allocate new rtx before
	committing to a simplification.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
	manual swaps in all peepholes.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
	of manual swapping implementation.
	(aarch64_expand_vec_perm_const_1): Likewise.

2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
	(generic_addrcost_table): Remove NAMED_PARAM.
	(cortexa57_addrcost_table): Likewise.
	(xgene1_addrcost_table): Likewise.
	(generic_regmove_table): Likewise.
	(cortexa53_regmove_table): Likewise.
	(xgene1_regmove_table): Likewise.
	(generic_vector_table): Likewise.
	(cortexa57_vector_table): Likewise.
	(xgene1_vector_table): Likewise.
	(generic_tunings): Likewise.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(xgene1_tunings): Likewise.

2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>

	* config/arm/arm-cores.def: Add cortex-a72 and
	cortex-a72.cortex-a53.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-tables.opt: Add entries for "cortex-a72" and
	"cortex-a72.cortex-a53".
	* doc/invoke.texi (ARM Options/-mtune): Likewise.

2015-02-04  Nick Clifton  <nickc@redhat.com>

	PR target/64408
	* config/fr30/predicates.md (di_operand): Add SUBREG to the list
	of accepted codes.
	(nonimmediate_di_operand): Likewise.

	* config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
	prefixes of known F5 using MSP430 MCUs.

2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
	* config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
	instead of __builtin_sqrt.

2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>

	* varasm.c (do_assemble_alias): Follow transparent alias
	chain for target.
	(default_assemble_visibility): Follow transparent alias
	chain for decl name.

2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR middle-end/62103
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
	to compute size of referenced value in the constant case.

2015-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64756
	* cse.c (invalidate_dest): New function.
	(cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
	HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
	invalidate and do not record it.

2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64660
	* config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
	atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
	atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
	atomic_nand<mode>_soft_tcb): New insns.
	(atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
	(define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
	Split into atomic_not_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
	insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
	if operands[0] is unused.
	(atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
	(atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
	atomic_nand_fetchsi_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.
	(atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
	into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
	(atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_not<mode>_hard if operands[0] is unused.
	(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
	Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
	unused.
	(atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_not<mode>_soft_tcb if operands[0] is unused.
	(atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
	atomic_nand<mode>_hard if operands[0] is unused.
	(atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
	into atomic_nand<mode>_soft_tcb if operands[0] is unused.

2015-02-03  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64810
	* Makefile.in (GCC_OBJS): Add gcc-main.o.
	* gcc-main.c: New file, containing "main" taken from gcc.c.
	* gcc.c (do_self_spec): Free decoded_options.
	(class driver): Move declaration to gcc.h.
	(main): Move declaration and implementation to new file
	gcc-main.c.
	(driver_get_configure_time_options): New function.
	* gcc.h (class driver): Move this declaration here, from
	gcc.c.
	(driver_get_configure_time_options): New declaration.

2015-02-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (simple_edge_hints): Fix check for
	cross-module inlining.
	* cgraph.h (cgraph_node): Add flag merged.
	* ipa-icf.c (sem_function::merge): Maintain it.

2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
	instead of OBJECT_P.

2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/62631
	* config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
	(TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
	* config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
	int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.

2015-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR other/63504
	* combine.c (reg_n_sets_max): New variable.
	(can_change_dest_mode, reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value_validate,
	get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
	(try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
	(rest_of_handle_combine): Initialize reg_n_sets_max.

2015-02-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
	if some always_inline was inlined, apply changes before inlining
	heuristically.

2015-02-02  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64810
	* config/arm/arm.c (arm_option_override): Set
	arm_selected_arch/cpu/tune to NULL on entry.

2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
	    Andrew Pinski  <pinskia@gcc.gnu.org>
	    Jakub Jelinek  <jakub@gcc.gnu.org>

	PR target/64231
	* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
	integer typing for small model. Use IN_RANGE.

2015-02-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
	* tree-vrp.c (vrp_valueize_1): Likewise.

2015-02-02  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
	than mem for toc_restore.
	* config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
	(call_indirect_aix, call_value_indirect_aix): Adjust to suit.
	(call_indirect_elfv2, call_value_indirect_elfv2): Likewise.

2015-02-01  David Edelsohn  <dje.gcc@gmail.com>

	PR target/64047
	* config/rs6000/rs6000.c (rs6000_set_current_function): Handle
	explicit default options.

2015-02-01  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64872
	* ipa-utils.c (ipa_merge_profiles): Add release argument.
	* ipa-icf.c (sem_function::merge): Do not release body when merging.
	* ipa-utils.h (ipa_merge_profiles): Update prototype.

2015-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64817
	* cfgexpand.c (deep_ter_debug_map): New variable.
	(avoid_deep_ter_for_debug): New function.
	(expand_debug_expr): If TERed SSA_NAME is in
	deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
	instead of trying to expand SSA_NAME's def stmt.
	(expand_debug_locations): When expanding debug bind
	of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
	temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
	value.
	(pass_expand::execute): Call avoid_deep_ter_for_debug on
	all debug bind stmts.  Delete deep_ter_debug_map after
	expand_debug_location if non-NULL and clear it.

2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64851
	* config/sh/sync.md (atomic_fetch_notsi_hard,
	atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
	atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
	atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
	atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
	atomic_not_fetch<mode>_soft_imask): New insns.

2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
	(rank_for_schedule_debug): Split from ...
	(rank_for_schedule): ... this.
	(ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
	* sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.

2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/md.texi (Machine Constraints): Alphabetize table by target.
	* doc/extend.texi (x86 Variable Attributes): Move section to
	correct alphabetization	after renaming.
	(x86 Type Attributes): Likewise.
	(Target Builtins): Re-alphabetize menu.
	(x86 Built-in Functions): Move section to correct alphabetization
	after renaming.
	(x86 transactional memory intrinsics): Likewise.
	* doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
	and x86 Windows Options in table and menu.
	(x86 Options): Move section to correct alphabetization after
	renaming.
	(x86 Windows Options): Likewise.

2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
	preferred names of the architecture and its 32- and 64-bit
	variants.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64882
	* config/i386/predicates.md (address_no_seg_operand): Reject
	non-CONST_INT_P operands in invalid mode.

2015-01-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
	address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
	* config/i386/predicates.md (address_no_seg_operand): Call
	address_operand with VOIDmode.
	(vsib_address_operand): Ditto.
	(address_mpx_no_base_operand): Ditto.
	(address_mpx_no_index_operand): Ditto.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64688
	* lra-constraints.c (original_subreg_reg_mode): New.
	(simplify_operand_subreg): Try to simplify subreg of const.  Use
	original_subreg_reg_mode for it.
	(swap_operands): Update original_subreg_reg_mode.
	(curr_insn_transform): Set up original_subreg_reg_mode.

2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64617
	* lra-constraints.c (prohibited_class_reg_set_mode_p): New
	function.
	(process_alt_operands): Use it.
	(curr_insn_transform): Check the optional reload pseudo class is
	ok for the mode.

2015-01-30  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c (fatal_error (const char *, ...)): Remove function.
	* diagnostic-core.h (fatal_error (const char *, ...)): Remove
	prototype.
	* toplev.h (init_asm_output): Update comment on use of
	UNKNOWN_LOCATION with fatal_error.
	* cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
	config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
	config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
	config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
	config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
	config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
	config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
	ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
	lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
	lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
	tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
	fatal_error changed to pass input_location as first argument.

2015-01-30  Martin Liska  <mliska@suse.cz>

	* tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
	in #pragma GCC diagnostic guards.

2015-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64829
	* tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
	not add a widening conversion pattern but hand off extra
	widenings to callers.
	(vect_recog_widen_mult_pattern): Handle extra widening produced
	by vect_handle_widen_op_by_const.
	(vect_recog_widen_shift_pattern): Likewise.
	(vect_pattern_recog_1): Remove excess vertical space in dumping.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_init_vector_1): Likewise.
	(vect_get_vec_def_for_operand): Likewise.
	(vect_finish_stmt_generation): Likewise.
	(vectorizable_load): Likewise.
	(vect_analyze_stmt): Likewise.
	(vect_is_simple_use): Likewise.

2015-01-29  Jeff Law  <law@redhat.com>

	* combine.c (try_combine): Fix typo in comment.

2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64580
	* config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
	(rs6000_stack_info): Add assert.
	(rs6000_output_savres_externs): New function, split off from...
	(rs6000_output_function_prologue): ... here.  Do not call it for
	thunks.

2015-01-29  Jeff Law  <law@redhat.com>

	PR target/15184
	* combine.c (try_combine): If I0 is a memory load and I3 a store
	to a related address, increase the "goodness" of doing a 4-insn
	combination with I0-I3.
	(make_field_assignment): Handle SUBREGs in the ior+and case.

2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/64746
	* tree-if-conv.c (mask_exists): New function.
	(predicate_mem_writes): Save created mask with given size for further
	use.
	(stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
	(ifcvt_repair_bool_pattern): Collect all statements that are root
	of bool pattern and use iterative algorithm to remove multiple uses
	of predicates, display number of required iterations.

2015-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64853
	* tree-vrp.c (vrp_valueize_1): Do not return anything if the
	stmt will get simulated again.
	* tree-ssa-ccp.c (valueize_op_1): Likewise.

2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
	return_in_pc.  Remove redundant assignments.
	(thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
	(arm_expand_epilogue): Don't compare boolean with true in if condition.

2015-01-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_mode_after): Make static.

2015-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64844
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
	dump cost model analysis.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Do not register adjusted load/store costs here.

2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
	using x86_use_pseudo_pic_reg.
	* config/i386/i386.c (ix86_conditional_register_usage): Remove
	support for fixed PIC register.
	(ix86_use_pseudo_pic_reg): Not static any more.

2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR middle-end/64805
	* ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
	to avoid error in cgraph node verification.

2015-01-29  Marek Polacek  <polacek@redhat.com>

	* doc/standards.texi: Reflect that the default for C is gnu11.

2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64761
	* reorg.c (switch_text_sections_between_p): New function.
	(relax_delay_slots): Call it when testing if the jump insn
	is removable.  Use targetm.can_follow_jump when testing if
	the conditional branch can follow an unconditional jump.

2015-01-27  Caroline Tice  <cmtice@google.com>

	Committing VTV Cywin/Ming patch for Patrick Wollgast
	* config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
	* config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
	* config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
	* config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
	if -fvtable-verify=preinit/std is used.
	* config/i386/mingw-w64.h (LIB_SPEC): Likewise.
	* config/i386/mingw32.h (LIB_SPEC): Likewise.
	* varasm.c (assemble_variable): Add code to properly set the comdat
	section and name for the .vtable_map_vars section in case the
	target is PE or COFF.

2015-01-29  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64801
	* cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
	make sane BB profile.
	(cgraph_node::expand_thunk): Make sane BB profile.
	(cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
	* cgraph.h (init_lowered_empty_function): Update prototype.
	* config/i386/i386.c (make_resolver_func): Update call.
	* predict.c (gate): Disable branch prediction pass if
	profile is already there.

2015-01-29  Jan Hubicka  <hubicka@ucw.cz>

	* optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
	* opth-gen.awk: Likewise.
	* common.opt: Mark flag_fp_contract_mode as Optimization.

2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
	* config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.

2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64659
	* config/sh/predicates.md (atomic_arith_operand,
	atomic_logical_operand): Remove.
	* config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
	(atomic_arith_operand_0): New predicate.
	(atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
	Use atomic_arith_operand_0 for input values.
	(atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
	atomic_compare_and_swap<mode>_soft_gusa,
	atomic_compare_and_swap<mode>_soft_tcb,
	atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
	atomic_arith_operand_0 for newval input.
	(atomic_exchangesi_hard, atomic_exchange<mode>_hard,
	atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
	atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
	fetchop_predicate_1, fetchop_constraint_1_llcs,
	fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
	fetchop_constraint_1_imask): New code iterator attributes.
	(atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1.
	(atomic_fetch_<fetchop_name>si_hard,
	atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
	(atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_gusa.
	(atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
	to allow R0 usage.
	(atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
	and arith_reg_operand instead of register_operand.  Use
	fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
	to allow R0 usage.
	(atomic_fetch_nand<mode>): Use arith_reg_dest instead of
	register_operand.  Use atomic_logical_operand_1.
	(atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
	atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
	Use arith_reg_dest and arith_reg_operand instead of register_operand.
	Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
	(atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
	register_operand.  Use fetchop_predicate_1.
	(atomic_<fetchop_name>_fetchsi_hard,
	atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_llcs.
	(atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_gusa.
	(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
	(atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
	fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
	(atomic_nand_fetch<mode>): Use arith_reg_dest instead of
	register_operand.  Use atomic_logical_operand_1.
	(atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
	atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.
	(atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use logical_operand
	and K08.  Adjust asm sequence to allow R0 usage.
	(atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
	arith_reg_operand instead of register_operand.  Use logical_operand
	and K08.

2015-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR other/63504
	* dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
	Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
	(attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
	only get_full_len HOST_WIDE_INTs from get_val () array rather than
	all bits in *val_wide.

2015-01-28  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c (tls_model_names): Fix names.
	(varpool_node::dump): Dump tls- prefix for tls models.

2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/nvptx/mkoffload.c: New file.
	* config/nvptx/t-nvptx: Add build rules for it.
	* config.gcc <nvptx-*> [$enable_as_accelerator = yes]
	(extra_programs): Add mkoffload.
	* config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
	function.
	(TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.

2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR middle-end/64809
	* cfgexpand.c (reorder_operands): Skip debug gimples.

2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR tree-optimization/64277
	* tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
	range info when possible to refine estimation.

2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/64718
	* tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
	be a 16bit unsigned integer when n->range is 16.
	(bswap_replace): Convert src to that type if necessary for all bswap
	sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
	set in pass_optimize_bswap::execute ().

2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
	* config/aarch64/aarch64-simd-builtins.def (abs): Split by
	integer and floating point variants.
	* config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.

2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
	for all vector modes.

2015-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/64612
	* doc/sourcebuild.texi (comdat_group): Document.

2015-01-28  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.

2015-01-27  David Malcolm  <dmalcolm@redhat.com>

	* toplev.c (print_version): Add param "show_global_state", and
	only print GGC and plugin information if it is true.
	(init_asm_output): Pass in "true" for the new param when calling
	print_version.
	(process_options): Likewise.
	(toplev::main): Likewise.
	* toplev.h (print_version): Add new param to decl.

2015-01-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60871
	PR ipa/64139
	* tree.c (lookup_binfo_at_offset): New function.
	(get_binfo_at_offset): Use it.

2015-01-27  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64282
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
	on vtable being vtable.

2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* doc/extend.texi: s/390: Update documentation of hotpatch attribute.
	* doc/invoke.texi (-mhotpatch): s/390: Update documentation of
	-mhotpatch= option.
	* config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
	-mno-hotpatch options.  Change syntax of -mhotpatch= option.
	* config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
	Renamed.
	(s390_hotpatch_trampoline_halfwords_max): Renamed.
	(s390_hotpatch_hw_max): New name.
	(s390_hotpatch_trampoline_halfwords): Renamed.
	(s390_hotpatch_hw_before_label): New name.
	(get_hotpatch_attribute): Removed.
	(s390_hotpatch_hw_after_label): New name.
	(s390_handle_hotpatch_attribute): Add second parameter to hotpatch
	attribute.
	(s390_attribute_table): Ditto.
	(s390_function_num_hotpatch_trampoline_halfwords): Renamed.
	(s390_function_num_hotpatch_hw): New name.
	Remove special handling of inline functions and hotpatching.
	Return number of nops before and after the function label.
	(s390_can_inline_p): Removed.
	(s390_asm_output_function_label): Emit a configurable number of nops
	after the function label.
	(s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
	(TARGET_CAN_INLINE_P) Removed.
	(TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.

2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
	of scratch reg.
	(cb<optab><mode>1): Likewise.
	* config/aarch64/iterators.md (bcond): New define_code_attr.

2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_memory_move_cost): Increase costs for
	memory accesses.

2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_register_move_cost): Increase costs for
	FPR->GPR moves.

2015-01-27  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (update_value_range): Intersect the range with
	old recorded SSA name range information.

2015-01-27  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
	BC, DE and HL registers directly, not via AX.
	When decrementing the stack pointer by a large amount, transfer SP
	into AX and perform the subtraction there.
	(rl78_expand_epilogue): Perform the inverse of the above
	enhancements.

2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>
	    Yury Gribov  <y.gribov@samsung.com>

	PR ubsan/64741
	* ubsan.c (ubsan_source_location): Refactor code.
	(ubsan_type_descriptor): Update type size. Refactor code.

2015-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56273
	PR tree-optimization/59124
	PR tree-optimization/64277
	* tree-vrp.c (vrp_finalize): Emit array-bound warnings only
	from the first VRP pass.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/64776
	* cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
	handle the first argument in the same loop as all the other arguments.

	PR rtl-optimization/61058
	* jump.c (cleanup_barriers): Update basic block boundaries
	if BLOCK_FOR_INSN is non-NULL on PREV.

2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
	bounds narrowing, already instrumented calls and calls to
	not instrumentable functions.

2015-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64807
	* wide-int.cc (wi::divmod_internal): Clear
	b_dividend[dividend_blocks_needed].

2015-01-26  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (move_elim_pass): Don't optimize away
	volatile memory references.

2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49263
	* config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
	remove_insn.
	* config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
	shifts if it already fits into K08.

2015-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/64730
	* ipa-inline.c (inline_small_functions): Print "unknown" even
	if edge->call_stmt is non-NULL, but has builtins or unknown
	location.

	PR middle-end/64421
	* omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
	with asterisk, skip the first character.

2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/64806
	* config/i386/i386 (feature_priority): Revert the last P_POPCNT
	order change.

2015-01-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64795
	* config/i386/i386.md (*movdi_internal): Also check operand 0
	to determine TYPE_LEA operand.
	(*movsi_internal): Ditto.

2015-01-26  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
	OPTION_MASK_QUAD_MEMORY_ATOMIC.

2015-01-26  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
	the comment.
	* config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
	for higher part.

2015-01-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/64764
	* tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
	combining two BIT_AND_EXPR predicates.

2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/64754
	* tree-ssa-structalias.c (new_var_info): Initialize ruid.

2015-01-26  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (arm_file_start): Update the assignment of
	Tag_ABI_HardFP_use.

2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
	pipeline model.
	config/arm/arm.md: Include the new Cortex-A57 model.
	(generic_sched): Don't use generic_sched when tuning for
	Cortex-A57.

2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (get_builtin_code_for_version): Add
	support for BMI and BMI2 multiversion functions.

2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* emit-rtl.h (store_bit_field): Move prototype to expmed.h.
	(extract_bit_field): Likewise.
	(extract_low_bits): Likewise.
	(expand_mult): Likewise.
	(expand_mult_highpart_adjust): Likewise.

2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Check new
	Silvermont, Haswell, Broadwell and Knights Landing model numbers.
	* config/i386/i386.c (processor_model): Add
	M_INTEL_COREI7_BROADWELL.
	(arch_names_table): Add "broadwell".

2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49263
	PR target/53987
	PR target/64345
	PR target/59533
	PR target/52933
	PR target/54236
	PR target/51244
	* config/sh/sh-protos.h
	(sh_extending_set_of_reg::can_use_as_unextended_reg,
	sh_extending_set_of_reg::use_as_unextended_reg,
	sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
	sh_is_movrt_insn, sh_insn_operands_modified_between_p,
	sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
	sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
	(sh_treg_insns): New class.
	* config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
	(scope_counter): New class.
	(sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
	sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
	sh_extending_set_of_reg::can_use_as_unextended_reg,
	sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
	sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
	sh_split_treg_set_expr): New functions.
	(addsubcosts): Handle treg_set_expr.
	(sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
	(sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
	(sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
	(sh_insn_operands_modified_between_p): Make non-static.
	* config/sh/predicates.md (zero_extend_movu_operand): Allow
	simple_mem_operand in addition to displacement_mem_operand.
	(zero_extend_operand): Don't allow zero_extend_movu_operand.
	(treg_set_expr, treg_set_expr_not_const01,
	arith_reg_or_treg_set_expr): New predicates.
	* config/sh/sh.md (tstsi_t): Use arith_reg_operand and
	arith_or_int_operand instead of logical_operand.  Convert to
	insn_and_split.  Try to optimize constant operand in splitter.
	(tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
	(*tstqi_t_zero): Delete.
	(*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
	(tstsi_t_and_not): Delete.
	(tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
	Convert to insn_and_split.
	(unnamed split, tstsi_t_zero_extract_xor,
	tstsi_t_zero_extract_subreg_xor_little,
	tstsi_t_zero_extract_subreg_xor_big): Delete.
	(*tstsi_t_shift_mask): New insn_and_split.
	(cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
	to recombine with surrounding insns when splitting.
	(*negtstsi): Add !sh_in_recog_treg_set_expr condition.
	(cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
	(cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
	*cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
	(*cbranch_div0s: Delete.
	(*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
	Try to recombine with surrounding insns when splitting.  Add operand
	order variants.
	(*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
	(*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
	*addc_r_r_msb, *addc_2r_msb): Delete.
	(*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
	order variant.
	(*addc_negreg_t): New insn_and_split.
	(*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
	Try to recombine with surrounding insns when splitting.
	Add operand order variants.
	(*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
	insn_and_split patterns.
	(*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
	surrounding insns when splitting.
	(unnamed rotcr split): Use arith_reg_or_treg_set_expr.
	(*rotcl): Likewise.  Add zero_extract variant.
	(*ashrsi2_31): New insn_and_split.
	(*negc): Convert to insn_and_split.  Use treg_set_expr.
	(*zero_extend<mode>si2_disp_mem): Update comment.
	(movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
	condition.
	(*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
	with surrounding insns when splitting.
	(any_treg_expr_to_reg): New insn_and_split.
	(*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
	*neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
	*neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
	*zero_extract_2): New single bit zero extract patterns.
	(bld_reg, *bld_regqi): Fold into bld<mode>_reg.
	(*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
	*mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
	*movdi_gbr_load): Use arith_reg_dest instead of register_operand for
	set destination.
	(set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
	register_operand for set source.

2015-01-23  Jan Hubicka  <hubicka@ucw.cz>

	* i386.opt (prefetch_sse): New targetsave.
	* i386.c (ix86_function_specific_save): Save prefetch_sse.
	(ix86_function_specific_restore): Restore prefetch_sse and initialize
	ix86_cost/ix86_tune_cost.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Support the JIT by using 0 as the language type.

2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64317
	* lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
	REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
	(mark_regno_live, process_bb_lives): Pass new parameter value to
	make_hard_regno_born.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/63637
	PR rtl-optimization/60663
	* cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
	if elt->cost is MAX_COST for ASM_OPERANDS.
	(find_sets_in_insn): Fix up comment typo.
	(cse_insn): Don't set src_volatile for all non-volatile
	ASM_OPERANDS in PARALLELs, but just those with multiple outputs
	or with "memory" clobber.  Set elt->cost to MAX_COST
	for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
	if new_src is ASM_OPERANDS and elt->cost is MAX_COST.

2015-01-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
	alternative 1.

2015-01-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
	libgcc/config/i386/elf-lib.h.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR driver/64737
	* gcc.c (print_configuration): Don't print a blank line at the end
	here...
	(run_attempt): ... but here unstead.

	PR middle-end/64734
	* omp-low.c (scan_sharing_clauses): Don't ignore
	OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
	on target data/update constructs.

2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR target/50928
	* config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
	(DEBUG_RELOAD): Removed define.
	(m32c_limit_reload_class): Enable traces with if DEBUG0.
	(m32c_function_arg): Added a type cast.
	(m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
	* config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
	* config/m32c/bitops.md (andqi3_16): Likewise.
	* config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
	(push_a01_l): Likewise.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64721
	* main.c (main): Construct toplev instances with init_signals=true.
	* toplev.c (general_init): Add param "init_signals", and use it to
	conditionalize the calls to signal and host_hooks.extra_signals.
	(toplev::toplev): Add param "init_signals".
	(toplev::main): When invoking general_init, pass m_init_signals
	to control whether signal-handlers are installed.
	* toplev.h (toplev::toplev): Add param "init_signals".
	(toplev::m_init_signals): New field.

2015-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64722
	* emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
	NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
	latter may be affected by the former (e.g. on i686).

2015-01-23  Martin Liska  <mliska@suse.cz>

	* tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
	false positive during profiledbootstrap.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64672
	* lto-opts.c (lto_write_options): Output non-explicit conservative
	-fno-openacc.
	* lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
	(append_compiler_options): Pass -fopenacc through.

2015-01-23  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/64707
	* lto-opts.c (lto_write_options): Output non-explicit conservative
	-fno-openmp.
	* lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
	(append_compiler_options): Pass -fopenmp through.

2015-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64511
	* dwarf2out.c (struct dw_loc_descr_node): Add chain_next
	GTY markup.

	* diagnostic-core.h (internal_error_no_backtrace): New prototype.
	* diagnostic.def (DK_ICE_NOBT): New kind.
	* diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
	like DK_ICE, but never print backtrace.
	(diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
	(internal_error_no_backtrace): New function.
	* gcc.c (execute): Use internal_error_no_backtrace instead of
	internal_error.

2015-01-22  Jeff Law  <law@redhat.com>

	PR target/52076
	* config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
	improve code density for small immediate to memory case.
	(insv): Better handle bitfield assignments when the field is
	being set to all ones.
	* config/m68k/predicates.md (reg_or_pow2_m1_operand): New
	operand predicate.

2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64729
	* gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
	for !TARGET_LIBC_PROVIDES_SSP version and
	-fstack-protector-{all,strong,explicit} otherwise.
	* config/freebsd.h (LINK_SSP_SPEC): Handle
	-fstack-protector-{strong,explicit}.

2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR ipa/64694
	* ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
	heap.

2015-01-22  Wei Mi  <wmi@google.com>

	PR rtl-optimization/64557
	* dse.c (record_store): Call get_addr for mem_addr.
	(check_mem_read_rtx): Likewise.

2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (const_binop): Add early return for non-tcc_binary.

2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>

	* toplev.c (init_local_tick): Process the failure when read
	fails for random_seed.

	* ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
	'pretty_name' to avoid memory overflow.

2015-01-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/64728
	* tree-ssa-coalesce.c (coalesce_partitions): Do not perform
	abnormal coalescing on undefined SSA names.

2015-22-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64688
	PR target/64477
	* config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
	for alternative 3.
	(*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.

2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>

	PR middle-end/63325
	* fold-const.c (fold_checksum_tree): Don't include value of
	expr->decl_with_vis.symtab_node in the checksum.

2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".

2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR driver/64690
	* gcc.c (insert_comments): New function.
	(try_generate_repro): Call it.
	(append_text): Removed.

2015-01-22  Richard Biener  <rguenther@suse.de>

	* ipa-inline.c (can_inline_edge_p): Disable inlining of edges
	with IL incompatible options.  Properly honor user optimize
	attributes.

2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/64682
	* combine.c (distribute_notes): When moving a death note for
	a register that is set in the new I2, make sure to put it
	before that new I2.

2015-01-21  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
	not TARGET_DEFAULT.

2015-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64511
	* simplify-rtx.c (simplify_relational_operation_1): Don't try to
	optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
	into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).

	PR sanitizer/64706
	* doc/invoke.texi (-fsanitize=vptr): Document.

	PR rtl-optimization/62078
	* dse.c: Include cfgcleanup.h.
	(rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
	anything call purge_all_dead_edges and cleanup_cfg at the end
	of the pass.

2015-01-21  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
	edges.

2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
	decl attribute.

2015-01-21  David Sherwood  <david.sherwood@arm.com>
	    Tejas Belagod <Tejas.Belagod@arm.com>

	* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
	* config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
	* config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
	Removed.

2015-01-21  David Sherwood  <david.sherwood@arm.com>
	    Tejas Belagod <Tejas.Belagod@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
	(aarch64_reverse_mask): New decls.
	* config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
	(insn_count): New mode_attr.
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
	(vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
	(vec_load_lanesxi): Made ABI compliant for Big Endian targets.
	(aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
	(aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
	(aarch64_simd_st4): New patterns.
	* config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
	(aarch64_reverse_mask): New functions.

2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
	Declare.
	* config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
	addressing modes for BE.
	(aarch64_print_operand): Add 'R' specifier.
	(aarch64_simd_disambiguate_copy): Delete.
	(aarch64_simd_emit_reg_reg_move): New function.
	* config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
	in define_splits for structural moves.
	(mov<mode>): Use less restrictive predicates.
	(*aarch64_mov<mode>): Simplify and only allow for LE.
	(*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.

2015-01-21  Alan Hayward  <alan.hayward@arm.com>

	* rtlanal.c (subreg_get_info): Exit early for simple and common cases.

2015-01-21  Richard Henderson  <rth@redhat.com>

	PR target/64669
	* ccmp.c (used_in_cond_stmt_p): Remove.
	(expand_ccmp_expr): Don't use it.

2015-01-21  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
	PARALLELs.

2015-01-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/64313
	* tree-core.h (builtin_info, builtin_info_type): Turn from
	an object with two arrays into an array of an object with
	decl and two flags, implicit_p and declared_p.
	* tree.h (builtin_decl_explicit, builtin_decl_implicit,
	set_builtin_decl, set_builtin_decl_implicit_p,
	builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
	(set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
	* builtins.c (builtin_info): Adjust.
	* gimplify.c (gimplify_addr_expr): References to builtins
	that have been declared by the user makes them eligible for
	use by the compiler.  Call set_builtin_decl_implicit_p on them.

2015-01-20  Jeff Law  <law@redhat.com>

	PR target/59946
	* config/m68k/m68k.md (Comparison expanders and patterns): Do not
	allow pc-relative addresses in operand predicates or constraints.

2015-01-21  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
	neon on aarch32 processors for stringops.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63576
	* ipa-utils.c (ipa_merge_profiles): Merge speculative edges.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* ipa-inline.c: Include lto-streamer.h
	(report_inline_failed_reason): Output source file differences and
	flags on optimization/target node mismatch.
	(can_inline_edge_p): Consider caller to be the outer inline function;
	be less restrictive about matching opimize and optimize_size attributes.
	(inline_account_function_p): Break out from ...
	(inline_small_functions): ... here.
	* ipa-inline-transform.c (clone_inlined_nodes): Use
	inline_account_function_p.
	(inline_call): Use optimize attribution; use inline_account_function_p.
	(inline_transform): Use opt_for_fn.
	* ipa-inline.h (inline_account_function_p): Declare.

2015-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/64663
	* dwarf2out.c (decl_piece_node): Don't put bitsize into
	mode if bitsize <= 0.
	(decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
	dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
	sizes and positions.

2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_asm_file_end): Implement
	TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
	needed.
	(TARGET_ASM_FILE_END): Define.

2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
	(struct tune_params): Use the enum.
	* arm.c (arm_*_tune): Update.
	(arm_option_override): Update.

2015-01-20  Richard Biener  <rguenther@suse.de>

	PR ipa/64684
	* ipa-reference.c (add_static_var): Inline ...
	(analyze_function): ... here after splitting out from ...
	(is_proper_for_analysis): ... this.

2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/64149
	* config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
	* config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
	replace the conditional with it's true branch.
	* config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
	(arm_lra_p): Remove.

2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/visium/visium.h (LIB_SPEC): Adjust in default case.

2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/tilegx/mul-tables.c: Move symtab.h include after
	coretypes.h include.
	* config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
	vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
	flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
	wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
	explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.

2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR bootstrap/64676
	Revert:
	2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR rtl-optimization/64081
	* loop-iv.c (def_pred_latch_p): New function.
	(latch_dominating_def): Allow specific cases with non-single
	definitions.
	(iv_get_reaching_def): Likewise.
	(check_complex_exit_p): New function.
	(check_simple_exit): Use check_complex_exit_p to allow certain cases
	with exits not executing on any iteration.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* i386.c (ix86_option_override_internal): Use ix86_tune_cost
	to set branch cost.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/45375
	* i386.c (gate): Check flag_expensive_optimizations and
	optimize_size.
	(ix86_option_override_internal): Drop optimize_size condition
	on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
	MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
	MASK_PREFER_AVX128.
	(ix86_avx256_split_vector_move_misalign,
	ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
	* sse.md (all uses of TARGET_PREFER_AVX128): Add
	optimize_insn_for_speed_p check.

2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (FP_ASM_SPEC): New define.
	(ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
	instead.

2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53988
	* config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
	nullptr for insn when reaching the first insn.
	* config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
	(sh_insn_operands_modified_between_p): Add nullptr check.
	(sh_find_extending_set_of_reg): Fix log message.  Don't accept
	sign extending mem load if the insn contains any UNSPEC or
	UNSPEC_VOLATILE.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* params.def (inline-unit-growth): Drop to 15%.
	* invoke.texi (inline-unit-growth): Document change.

2015-01-19  Martin Liska  <mliska@suse.cz>

	PR ipa/64668
	* ipa-icf-gimple.c (func_checker::compare_operand): Call proper
	function for second argument of OBJ_TYPE_REF.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64218
	* ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
	whether function is an alias.

2015-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
	cases.

2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64671
	* lra-remat.c (operand_to_remat): Don't consider jump and call
	insns.

2015-01-19  David Edelsohn  <dje.gcc@gmail.com>

	PR target/59828
	* config/rs6000/default64.h: Include rs6000-cpus.def.
	(TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
	(TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
	* config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
	and POWER8.
	* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
	POWER8.
	* config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
	pseudo-op to specify assembler dialect.

2015-01-19  Martin Liska  <mliska@suse.cz>

	PR ipa/64664
	* ipa-icf.c (sem_item_optimizer::filter_removed_items):
	Handle safe potentially removed nodes during filtering.

2015-01-19  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi (no_icf): Add new attribute description.
	* ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
	where the pass attempts to merge a function with no_icf attribute.

2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/64532
	* doc/md.texi (ARM Options): Document register constraints.

2015-01-19  Jiong Wang  <jiong.wang@arm.com>
	    Andrew Pinski  <apinski@cavium.com>

	PR target/64304
	* config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
	(ashl<mode>3): Don't expand if operands[2] is not constant.

2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64448
	* config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
	Match xor-and-xor RTL pattern.

2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR rtl-optimization/64081
	* loop-iv.c (def_pred_latch_p): New function.
	(latch_dominating_def): Allow specific cases with non-single
	definitions.
	(iv_get_reaching_def): Likewise.
	(check_complex_exit_p): New function.
	(check_simple_exit): Use check_complex_exit_p to allow certain cases
	with exits not executing on any iteration.

2015-01-19  Jakub Jelinek  <jakub@redhat.com>

	* common.opt (fgraphite): Fix a typo.

2015-01-19  Felix Yang  <felix.yang@huawei.com>

	* config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
	pattern.
	* config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
	uminp, smax_nanp, smin_nanp): New builtins.
	* config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
	vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
	vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
	vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
	vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
	vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
	vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
	vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
	vpminnms_f32): Rewrite using builtin functions.

2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* omp-low.c (offload_symbol_decl): Remove variable.
	(get_offload_symbol_decl): Remove function.
	(expand_omp_target): For BUILT_IN_GOMP_TARGET,
	BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
	instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
	BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
	BUILT_IN_GOACC_UPDATE don't pass it at all.

2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
	callers.

2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c (chkp_produce_thunks): Add early param
	to split thunks production into two passes.  Keep
	'always_inline' function bodies after the first pass.
	(pass_data_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_produce_thunks::execute): Adjust to new
	chkp_produce_thunks signature.
	(make_pass_ipa_chkp_early_produce_thunks): New.
	* passes.def (pass_ipa_chkp_early_produce_thunks): New.
	(pass_ipa_chkp_produce_thunks): Move after local optimizations.
	* tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::dump): Dump profile flags.

2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64652
	* config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
	reg appear first in the parallel.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-reference.c (set_reference_optimization_summary,
	ipa_reference_get_not_written_global): Do nothing if ipa-reference is
	disabled.
	(ignore_module_statics): New static var.
	(propagate_bits): If ipa-reference is disabled, do not look into local
	properties.
	(analyze_function): Disable analysis when ipa_reference is disabled.
	(generate_summary): Do not dump when reference is disabled;
	collect vars accessed from functions with ipa-reference disabled.
	(get_read_write_all_from_node): When ipa-reference is disabled, use the
	node flags.
	(gate): Enable for LTO.
	(ignore_edge_p): New function.
	(propagate): Skip functions w/o ipa-reference analysis.
	* optc-save-gen.awk: Handle optimize_debug correctly.
	* opth-gen.awk: Likewise.
	* common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
	fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
	fira-share-save-slots, fira-share-spill-slots,
	fmodulo-sched-allow-regmoves, fpartial-inlining,
	sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
	ftracer, ftree-parallelize-loops, fassociative-math,
	freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
	Optimization
	(fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
	ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
	Optimization.
	* ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
	Fix for IPA.

2015-01-18  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64378
	* ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
	flag correctly.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.

2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
	Remove duplicate option listings.

2015-01-18  Felix Yang  <felix.yang@huawei.com>

	* auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
	(autofdo_source_profile::get_callsite_total_count,
	function_instance::get_function_instance_by_decl,
	string_table::get_index, string_table::get_index_by_decl,
	afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
	Fix comment typos. Reformatting and minor code rearrangement.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (probe_stack): Delete.
	(probe_stack_address): New.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
	to test for 32-bit ABIs, not !TARGET_POWERPC64.

2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_parallel_return): New function.
	(rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
	for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
	snafu.
	(rs6000_libcall_value): Use the new function.

2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-ftracer]): Remove duplicate option listing.

2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>

	* reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
	implement a more precise life analysis for it during backward scan.

2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.

2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/52773
	* calls.c (emit_library_call_value): When pushing arguments use
	stack_pointer_rtx rather than virtual_outgoing_args_rtx in
	CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
	stack pointer reference into CALL_INSN_FUNCTION_USAGE.

2015-01-17  Jeff Law  <law@redhat.com>

	PR rtl-optimization/32790
	* reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
	not ZERO_EXTEND in SET_DESTs.

2015-01-17  Alan Modra  <amodra@gmail.com>

	* cprop.c (do_local_cprop): Revert last change.

2015-01-16  DJ Delorie  <dj@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
	(addhi3_real): Likewise.  Fix [HL+0] syntax.
	(subqi3_real): Likewise.
	(subhi3_real): Likewise.
	(cbranchqi4_real): Likewise.  Allow saddr,#imm.
	(cbranchhi4_real): Likewise.
	(cbranchhi4_real_inverted): Likewise.
	(cbranchsi4_real_lt): Likewise.
	(cbranchsi4_real_ge): Likewise.
	(cbranchsi4_real_ge): Likewise.
	* config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
	(sub<mode>3_virt): Likewise.
	(cbranchqi4_virt): Likewise.
	(cbranchhi4_virt): Likewise.
	* config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
	always use '[reg+imm]' even when imm is zero.
	* config/rl78/predicates.md (rl78_volatile_memory_operand): New.
	(rl78_general_operand): New.
	(rl78_nonimmediate_operand): New.
	(rl78_nonfar_operand): Use them.
	(rl78_nonfar_nonimm_operand): Likewise.
	(rl78_stack_based_mem): Fix.
	* config/rl78/constraints.md (Ibqi): New.
	(IBqi): New.
	(Wsa): New.
	(Wsf): New.
	(Cs1): Fix.
	* config/rl78/rl78-expand.md (andqi3): Accept volatiles.
	(iorqi3): Likewise.
	(xorqi3): Likewise.
	* config/rl78/rl78-protos.h (rl78_sfr_p): New.

	* config/rl78/constrains (Qs8): New constraint.
	* config/rl78/rl78.c (rl78_flags_already_set): New function.
	* config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
	* config/rl78/rl78-real.md (update_Z): New attribute.
	Update patterns to set it.
	(cbranchqi4_real): Call rl78_flags_already_set() to determine if a
	shorter compare and branch sequence can be used.
	(cbranchhi4_real): Likewise.
	(cbranchhi4_real_inverted): Likewise.

	* config/rl78/predicates.md (uword_operand): Allow symbol_refs.
	* config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
	address space.
	* config/rl78/rl78.c (rl78_get_name_encoding): New.
	(rl78_option_override): Allow -mes0 only if C.
	(characterize_address): Support subregs of symbol_refs.
	(rl78_addr_space_address_mode): Move.  Add __near.
	(rl78_far_p): Likewise.
	(rl78_addr_space_pointer_mode): Likewise.
	(rl78_as_legitimate_address): Likewise.
	(rl78_addr_space_subset_p): Likewise.
	(rl78_addr_space_convert): Likewise.
	(rl78_print_operand_1): Support 16-bit addressing of 32-bit
	symbols with -mes0.
	(transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
	addressing.
	(rl78_alloc_physical_registers_op1): Change logic to prefer
	symbol[BC] addressing.
	(frodata_section): New.
	(rl78_asm_init_sections): Initialize it.
	(rl78_select_section): Put __far readonly symbols in .frodata.
	(rl78_make_type_far): New.
	(rl78_insert_attributes): Force all readonly symbols to be
	__far when -mes0.
	(rl78_asm_out_integer): New.
	* config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
	* config/rl78/rl78.opt (-mes0): New.

	* config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
	* config/rl78/rl78-protos.h (rl78_output_labelref): New.
	(rl78_saddr_p): New.
	(rl78_output_aligned_common): New.
	* config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
	(rl78_handle_saddr_attribute): New.
	(rl78_handle_naked_attribute): New.
	(rl78_attribute_table): Add saddr.
	(rl78_print_operand_1): Don't print '!' on saddr operands.
	(rl78_print_operand_1): Strip encodings.
	(rl78_sfr_p): New.
	(rl78_strip_name_encoding): New.
	(rl78_attrlist_to_encoding): New.
	(rl78_encode_section_info): New.
	(rl78_asm_init_sections): New.
	(rl78_select_section): New.
	(rl78_output_labelref): New.
	(rl78_output_aligned_common): New.
	(rl78_asm_out_integer): New.
	(rl78_asm_ctor_dtor): New.
	(rl78_asm_constructor): New.
	(rl78_asm_destructor): New.

	* config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
	* config/rl78/rl78.c (rl78_expand_epilogue): Update.
	(transcode_memory_rtx): Update.
	(rl78_expand_epilogue): Use A_REG instead of 0.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/arm/arm-protos.h (struct tune_params): New field
	sched_autopref_queue_depth.
	* config/arm/arm.c (sched-int.h): Include header.
	(arm_first_cycle_multipass_dfa_lookahead_guard,)
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
	(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
	(arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
	(arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
	(arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
	(arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
	Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
	* config/arm/t-arm (arm.o): Update.
	* haifa-sched.c (update_insn_after_change): Update.
	(rank_for_schedule): Use auto-prefetcher model, if requested.
	(autopref_multipass_init): New static function.
	(autopref_rank_for_schedule): New rank_for_schedule heuristic.
	(autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
	variable for debug dumps.
	(autopref_multipass_dfa_lookahead_guard_1): New static helper function.
	(autopref_multipass_dfa_lookahead_guard): New global function that
	implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
	(init_h_i_d): Update.
	* params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
	* sched-int.h (enum autopref_multipass_data_status): New const enum.
	(autopref_multipass_data_): Structure for auto-prefetcher data.
	(autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
	(struct _haifa_insn_data:autopref_multipass_data): New field.
	(INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
	(autopref_multipass_dfa_lookahead_guard): Declare.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* rtlanal.c (get_base_term): Handle SCRATCH.

2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* config/aarch64/aarch64.c
	(aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
	* config/arm/arm.c
	(arm_first_cycle_multipass_dfa_lookahead): Implement hook.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.

2015-01-17  Alan Modra  <amodra@gmail.com>

	* cprop.c (do_local_cprop): Disallow replacement of fixed
	hard registers.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/62066
	* config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
	early return 0.

2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
	* tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
	* config/arm/thumb1.md: ... Here.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
	TImode for TARGET_32BIT.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
	TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
	as ...
	(rs6000_abi_word_mode): New function.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
	instead of UNITS_PER_WORD to describe the size of stack slots.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
	as rs6000_promote_function_mode.  Move comment to there.
	(rs6000_promote_function_mode): New function.

2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
	-mpowerpc64 is active.

2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR middle-end/64353
	* tree-cfg.c (pass_data_fixup_cfg): Update SSA for
	virtuals on start.

2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/cortex-a57.md: Remove duplicate of file accidentally
	introduced in revision 219724.

2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

	PR target/64263
	* config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
	destination is not a GP reg.
	(*movdi_aarch64): Likewise.

2015-01-16  David Edelsohn  <dje.gcc@gmail.com>

	PR target/64623
	* config/rs6000/default64.h: Revert ISA change.

2015-01-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/64614
	* tree-ssa-uninit.c: Include tree-cfg.h.
	(MAX_SWITCH_CASES): New define.
	(convert_control_dep_chain_into_preds): Handle switch statements.
	(is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
	(normalize_one_pred_1): Do not split bit-manipulations.
	Record (x & CST).

2015-01-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64568
	* tree-ssa-forwprop.c (pass_forwprop::execute): Guard
	complex load rewriting for TARGET_MEM_REFs.

2015-01-16  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.c (expand_builtin_acc_on_device): Check target for NULL.

2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/64149
	* config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
	variable.
	* config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
	(aarch64_lra_p): Remove.

2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/64363
	* ipa-chkp.h (chkp_instrumentable_p): New.
	* ipa-chkp.c: Include tree-inline.h.
	(chkp_instrumentable_p): New.
	(chkp_maybe_create_clone): Use chkp_instrumentable_p.
	Fix processing of not instrumentable functions.
	(chkp_versioning): Use chkp_instrumentable_p. Warn about
	not instrumentable functions.
	* tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
	chkp_instrumentable_p.
	* tree-inline.h (copy_forbidden): New.
	* tree-inline.c (copy_forbidden): Not static anymore.

2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
	ptr1, ptr2 unused.

2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>

	* lra-constraints.c (curr_insn_transform): Change a reload pseudo of
	type OP_OUT to OP_INOUT.

2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>

	* simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
	(high x) y) to y if x and y have the same base.

2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/cortex-a57.md: New.
	* config/aarch64/aarch64.md: Include it.
	* config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
	* config/aarch64/aarch64-tune.md: Regenerate.

2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	PR target/64015
	* ccmp.c (expand_ccmp_next): New function.
	(expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
	and compare insn sequence.
	* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
	aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
	(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
	* config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
	(*ccmp_ior): Changed to ccmp_ior<mode>.
	(cmp<mode>): New pattern.
	* doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
	parameters.
	* target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.

2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx2intrin.h (_mm256_bslli_epi128,
	_mm256_bsrli_epi128): New.
	* config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.

2015-01-15  Jiong Wang  <jiong.wang@arm.com>

	* expmed.c (store_bit_field_using_insv): Improve warning message.
	Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.

2015-01-15  Jiong Wang  <jiong.wang@arm.com>

	PR rtl-optimization/64011
	* expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
	there is partial overflow.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
	prototype.
	(nds32_expand_epilogue_v3pop): Likewise.
	* config/nds32/nds32.md (sibcall): Define this for sibling call
	optimization.
	(sibcall_register): Likewise.
	(sibcall_immediate): Likewise.
	(sibcall_value): Likewise.
	(sibcall_value_register): Likewise.
	(sibcall_value_immediate): Likewise.
	(sibcall_epilogue): Likewise.
	(epilogue): Pass false to indicate this is not a sibcall epilogue.
	* config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
	(nds32_expand_epilogue_v3pop): Likewise.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
	* config/nds32/nds32.md (unspec_volatile_func_return): Remove.
	(return_internal): New.
	(return): Define this named pattern.
	(simple_return): Define this named pattern.
	* config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
	pattern instead of unspec_volatile_func_return.
	(nds32_expand_epilogue_v3pop): Likewise.
	(nds32_can_use_return_insn): New function.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
	* config/nds32/nds32.md (pop25return): New.
	* config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
	pop25return pattern.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
	-mforbid-fp-as-gp, and -mex9 options.

2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
	remove -mgp-direct option.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (--param early-inlining-insns): Update default value.
	* params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (inline_small_functions): Work around hints
	cache issue.

2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/59710
	* doc/invoke.texi (Option Summary): Document new Nios II
	-mgpopt= syntax.
	(Nios II Options): Likewise.
	* config/nios2/nios2.opt: Add -mgpopt= option support.
	Modify existing -mgpopt and -mno-gpopt options to be aliases.
	* config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
	* config/nios2/nios2.c (nios2_option_override): Adjust
	-mgpopt defaulting.
	(nios2_in_small_data_p): Return true for explicit small data
	sections even with -G0.
	(nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
	option choices.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64612
	* ipa-inline-transform.c (can_remove_node_now_p): Fix handling
	of comdat locals.
	(inline_call): Fix removal of aliases.

2015-01-15  Jakub Jelinek  <jakub@redhat.com>

	* flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
	include SANITIZE_VPTR in SANITIZE_UNDEFINED.
	* opts.c (common_handle_option): Add -fsanitize=vptr.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
	BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
	* ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
	UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
	(ubsan_expand_vptr_ifn): New prototype.
	* internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
	expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
	expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
	expand_LOOP_VECTORIZED): Make argument nameless, remove
	ATTRIBUTE_UNUSED.
	(expand_UBSAN_VPTR): New function.
	* internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
	in fn spec.
	(UBSAN_VPTR): New internal function.
	* sanopt.c (tree_map_traits): Renamed to ...
	(sanopt_tree_map_traits): ... this.
	(sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
	(sanopt_ctx): Adjust asan_check_map type for tree_map_traits
	to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
	(maybe_optimize_ubsan_vptr_ifn): New function.
	(sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
	(pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
	-fsanitize=vptr.
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
	internal calls like pure functions for aliasing, even when they
	have other side-effects that prevent making them ECF_PURE.
	* ubsan.c (ubsan_vptr_type_cache_decl): New variable.
	(ubsan_expand_vptr_ifn): New function.

2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64110
	* stmt.c (parse_output_constraint): Process '^' and '$'.
	(parse_input_constraint): Ditto.
	* lra-constraints.c (process_alt_operands): Process the new
	constraints.
	* ira-costs.c (record_reg_classes): Process the new constraint
	'^'.
	* genoutput.c (indep_constraints): Add '^' and '$'.
	* config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
	* doc/md.texi: Add description of the new constraints.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Ilmir Usmanov  <i.usmanov@samsung.com>
	    Dmitry Bocharnikov  <dmitry.b@samsung.com>
	    Evgeny Gavrin  <e.gavrin@samsung.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* builtin-types.def (BT_FN_VOID_INT_INT_VAR)
	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
	(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
	New function types.
	* builtins.c: Include "gomp-constants.h".
	(expand_builtin_acc_on_device): New function.
	(expand_builtin, is_inexpensive_builtin): Handle
	BUILT_IN_ACC_ON_DEVICE.
	* builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
	New macros.
	* cgraph.c (cgraph_node::create): Consider flag_openacc next to
	flag_openmp.
	* config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
	<*-intelmic-* | *-intelmicemul-*> (tm_file): Add
	i386/intelmic-offload.h.
	* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
	to libgomp and its dependencies.
	* config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
	* config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
	* config/ia64/hpux.h (LIB_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
	* doc/generic.texi: Update for OpenACC changes.
	* doc/gimple.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_for): Handle
	GF_OMP_FOR_KIND_OACC_LOOP.
	(dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
	GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
	Dump more data.
	* gimple.c: Update comments for OpenACC changes.
	* gimple.def: Likewise.
	* gimple.h: Likewise.
	(enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
	(gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
	appropriate place.
	(is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
	* gimplify.c: Include "gomp-constants.h".
	Update comments for OpenACC changes.
	(is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
	OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
	OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
	OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
	OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
	OMP_CLAUSE_SEQ.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
	GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	(gimplify_oacc_cache): New function.
	(gimplify_omp_for): Handle OACC_LOOP.
	(gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
	OACC_DATA.
	(gimplify_omp_target_update): Handle OACC_ENTER_DATA,
	OACC_EXIT_DATA, OACC_UPDATE.
	(gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
	OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
	(gimplify_body): Consider flag_openacc next to flag_openmp.
	* lto-streamer-out.c: Include "gomp-constants.h".
	* omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
	(BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
	(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
	(BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
	(BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
	(BUILT_IN_ACC_ON_DEVICE): New builtins.
	* omp-low.c: Include "gomp-constants.h".
	Update comments for OpenACC changes.
	(struct omp_context): Add reduction_map, gwv_below, gwv_this
	members.
	(extract_omp_for_data, use_pointer_for_field, install_var_field)
	(new_omp_context, delete_omp_context, scan_sharing_clauses)
	(create_omp_child_function, scan_omp_for, scan_omp_target)
	(check_omp_nesting_restrictions, lower_reduction_clauses)
	(build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
	Update for OpenACC changes.
	(scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
	OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
	OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	Handle GF_OMP_FOR_KIND_OACC_LOOP.
	(expand_omp_target, lower_omp_target): Handle
	GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
	GF_OMP_TARGET_KIND_OACC_UPDATE,
	GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
	GF_OMP_TARGET_KIND_OACC_DATA.
	(pass_expand_omp::execute, execute_lower_omp)
	(pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
	flag_openmp.
	(offload_symbol_decl): New variable.
	(oacc_get_reduction_array_id, oacc_max_threads)
	(get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
	(maybe_lookup_oacc_reduction, enclosing_target_ctx)
	(oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
	(oacc_gimple_assign, oacc_initialize_reduction_data)
	(oacc_finalize_reduction_data, oacc_process_reduction_data): New
	functions.
	(is_targetreg_ctx): Remove function.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
	OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
	OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
	OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
	OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
	OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
	* tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
	* tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
	(OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
	(OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
	(OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
	(OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
	* tree-core.h: Update comments for OpenACC changes.
	(enum omp_clause_map_kind): Remove.
	(struct tree_omp_clause): Change type of map_kind member from enum
	omp_clause_map_kind to unsigned char.
	* tree-inline.c: Update comments for OpenACC changes.
	* tree-nested.c: Likewise.  Include "gomp-constants.h".
	(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
	(convert_tramp_reference_stmt, convert_gimple_call): Update for
	OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
	OMP_CLAUSE_SET_MAP_KIND.
	* tree-pretty-print.c: Include "gomp-constants.h".
	(dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
	OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
	OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
	OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
	OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
	OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
	instead of OMP_CLAUSE_MAP_*.
	(dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
	OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
	OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
	* tree-streamer-in.c: Include "gomp-constants.h".
	(unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
	* tree-streamer-out.c: Include "gomp-constants.h".
	(pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
	OMP_CLAUSE_MAP_*.
	* tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
	(OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
	(OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
	* tree.c (omp_clause_num_ops): Update accordingly.
	* tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
	Likewise.
	(OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
	(OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
	(OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
	(OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
	(OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
	(OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
	* tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
	(OMP_CLAUSE_SET_MAP_KIND): New macro.
	* varpool.c (varpool_node::get_create): Consider flag_openacc next
	to flag_openmp.
	* config/i386/intelmic-offload.h: New file.
	* config/nvptx/offload.h: Likewise.

2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* explow.h: Remove duplicate contents.
	* dojump.h: Likewise.

2015-01-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_xgene_tune): Add default initializer for instruction
	fusion.

2015-01-15  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64068
	PR ipa/64559
	* ipa.c (symbol_table::remove_unreachable_nodes):
	Do not put abstract origins into boundary.

2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.

2015-01-15  Steve Ellcey  <sellcey@mips.com>

	* Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
	cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
	builtins.def, and chkp-builtins.def.

2015-01-15  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
	ISA 2.7 (POWER8).

2015-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61743
	* tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
	information on PHIs for some simple cases.

2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
	Include xgene1.md.
	* config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
	* config/arm/arm-cores.def (xgene1): New entry.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.

2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-if-conv.c: Include hash-map.h.
	(aggressive_if_conv): New variable.
	(fold_build_cond_expr): Add simplification of non-zero condition.
	(add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
	destination block is not always executed.
	(if_convertible_phi_p): Fix commentary, allow phi nodes have more
	than two predecessors if AGGRESSIVE_IF_CONV is true.
	(if_convertible_stmt_p): Fix commentary.
	(all_preds_critical_p): New function.
	(has_pred_critical_p): New function.
	(if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
	BB can have more than two predecessors and all incoming edges can be
	critical.
	(predicate_bbs): Skip predication for loop exit block, use build2_loc
	to compute predicate for true edge.
	(find_phi_replacement_condition): Delete this function.
	(is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
	Allow interchange PHI arguments if EXTENDED is false.
	Change check that block containing reduction statement candidate
	is predecessor of phi-block since phi may have more than two arguments.
	(phi_args_hash_traits): New helper structure.
	(struct phi_args_hash_traits): New type.
	(phi_args_hash_traits::hash): New function.
	(phi_args_hash_traits::equal_keys): New function.
	(gen_phi_arg_condition): New function.
	(predicate_scalar_phi): Add handling of phi nodes with more than two
	arguments, delete COND and TRUE_BB arguments, insert body of
	find_phi_replacement_condition to predicate ordinary phi nodes.
	(predicate_all_scalar_phis): Skip blocks with the only predecessor,
	delete call of find_phi_replacement_condition and invoke
	predicate_scalar_phi with two arguments.
	(insert_gimplified_predicates): Add assert that non-predicated block
	don't have statements to insert.
	(ifcvt_split_critical_edges): New function.
	(ifcvt_split_def_stmt): Likewise.
	(ifcvt_walk_pattern_tree): Likewise.
	(stmt_is_root_of_bool_pattern): Likewise.
	(ifcvt_repair_bool_pattern): Likewise.
	(ifcvt_local_dce): Likewise.
	(tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
	is copy of inner or outer loop force_vectorize field, invoke
	ifcvt_split_critical_edges, ifcvt_local_dce and
	ifcvt_repair_bool_pattern for aggressive if-conversion.

2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>

	* config/aarch64/aarch64.md: Include xgene1.md.
	* config/aarch64/xgene1.md: New file.

2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64-cores.def (xgene1): Update/add the
	xgene1 (APM XGene-1) core definition.
	* gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
	* config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
	* doc/invoke.texi: Document -mcpu=xgene1.

2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* dojump.h: New header file.
	* explow.h: Likewise.
	* expr.h: Remove includes.
	Move expmed.c prototypes to expmed.h.
	Move dojump.c prototypes to dojump.h.
	Move alias.c prototypes to alias.h.
	Move explow.c prototypes to explow.h.
	Move calls.c prototypes to calls.h.
	Move emit-rtl.c prototypes to emit-rtl.h.
	Move varasm.c prototypes to varasm.h.
	Move stmt.c prototypes to stmt.h.
	(saved_pending_stack_adjust): Move to dojump.h.
	(adjust_address): Move to explow.h.
	(adjust_address_nv): Move to emit-rtl.h.
	(adjust_bitfield_address): Likewise.
	(adjust_bitfield_address_size): Likewise.
	(adjust_bitfield_address_nv): Likewise.
	(adjust_automodify_address_nv): Likewise.
	* explow.c (expr_size): Move to expr.c.
	(int_expr_size): Likewise.
	(tree_expr_size): Likewise.
	Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* genemit.c (main): Generate includes statistics.h, real.h,
	fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
	stmt.h.
	* genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
	function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
	explow.h, emit-rtl.h, stmt.h.
	* genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
	fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genemit.c (open_base_files): Generate includes flags.h, statistics.h,
	real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
	emit-rtl.h, varasm.h, stmt.h.
	* config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
	hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
	function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
	fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
	expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
	* config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
	double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
	function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
	insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
	tm.h tree.h varasm.h vec.h wide-int.h.
	* rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
	real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
	* cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
	insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
	* loop-iv.c: Likewise.
	* lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* hw-doloop.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* caller-save.c: Include alias.h calls.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* combine-stack-adj.c: Likewise.
	* cse.c: Likewise.
	* ddg.c: Likewise.
	* ifcvt.c: Likewise.
	* ira-costs.c: Likewise.
	* jump.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-spills.c: Likewise.
	* profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
	stmt.h varasm.h wide-int.h.
	* lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
	double-int.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h varasm.h wide-int.h.
	* reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
	varasm.h wide-int.h.
	* reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h.
	* config/tilepro/tilepro.c: Likewise.
	* config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
	* config/pdp11/pdp11.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
	* cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
	* rtl-chkp.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* tree-vect-data-refs.c: Likewise.
	* graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* internal-fn.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* lto-section-out.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* loop-unroll.c: Likewise.
	* ubsan.c: Likewise.
	* tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
	* tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* gimple-match-head.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
	* stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* varasm.c: Likewise.
	* coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
	varasm.h.
	* init-regs.c: Likewise.
	* ira.c: Likewise.
	* omp-low.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
	varasm.h.
	* dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
	* shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
	* recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-phiopt.c: Likewise.
	* config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* toplev.c: Likewise.
	* var-tracking.c: Likewise.
	* gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* lower-subreg.c: Likewise.
	* postreload-gcse.c: Likewise.
	* ree.c: Likewise.
	* reginfo.c: Likewise.
	* store-motion.c: Likewise.
	* combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h stmt.h varasm.h.
	* emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h.
	* dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* except.c: Likewise.
	* explow.c: Likewise.
	* tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
	* tree-ssa-structalias.c: Likewise.
	* cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h.
	* calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h.
	* bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* cfgbuild.c: Likewise.
	* function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h.
	* cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h varasm.h.
	* cprop.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload.c: Likewise.
	* ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
	explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	function.h real.h statistics.h stmt.h varasm.h.
	* alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	statistics.h stmt.h.
	* config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
	* asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
	* ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* ipa-polymorphic-call.c: Likewise.
	* config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h.
	* config/c6x/c6x.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* ipa-split.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-vrp.c: Likewise.
	* config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h.
	* config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* config/msp430/msp430.c: Likewise.
	* predict.c: Likewise.
	* value-prof.c: Likewise.
	* config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
	* config/microblaze/microblaze.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h statistics.h stmt.h.
	* config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
	stmt.h.

2015-01-15  Jakub Jelinek  <jakub@redhat.com>

	* gengtype.c (create_user_defined_type): Workaround
	-Wmaybe-uninitialized false positives.
	* cse.c (fold_rtx): Likewise.
	* loop-invariant.c (gain_for_invariant): Likewise.

2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
	set the memory attributes in all cases but clear MEM_EXPR if need be.

2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/64434
	* cfgexpand.c (reorder_operands): New function.
	(expand_gimple_basic_block): Insert call of reorder_operands if
	optimized is true.

2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/micromips.md (*swp): Remove explicit parallel.
	(jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
	* config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
	(mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
	(mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
	(mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
	(mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
	(mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
	(mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
	(mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
	(mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
	(mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
	(mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
	(mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
	(mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
	(mips_wrdsp): Likewise.
	* config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
	parallel.
	(mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
	(mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
	(mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
	(mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
	(mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
	(mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
	* config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
	(ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
	(ssmaddsqdq4, ssmsubsqdq4): Likewise.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
	(mips_print_operand): Support 'y' to print exact log2 in decimal
	of a const_int.
	* config/mips/mips.h (ISA_HAS_LSA): New define.
	(ISA_HAS_DLSA): Likewise.
	* config/mips/mips.md (<GPR:d>lsa): New define_insn.
	* config/mips/predicates.md (const_immlsa_operand): New predicate.

2015-01-15  Martin Liska  <mliska@suse.cz>

	PR target/64377
	* optc-save-gen.awk: Add support for array types.

2015-01-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/64365
	* tree-data-ref.c (dr_analyze_indices): Make sure that accesses
	for MEM_REF access functions with the same base can never partially
	overlap.

2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>

	* common.opt: New option -fstack-protector-explicit.
	* cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
	(stack_protect_decl_phase): Handle stack_protect attribute for
	explicit stack protection requests.
	(expand_used_vars): Similarly.
	* doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
	* doc/extend.texi: Add documentation for "stack_protect" attribute.
	* doc/invoke.texi: Add documentation for -fstack-protector-explicit.

2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53988
	* config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
	reg-reg copies.
	(sh_extending_set_of_reg): New struct.
	(sh_find_extending_set_of_reg, sh_split_tst_subregs,
	sh_remove_reg_dead_or_unused_notes): New Declarations.
	* config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
	sh_find_extending_set_of_reg, sh_split_tst_subregs,
	sh_extending_set_of_reg::use_as_extended_reg): New functions.
	* config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
	convert to insn_and_split and use new function sh_split_tst_subregs.

2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
	option.
	(Optimization Options): Move -fuse-ld documentation to...
	(Link Options): ...here.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/constraints.md (ZC): Add support for R6 LL/SC
	offsets.
	(ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
	* config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
	(ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
	instead of ZR for the memory operand of LL/SC.
	(compare_and_swap_12, sync_add<mode>): Likewise.
	(sync_<optab>_12, sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12, sync_nand_12): Likewise.
	(sync_old_nand_12, sync_new_nand_12): Likewise.
	(sync_sub<mode>, sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>, sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>, sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
	(sync_nand<mode>, sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
	* doc/md.texi (ZC): Update description.

2015-01-14  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c (expand_builtin_atomic_exchange): Remove error when
	memory model is CONSUME.
	(expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
	expand_builtin_atomic_store): Change invalid memory model errors to
	warnings.
	(expand_builtin_atomic_clear): Change invalid model errors to warnings
	and issue warning for CONSUME.

2015-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* lto-cgraph: Update function comments for
	lto_symtab_encoder_encode_*.

2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>

	* Makefile.in (site.exp): Do not set ENABLE_LTO.

2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>

	* cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
	* lto-cgraph.c (select_what_to_stream): Remove argument, use
	lto_stream_offload_p instead.
	* lto-streamer.h (select_what_to_stream): Remove argument.
	* passes.c (ipa_write_summaries): Likewise.
	* tree-pass.h (ipa_write_summaries): Likewise.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59354
	* tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
	groups larger than the slp group size as having gaps.

2015-01-14  Andrew MacLeod  <amacleod@redhat.com>

	PR middle-end/59448
	* builtins.c (get_memmodel): Promote consume to acquire always.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64386
	* config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
	V32HImode.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64393
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
	Enable AVX512BW.
	(OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
	AVX512VBMI, as it implies AVX512BW.

2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/64387
	* config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
	(vec_unpacks_hi_v16sf): Ditto.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h: Error out if AdvancedSIMD
	is not available.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/invoke.texi (mapcs): Mention deprecation.
	(mapcs-frame): Likewise.

2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/64453
	* config/arm/arm.c (callee_saved_reg_p): Define.
	(arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
	register is callee saved instead of !call_used_regs[reg].
	(thumb1_compute_save_reg_mask): Likewise.

2015-01-14  Hale Wang  <hale.wang@arm.com>

	* config/arm/arm.c: Tune the max_cond_insns/branch_cost for
	Cortex-M7.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR lto/64415
	* tree-inline.c (insert_debug_decl_map): Check destination
	function MAY_HAVE_DEBUG_STMTS.
	(insert_init_debug_bind): Likewise.
	(insert_init_stmt): Remove redundant check.
	(remap_gimple_stmt): Drop debug stmts if the destination
	function has var-tracking assignments disabled.

2015-01-14  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_operand): Add support for
	IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.

2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64460
	* config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
	(*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.

2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
	level from an ARCH; do not inject the default.
	(MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
	MIPS_ISA_LEVEL_SPEC.
	(MIPS_ISA_NAN2008_SPEC): Update comment.
	(BASE_DRIVER_SELF_SPECS): Likewise.
	* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
	MIPS_DEFAULT_ISA_LEVEL_SPEC.
	* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
	* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
	* config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.

2015-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64493
	PR tree-optimization/64495
	* tree-vect-loop.c (vect_finalize_reduction): For double-reductions
	assign the proper vectorized PHI to the inner loop exit PHIs.

2015-01-14  Joey Ye  <joey.ye@arm.com>

	* config/arm/arm.c (arm_compute_save_reg_mask):
	Do not save lr in case of tail call.
	* config/arm/thumb2.md (*thumb2_pop_single): New pattern.

2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>

	* tree-vrp.c (check_array_ref): Emit more warnings
	for warn_array_bounds >= 2.
	* common.opt: New option -Warray-bounds=.
	* doc/invoke.texi: Document -Warray-bounds=.

2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
	(mforbid-fp-as-gp): Remove.
	(mex9): Remove.
	* config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
	(nds32_symbol_load_store_p): Remove.
	(nds32_fp_as_gp_check_available): Clean up implementation.
	* config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
	cases.
	* config/nds32/nds32.c (nds32_asm_file_start): No need to consider
	fp-as-gp and ex9 cases.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	* tree-profile.c (init_ic_make_global_vars): Drop workaround
	for bintuils bug 14342.
	(init_ic_make_global_vars): Likewise.
	(gimple_init_edge_profiler): Likewise.
	(gimple_gen_ic_func_profiler): Likewise.

2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* ipa-inline.c (inline_small_functions): Swap the operands in
	enum.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64481
	* ipa-inline-analysis.c (node_growth_cache): Remove.
	(initialize_growth_caches): Do not initialize it.
	(free_growth_caches): Do not free it.
	(do_estimate_growth): Rename to ...
	(estimate_growth): ... this one; drop growth cache code.
	(growth_likely_positive): Always go the heuristics way.
	* ipa-inline.c (can_inline_edge_p): Walk through aliases.
	(reset_edge_caches): Do not reset node growth.
	(heap_edge_removal_hook): Do not maintain cache.
	(inline_small_functions): Likewise; strenghten sanity check.
	(ipa_inline): Do not maintain caches.
	* ipa-inline.h (node_growth_cache): Remove.
	(do_estimate_growth): Remove to ...
	(estimate_growth): this one; remove inline version.
	(reset_node_growth_cache): Remove.

2015-01-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64565
	* ipa-inline.c (inline_small_functions): Update callee keys after
	resolving speculation
	(inline_small_functions): Always check monotonicity of the queue.

2015-01-13  Marek Polacek  <polacek@redhat.com>

	PR middle-end/64391
	* trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.

2015-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64286
	* ree.c (combine_reaching_defs): Move part of comment earlier,
	remove !SCALAR_INT_MODE_P check.
	(add_removable_extension): Don't add vector mode
	extensions if all uses of the source register aren't the same
	vector extensions.

2015-01-13  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
	(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.

2015-01-13  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::equals_private): Call new functions
	cl_target_option_print_diff and cl_optimization_print_diff.
	* optc-save-gen.awk (cl_target_option_print_diff): New function.
	(cl_optimization_print_diff): Likewise.
	* opth-gen.awk: Likewise.

2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
	(*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
	(*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
	(*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
	(*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
	(*sub_uxtsi_multp2_uxtw): Add stack pointer sources.

2015-01-13  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (fusion_load_store): Check dest mode
	instead of src mode.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR lto/64373
	* lto-streamer-out.c (tree_is_indexable): Guard for NULL
	DECL_CONTEXT.

2015-01-13  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
	volatile mems.
	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.

2015-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/63974
	* cfgexpand.c (expand_computed_goto): Don't call
	convert_memory_address here.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64406
	* tree-loop-distibution.c (pass_loop_distribution::execute):
	Reset the SCEV hashtable if we distributed anything.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64404
	* tree-vect-stmts.c (vectorizable_load): Reject conflicting
	SLP types for CSEd loads.

2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/64436
	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
	merge of two symbolic numbers for a bitwise OR to ...
	(perform_symbolic_merge): This. Also fix computation of the range and
	end of the symbolic number corresponding to the result of a bitwise OR.

2015-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64568
	* tree-ssa-forwprop.c (pass_forwprop::execute): Properly
	release defs of removed stmts, avoid splitting TARGET_MEM_REFs.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_legitimate_address_p): Consider
	TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
	target-specific symbol_ref flag.
	(NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
	resides in rodata section.
	* config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
	(nds32_encode_section_info): New function.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.md (call): Use pseudo instruction bal which
	clobbers TA_REGNUM if large code model is specified.
	(call_register): Likewise.
	(call_immediate): Likewise.
	(call_value): Likewise.
	(call_value_register): Likewise.
	(call_value_immediate): Likewise.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
	(TARGET_CMODEL_MEDIUM): New macro.
	(TARGET_CMODEL_LARGE): New macro.
	* config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
	code model setting in assembly code.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
	Remove MASK_GP_DIRECT flag.
	* config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
	one of the multilib default options.
	* config/nds32/nds32.opt (mgp-direct): Remove.
	* config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
	-mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.

2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.opt (mcmodel): Add new option.
	* config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
	to describe code model.

2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/64479
	* rtlanal.c (set_reg_p): Handle SEQUENCE constructs.

2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
	(sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
	(sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
	__builtin_sh_set_fpscr.

2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
	after a funtion name just to indicate it is a function.
	([-fsanitize-undefined-trap-on-error]): Likewise.
	([-fdbg-cnt=]): Likewise.
	([-mmemcpy]): Likewise.
	([-mflush-func]): Likewise.
	([-msynci]): Likewise.

2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
	example.

2015-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64563
	* tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
	instead of != VR_VARYING.

	PR target/64513
	* config/i386/i386.c (ix86_expand_prologue): Add
	REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.

	PR tree-optimization/64454
	* tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
	op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
	for signed or [0, op1 - 1] for unsigned modulo.
	(simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
	even if op1 does not satisfy integer_pow2p.

	PR other/64370
	* sreal.c (sreal::to_double): Use ldexp instead of scalbnl.

2015-01-12  Jeff Law  <law@redhat.com>

	PR target/64461
	* config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
	(trunchiqi2, truncsihi2): Similarly.

	* config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
	rather than calling F.

2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tsan.c (instrument_expr): Use force_gimple_operand.
	Use may_be_nonaddressable_p instead of is_gimple_addressable.

2015-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64530
	* tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
	back dr1.

2015-01-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/64357
	* tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
	latches properly.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
	Cortex-A17 tuning parameters.
	* config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
	* config/arm/arm.c (arm_macro_fusion_p): New function.
	(arm_macro_fusion_pair_p): Likewise.
	(TARGET_SCHED_MACRO_FUSION_P): Define.
	(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
	(ARM_FUSE_NOTHING): Likewise.
	(ARM_FUSE_MOVW_MOVT): Likewise.
	(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
	arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
	arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
	arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
	arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
	arm_cortex_a5_tune): Specify fuseable_ops value.

2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/64561
	* configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
	test for PIE with copy reloc.
	* configure: Regenerated.

2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
	in gen_rtx_REG.
	(arm_tls_descseq_addr): Likewise.
	(arm_gen_movmemqi): Likewise.
	(arm_expand_epilogue_apcs_frame): Likewise.
	(arm_expand_epilogue): Likewise.
	(arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
	in gen_rtx_REG.

2015-01-12  Martin Liska  <mliska@suse.cz>

	PR ipa/64550
	* ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
	volatility for correct operands.

2015-01-12  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
	that a function is not leaf.
	(sem_function::compare_polymorphic_p): Likewise.

2015-01-12  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
	that a function is not leaf.
	(sem_function::compare_polymorphic_p): Likewise.

2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/visium/visium.c: Add includes hashtab.h, hash-set.h,
	machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
	fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
	fold-const.h, tree-check.h.

2015-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63967
	PR ipa/64425
	* ipa-inline.c (compute_uninlined_call_time,
	compute_inlined_call_time): Use counts for extra precision when
	needed possible.
	(big_speedup_p): Fix formating.
	(RELATIVE_TIME_BENEFIT_RANGE): Remove.
	(relative_time_benefit): Remove.
	(edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
	merge guessed and read profile paths.
	(inline_small_functions): Count only !optimize_size functions into
	initial size; be more lax about sanity check when profile is used;
	be sure to update inlined function profile when profile is read.

2015-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63470
	* ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
	cost when edge becomes direct.
	* ipa-prop.c (make_edge_direct): Do not adjust when speculation
	is resolved or when introducing new speculation.

2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>

	PR ipa/64551
	PR ipa/64552
	* ipa-icf.c (sem_function::equals_private): Use '&&' instead of
	'||' to fix typo issue.

	* gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
	accept and return NULL.

2015-01-12  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_edge::remove_callee): Move function to header
	file for being inlined.
	(cgraph_set_edge_callee): Delete.
	(cgraph_edge::redirect_callee): Move function to header file
	for being inlined.
	(cgraph_edge::make_direct): Use new function.
	(cgraph_edge::dump_edge_flags): New function created from
	static dump_edge_flags function.
	(cgraph_node::dump): Use new function.
	(cgraph_edge::verify_count_and_frequency): New function created
	from verify_edge_count_and_frequency.
	(cgraph_edge::verify_corresponds_to_fndecl): New function created
	from verify_edge_corresponds_to_fndecl.
	(verify_edge_corresponds_to_fndecl): Delete.
	(cgraph_node::verify_node): Use new function.
	* cgraph.h (cgraph_edge::set_callee): New function.
	(cgraph_edge::dump_edge_flags): Likewise.
	(cgraph_edge::verify_corresponds_to_fndecl): Likewise.

2015-01-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (estimate_function_body_sizes): Do not
	free node params when called late with early=true.

2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/md.texi (Instruction Patterns): Rewrite text for
	clarity.
	(Example): Likewise.

2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Break long lines.
	[(-fdiagnostics-color)]: Put long literal in @smallexample
	instead of inline.
	[(-fsanitize-recover)]: Likewise.
	[(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
	[(-ffast-math)]: Likewise.
	[(--param max-inline-insns-recursive)]: Likewise.
	[(--param max-inline-recursive-depth)]: Likewise.
	[(-mno-text-section-literals)]: Likewise.

2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/install.texi: Update for libgomp being renamed from "GNU
	OpenMP Runtime Library" to "GNU Offloading and Multi Processing
	Runtime Library".
	* doc/sourcebuild.texi: Likewise.

2015-01-10  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_option_override): Fix forcing of
	mul.x availability for moxiebox configuration.

2015-01-09  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md: Tabify assembly output.

2015-01-09  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (CC_REG): Correct register definition.

2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
	([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
	of log files.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.

2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64412
	* lto-streamer.h (lto_stream_offload_p): New declaration.
	* lto-streamer.c (lto_stream_offload_p): New variable.
	* cgraphunit.c (ipa_passes): Set lto_stream_offload_p
	at the same time as section_name_prefix.
	* lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
	if lto_stream_offload_p.
	* tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
	stream TREE_TARGET_OPTION if lto_stream_offload_p.
	(write_ts_function_decl_tree_pointers): Don't
	stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
	* tree-streamer-in.c (unpack_value_fields): Don't stream
	TREE_TARGET_OPTION in if ACCEL_COMPILER.
	(lto_input_ts_function_decl_tree_pointers): Don't stream
	DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
	* lto-opts.c (lto_write_options): Use lto_stream_offload_p
	instead of section_name_prefix string comparisons.

2015-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64536
	* cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
	tablejumps.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	PR tree-optimization/64322
	* tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
	range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.

2015-01-09  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64539
	* regcprop.c (kill_clobbered_values): Factor out of ...
	(copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
	instead of note_stores with kill_clobbered_value.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	 * ginclude/unwind-arm-common.h: Revert previous commit.

2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>

	* config.gcc (arm*-*-freebsd*): New configuration.
	* config/arm/freebsd.h: New file.
	* config.host: Add extra components for arm*-*-freebsd*.
	* config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
	* config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
	for -mcpu=e6500.
	* config/rs6000/t-rtems: Add e6500 multilibs.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
	MPC8540.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
	MULTILIB_EXCEPTIONS.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
	MULTILIB_EXCEPTIONS.

2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems-eabi: Rename to...
	* config/arm/t-rtems: ...this.
	* config/arm/rtems-eabi.h: Rename to...
	* config/arm/rtems.h: ...this.
	* config.gcc (arm*-*-rtems*): Reflect changes above.

2015-01-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64410
	* tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
	on the LHS.
	(execute_update_addresses_taken): Deal with that.
	* tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
	loads/stores for complex variables.

2015-01-09  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
	name comparison.
	(func_checker::compare_memory_operand): New function.
	(func_checker::compare_operand): Split case to newly
	added functions.
	(func_checker::compare_cst_or_decl): New function.
	(func_checker::compare_gimple_call): Identify
	memory operands.
	(func_checker::compare_gimple_assign): Likewise.
	* ipa-icf-gimple.h: New function.

2015-01-09  Martin Liska  <mliska@suse.cz>

	PR ipa/64503
	* sreal.c (sreal::dump): Change unsigned format to signed for
	m_exp value.
	(sreal::to_double): Replace exp2 with scalbln.

2015-01-09  Martin Liska  <mliska@suse.cz>

	* cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
	* ipa-icf.c (sem_function::equals_private): Add support for target and
	(sem_item_optimizer::merge_classes): Remove redundant function
	optimization flags comparison.
	* tree.h (target_opts_for_fn): New function.

2015-01-09  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_for_static_chunk): Fix assert.

2015-01-09  Kito Cheng  <kito@0xlab.org>

	PR rtl-optimization/64348
	* lra-constraints.c (split_reg): Fix caller-save store/restore
	instruction generation.

2015-01-08  John David Anglin  <danglin@gcc.gnu.org>

	PR gcov-profile/61790
	* gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
	long long.  Fallback to int64_t if host doesn't have long long and
	use strtol if int64_t is long.  Otherwise, use sscanf for conversion.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63989
	* params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
	from 1000 to 10000.
	* tree-ssa-strlen.c (get_strinfo): Moved earlier.
	(get_stridx): If we don't have a record for certain SSA_NAME,
	but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
	constant offset, call get_stridx_plus_constant.
	(get_stridx_plus_constant): New function.
	(zero_length_string): Don't use get_stridx here.

	PR target/55023
	PR middle-end/64388
	* dse.c (struct insn_info): Mention frame_read set also
	before reload for tail calls on some targets.
	(scan_insn): Revert 2014-12-22 change.  Set frame_read
	also before reload for tail calls if
	HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
	instead of add_non_frame_wild_read for non-const/memset
	tail calls after reload.

2015-01-08  Jason Merrill  <jason@redhat.com>

	* ubsan.c (do_ubsan_in_current_function): New.
	(pass_ubsan::gate): Use it.
	* ubsan.h: Declare it.
	* convert.c (convert_to_integer): Use it.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/64338
	* config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
	compare_code when it is unconditionally overwritten afterwards.
	Use ix86_reverse_condition instead of reverse_condition.  Don't
	change code if *reverse_condition* returned UNKNOWN and don't
	swap ct/cf and negate diff in that case.

2015-01-08  Mike Stump  <mikestump@comcast.net>

	* tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
	(pass_tsan_O0::gate): Likewise.
	* extend.texi (Function Attributes): Add no_sanitize_thread
	documentation.

2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>

	* builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
	for registering builtins.
	* config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
	add -fopenmp to the argv_obstack used when invoking
	compile_for_target.

	* config/i386/intelmic-mkoffload.c (compile_for_target): Always
	add "-m32" or "-m64" to argv_obstack.
	(generate_host_descr_file): Likewise, when invoking host_compiler.
	(main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
	ld.

2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-mem.cc: Use constant as second operand when emitting
	tstsi_t insns.

2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/55212
	* config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
	constant load if constant operand fits into I08.

2015-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64336
	* tree.c (build2_stat): Fix up initialization of TREE_READONLY
	and TREE_THIS_VOLATILE for MEM_REFs.
	(build5_stat): Fix up initialization of TREE_READONLY and
	TREE_THIS_VOLATILE for TARGET_MEM_REFs.

2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/64533
	* config/sh/sh.md (*addsi3_compact): Use u constraint instead
	of r for the second alternative of the destination operand.

2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/36557
	* config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.

2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fvtable-verify]): Fix markup on option
	keywords.
	([-fivar-visibility], [-fvisibility]): Likewise.

2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Fix incorrect uses of @samp markup throughout
	the file where @code, @command, etc is more appropriate.

2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
	of -mrecip= documentation.

2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64505
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
	correct reload handler if -m32 -mpowerpc64 is used.

2015-01-06  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.

2015-01-08  Christian Bruel  <christian.bruel@st.com>

	PR target/64507
	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.

2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63259
	* tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
	if optab exists for 16bit byteswap.

2015-01-06  Jakub Jelinek  <jakub@redhat.com>

	* opts.c (common_handle_option): Add support for
	-fno-sanitize=all and -f{,no-}sanitize-recover=all.
	* doc/invoke.texi: Document -fno-sanitize=all,
	-f{,no-}sanitize-recover=all.  Document that
	-fsanitize=float-cast-overflow is not enabled
	by -fsanitize=undefined.  Fix up documentation
	of -f{,no-}sanitize-recover.

2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc: Add Visium support.
	* configure.ac: Likewise.
	* configure: Regenerate.
	* doc/extend.texi (interrupt attribute): Add Visium.
	* doc/invoke.texi: Document Visium options.
	* doc/install.texi: Document Visium target.
	* doc/md.texi: Document Visium constraints.
	* common/config/visium: New directory.
	* config/visium: Likewise.

2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* simplify-rtx.c (simplify_binary_operation_1): Handle more cases
	for the "(and X (ior (not X) Y) -> (and X Y)" transform.

2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (combine_validate_cost): Do not count the cost of a
	split I2 twice.  Do not display it twice in the dump, either.

2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	Revert parts of r219199.
	* doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
	<inttypes.h>.
	([-Wtraditional]): Restore markup on <limits.h>.

2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>

	PR c++/31397
	* doc/invoke.texi: Document -Wsuggest-override.

2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>

	PR rtl-optimization/64287
	* toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
	(process_options): Disable flag_ipa_ra if profiling.

2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	* config/nds32/nds32-peephole2.md: Do not mention define_peephole.

2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
	hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
	put under #if TARGET_LOOPS guard.

2015-01-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (output_387_binary_op): Use std::swap.

2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* rtlanal.c (refers_to_regno_p): Change return value from int to bool.
	* rtl.h (refers_to_regno_p): Add overload.
	* cse.c: Use it.
	* bt-load.c: Likewise.
	* combine.c: Likewise.
	* df-scan.c: Likewise.
	* sched-deps.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/rs6000/spe.md: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/arc/arc.md: Likewise.
	* config/arc/arc.c: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/sh.c: Likewise.
	* config/frv/frv.c: Likewise.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64265
	* gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
	call as cleanup of the whole body.
	* internal-fn.def (TSAN_FUNC_EXIT): New internal call.
	* tsan.c (replace_func_exit): New function.
	(instrument_func_exit): Moved earlier.
	(instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
	Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
	been found.
	(tsan_pass): Don't call instrument_func_exit.
	* internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
	* tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
	inlining.

	PR sanitizer/64344
	* ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
	* ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
	it to libubsan handler instead of EXPR.  Fold comparisons earlier,
	if the result is integer_zerop, return NULL_TREE.
	* convert.c (convert_to_integer): Pass expr as ARG.

	PR tree-optimization/64465
	* tree-inline.c (redirect_all_calls): During inlining
	clean up EH stmts and EH edges if redirect_call_stmt_to_callee
	changed the stmt to a non-throwing call.

2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
	etc markup throughout the file.

2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Enable experimental TSAN support for Ada.
	* tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64494
	* tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
	clear SSA_NAME_ANTI_RANGE_P flag.

2015-01-05  Marek Polacek  <polacek@redhat.com>

	* doc/extend.texi (Arrays of Length Zero): Add missing comma.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c: Ditto.
	* gcov.c: Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.

	* auto-profile.c, auto-profile.h: Fix up Copyright line.

2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
	verb tense, etc.
	([-fvtable-verify], [-fvtv-debug]): Likewise.
	([-Wabi]): Likewise.
	([-fmessage-length]): Likewise.
	([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
	([-Wno-discarded-qualifiers]): Likewise.
	([-Wnodiscarded-array-qualifiers]): Likewise.
	([-Wno-virtual-move-assign]): Likewise.
	([-fsanitize=address], [-fsanitize=thread]): Likewise.
	([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
	([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
	([-fsanitize-undefined-trap-on-error]): Likewise.
	([-floop-interchange]): Likewise.
	([-ftree-coalesce-inlined-vars]): Likewise.
	([-fvect-cost-model]): Likewise.
	([-flto]): Likewise.
	([--param]): Likewise.
	(Spec Files): Likewise.
	([-mstrict-align]): Likewise.
	([-mfix-cortex-a53-835769]): Likewise.
	([-march], [-mtune]): Likewise.
	([-mpic-register]): Likewise.
	([-munaligned-access]): Likewise.
	([-msp8]): Likewise.
	(EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
	(AVR Built-in Macros): Likewise.
	([-mpreferred-stack-boundary]): Likewise.
	([-mtune-crtl]): Likewise.
	([-mashf]): Likewise.
	([-mmcu=]): Likewise.
	([-minrt]): Likewise.
	([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
	([-mupper-regs]): Likewise.
	([-matomic-model]): Likewise.
	([-mdiv]): Likewise.
	([-mzdcbranch]): Likewise.
	([-mdisable-callt]): Likewise.
	([-msoft-float]): Likewise.
	([-m8byte-align]): Likewise.
	([-fstack-reuse]): Likewise.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
	Fix markup, light copy-editing.
	([-fauto-profile]): Rewrite to fix formatting and content
	problems.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
	Copy-edit description.
	([-fisolate-erroneous-paths-attribute]): Likewise.
	* common.opt (fisolate-erroneous-paths-dereference):
	Copy-edit description.
	(fisolate-erroneous-paths-attribute): Likewise.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
	tidy grammar.

2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
	([-fvtv-debug]): Likewise.
	([-Wc++-compat]): Likewise.
	([-Wc++11-compat]): Likewise.
	([-Wc++14-compat]): Likewise.
	([-Wno-sized-deallocation]): Likewise.
	([-femit-class-debug-always]): Likewise.
	([-femit-struct-debug-detailed]): Likewise.
	([-fno-keep-inline-dllexport]): Likewise.
	([-fira-algorithm]): Likewise.
	([-fira-region]): Likewise.
	([-flra-remat]): Likewise.
	([-fipa-ra]): Likewise.
	([-fhoist-adjacent-loads]): Likewise.
	([-fisolate-erroneous-paths-dereference]): Likewise.
	([-fisolate-erroneous-paths-attribute]): Likewise.
	([-ftree-switch-conversion]): Likewise.
	([-ftree-tail-merge]): Likewise.
	([-ftree-loop-if-convert]): Likewise.
	([-ftree-loop-if-convert-stores]): Likewise.
	([-ftree-loop-distribution]): Likewise.
	([-ftree-loop-distribute-patterns]): Likewise.
	([-flto-compression-level]): Likewise.
	([-flto-report]): Likewise.
	([-flto-report-wpa]): Likewise.
	([-fuse-linker-plugin]): Likewise.
	([-mfix-cortex-a53-835769]): Likewise.
	([-mno-fix-cortex-a53-835769]): Likewise.
	([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
	explicit listing; add a note to the discussion indicating they
	exist.  Reorder table to group similar options.  Add missing
	@opindex entries.  Add @need commands throughout the table to
	allow it to be split across multiple pages.
	([-m8bit-idiv]): Fix @opindex.
	([-mavx256-split-unaligned-load]): Likewise.
	([-mavx256-split-unaligned-store]): Likewise.
	([-mstack-protector-guard]): Likewise.
	([-mcpu=]): Likewise.
	([-mcpu]): Likewise.
	([-mpointer-size=]): Likewise.

2015-01-03  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
	instead of `m' constraint.  Likewise for unnamed movb comparison
	patterns using reg_before_reload_operand predicate.
	* config/pa/predicates.md (reg_before_reload_operand): Tighten
	predicate to reject register index and LO_SUM DLT memory forms
	after reload.

2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Fix spelling of
	-fdevirtualize-at-ltrans.
	([-fdevirtualize]): Fix markup.
	([-fdevirtualize-speculatively]): Fix typo.
	([-fdevirtualize-at-ltrans]): Likewise.  Make description less
	implementor-speaky.
	* common.opt (fdevirtualize-at-ltrans): Likewise.
	* ipa-devirt.c: Fix typos in comments throughout the file.
	(ipa_devirt): Fix typos in format strings for dump output.

2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
	discussion of defaults, light copy-editing.

2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tsan.c (instrument_expr): corrected previous checkin.

2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Instrument bit field and unaligned accesses for TSAN.
	* sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
	(BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
	* tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
	Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
	unaligned memory regions.

2015-01-01  Anthony Green  <green@moxielogic.com>

	* config/moxie/predicates.md (moxie_general_movsrc_operand):
	Restrict move source register offsets to 16 bits.

Copyright (C) 2015 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
