* gfortran.dg/ieee/ieee_1.F90: Mark variables as volatile to
	avoid optimization.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212261 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
	* data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
	HWI 1 and negate the unsigned value.
	* expmed.c (expand_sdiv_pow2): For modes wider than word always
	use AND instead of shift.
	* wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
c-family/
	* c-ada-spec.c (dump_ada_nodes): Don't call qsort if 
	comments->count <= 1, as comments->entries might be NULL.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212264 138bc75d-0d04-0410-961f-82ee72b054a4
	* arm.md (arch): Add armv6_or_vfpv3.
	(arch_enabled): Add test for the above.
	* vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
	on VFP9.
	(sqrtsf_vfp, sqrtdf_vfp): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212265 138bc75d-0d04-0410-961f-82ee72b054a4
Explain gfortran-dg-runtest usage in libgomp Fortran testing.

	libgomp/
	* testsuite/libgomp.fortran/fortran.exp: Explain
	gfortran-dg-runtest usage.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212266 138bc75d-0d04-0410-961f-82ee72b054a4
Fix the shift patterns, and add test

Firstly, it adds back the split conditions that I accidentally removed.
Without it the dot insns are never generated, or rather, always split
back to a separate compare instruction.

Secondly, the shift amount should be SI always, not GPR, or GCC will
insert a zero-extend at expand time that it cannot get rid of later.

The test tests whether dot-form instructions are generated for both
"dot" and "dot2" cases, that is, with just a CC output or also a GPR
output; for all four basic shifts, with a register amount or an
immediate amount.  It also tests for superfluous zero-extends.  This
also tests if combine "simplifies" the rotates to right-rotates, which
it shouldn't do anymore.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212267 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
	matches regex $lang_source_re, add $lang_include_flags to options.
	* testsuite/libgomp.c/c.exp: Unset lang_include_flags.
	* testsuite/libgomp.c++/c++.exp: Likewise.
	* testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
	and lang_include_flags instead of adding -fintrinsic-modules-path= to
	ALWAYS_CFLAGS.
	* testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212268 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/61682
	* wide-int.cc (wi::mul_internal): Handle high correctly
	for umul_ppmm using cases and when one of the operands is
	equal to 1.

	* gcc.c-torture/execute/pr61682.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212273 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212277 138bc75d-0d04-0410-961f-82ee72b054a4
Normalize interface for all *-dg-runtest.

	gcc/testsuite/
	* lib/g++-dg.exp (g++-dg-runtest): Change interface to match
	dg-runtest's.  Adapt all callers.
	* lib/gcc-dg.exp (gcc-dg-runtest): Likewise.
	* lib/gfortran-dg.exp (gfortran-dg-runtest): Likewise.
	* lib/go-dg.exp (go-dg-runtest): Likewise.
	* lib/obj-c++-dg.exp (obj-c++-dg-runtest): Likewise.
	* lib/objc-dg.exp (objc-dg-runtest): Likewise.
	libffi/
	* testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
	match to dg-runtest's.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212278 138bc75d-0d04-0410-961f-82ee72b054a4
Add several new files for preparation of providing modules
that are going to be separated from nds32.c source.

gcc/
	* config.gcc (nds32*): Add new modules to extra_objs.
	(nds32le-*-*): Use t-nds32 makefile fragment for new modules.
	(nds32be-*-*): Likewise.
	* config/nds32/nds32-cost.c: New file.
	* config/nds32/nds32-fp-as-gp.c: New file.
	* config/nds32/nds32-intrinsic.c: New file.
	* config/nds32/nds32-isr.c: New file.
	* config/nds32/nds32-md-auxiliary.c: New file.
	* config/nds32/nds32-memory-manipulation.c: New file.
	* config/nds32/nds32-pipelines-auxiliary.c: New file.
	* config/nds32/nds32-predicates.c: New file.
	* config/nds32/t-nds32: New file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212280 138bc75d-0d04-0410-961f-82ee72b054a4
Move ISR impelentation to nds32-isr.c module.

gcc/
	* config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
	(nds32_emit_section_tail_template): Move to ...
	(nds32_emit_isr_jmptbl_section): Move to ...
	(nds32_emit_isr_vector_section): Move to ...
	(nds32_emit_isr_reset_conten): Move to ...
	(nds32_check_isr_attrs_conflict): Move to ...
	(nds32_construct_isr_vectors_information): Move to ...
	(nds32_asm_file_start): Move implementation to ...
	(nds32_asm_file_end): Move implementation to ...
	* config/nds32/nds32-isr.c: ... here.
	* config/nds32/nds32-protos.h
	(nds32_check_isr_attrs_conflict): Declare.
	(nds32_construct_isr_vectors_information): Declare.
	(nds32_asm_file_start_for_isr): Declare.
	(nds32_asm_file_end_for_isr): Declare.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212281 138bc75d-0d04-0410-961f-82ee72b054a4
Move builtin functions implementation to nds32-intrinsic.c module.

gcc/
	* config/nds32/nds32.c
	(nds32_expand_builtin_null_ftype_reg): Move to ...
	(nds32_expand_builtin_reg_ftype_imm): Move to ...
	(nds32_expand_builtin_null_ftype_reg_imm): Move to ...
	(nds32_init_builtins): Move implementation to ...
	(nds32_expand_builtin): Move implementation to ...
	* config/nds32/nds32-intrinsic.c: ... here.
	* config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
	(nds32_expand_builtin_impl): Declare.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212282 138bc75d-0d04-0410-961f-82ee72b054a4
Move some helper functions of predicates and constraints to nds32-predicates.c module.

gcc/
	* config/nds32/nds32.c
	(nds32_consecutive_registers_load_store_p): Move to ...
	(nds32_valid_multiple_load_store): Move to ...
	(nds32_valid_stack_push_pop): Move to ...
	(nds32_can_use_bclr_p): Move to ...
	(nds32_can_use_bset_p): Move to ...
	(nds32_can_use_btgl_p): Move to ...
	(nds32_can_use_bitci_p): Move to ...
	* config/nds32/nds32-predicates.c: ... here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212283 138bc75d-0d04-0410-961f-82ee72b054a4
Move cost calculation to nds32-cost.c module.

gcc/
	* config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
	(nds32_address_cost): Move implementation to ...
	* config/nds32/nds32-cost.c: ... here.
	* config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
	(nds32_address_cost_impl): Declare.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212284 138bc75d-0d04-0410-961f-82ee72b054a4
Preparation of nds32-pipelines-auxiliary.c module for future implementation.

gcc/
	* config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
	the purpose of this file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212285 138bc75d-0d04-0410-961f-82ee72b054a4
Move some external functions used by machine description patterns to nds32-md-auxiliary.c module.

gcc/
	* config/nds32/nds32.c (nds32_byte_to_size): Move to ...
	(nds32_output_casesi_pc_relative): Move to ...
	(nds32_output_casesi): Move to ...
	(nds32_mem_format): Move to ...
	(nds32_output_16bit_store): Move to ...
	(nds32_output_16bit_load): Move to ...
	(nds32_output_32bit_store): Move to ...
	(nds32_output_32bit_load): Move to ...
	(nds32_output_32bit_load_s): Move to ...
	(nds32_output_stack_push): Move to ...
	(nds32_output_stack_pop): Move to ...
	* config/nds32/nds32-md-auxiliary.c: ... here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212286 138bc75d-0d04-0410-961f-82ee72b054a4
Move memory related implementation to nds32-memory-manipulation.c module.

gcc/
	* config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
	(nds32_expand_store_multiple): Move to ...
	(nds32_expand_movmemqi): Move to ...
	* config/nds32/nds32-memory-manipulation.c: ... here.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212287 138bc75d-0d04-0410-961f-82ee72b054a4
Move fp-as-gp optimization to nds32-fp-as-gp.c module.

gcc/
	* config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
	(nds32_symbol_load_store_p): Move to ...
	(nds32_fp_as_gp_check_available): Move to ...
	* config/nds32/nds32-fp-as-gp.c: ... here.
	* config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
	extern declaration.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212288 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/61684
	* tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
	rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.

	* gcc.c-torture/compile/pr61684.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212290 138bc75d-0d04-0410-961f-82ee72b054a4
	PR middle-end/61654
	* cgraphunit.c (expand_thunk): Call free_dominance_info.

	* g++.dg/opt/pr61654.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212293 138bc75d-0d04-0410-961f-82ee72b054a4