1. 10 Nov, 2015 2 commits
    • Daily bump. · 7441dcf4
      From-SVN: r230069
      GCC Administrator committed
    • constraints.md (wF constraint): New constraints for power9/toc fusion. · 0299bc72
      [gcc]
      2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/constraints.md (wF constraint): New constraints
      	for power9/toc fusion.
      	(wG constraint): Likewise.
      
      	* config/rs6000/predicates.md (u6bit_cint_operand): New
      	predicate, recognize 0..63.
      	(upper16_cint_operand): New predicate for power9 and toc fusion.
      	(fpr_reg_operand): Likewise.
      	(toc_fusion_or_p9_reg_operand): Likewise.
      	(toc_fusion_mem_raw): Likewise.
      	(toc_fusion_mem_wrapped): Likewise.
      	(fusion_gpr_addis): If power9 fusion, allow fusion for a larger
      	address range.
      	(fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
      	instead.
      	(fusion_addis_mem_combo_load): Add support for power9 fusion of
      	floating point loads, floating point stores, and gpr stores.
      	(fusion_addis_mem_combo_store): Likewise.
      	(fusion_offsettable_mem_operand): Likewise.
      
      	* config/rs6000/rs6000-protos.h (emit_fusion_addis): Add
      	declarations.
      	(emit_fusion_load_store): Likewise.
      	(fusion_p9_p): Likewise.
      	(expand_fusion_p9_load): Likewise.
      	(expand_fusion_p9_store): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	(fusion_wrap_memory_address): Likewise.
      
      	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
      	elements for power9 fusion.
      	(rs6000_debug_print_mode): Rework debug information to print more
      	information about fusion.
      	(rs6000_init_hard_regno_mode_ok): Setup for power9 fusion
      	support.
      	(rs6000_legitimate_address_p): Recognize toc fusion as a valid
      	offsettable memory address.
      	(rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
      	(emit_fusion_gpr_load): Move most of the code from
      	emit_fusion_gpr_load into emit_fusion-addis that handles both
      	power8 and power9 fusion.
      	(emit_fusion_addis): Likewise.
      	(emit_fusion_load_store): Likewise.
      	(fusion_wrap_memory_address): Add support for TOC fusion.
      	(fusion_split_address): Likewise.
      	(fusion_p9_p): Add support for power9 fusion.
      	(expand_fusion_p9_load): Likewise.
      	(expand_fusion_p9_store): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      
      	* config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
      	new instructions in ISA 3.0.
      	(TARGET_CTZ): Likewise.
      	(TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
      	(TARGET_TOC_FUSION_FP): Likewise.
      
      	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
      	fusion unspecs.
      	(UNSPEC_FUSION_ADDIS): Likewise.
      	(QHSI mode iterator): New iterator for power9 fusion.
      	(GPR_FUSION): Likewise.
      	(FPR_FUSION): Likewise.
      	(mod<mode>3): Add support for ISA 3.0
      	modulus instructions.
      	(umod<mode>3): Likewise.
      	(divmod peephole): Likewise.
      	(udivmod peephole): Likewise.
      	(ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
      	instructions.
      	(ctz<mode>2_h): Likewise.
      	(ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
      	(ashdi3_extswsli_dot): Likewise.
      	(ashdi3_extswsli_dot2): Likewise.
      	(power9 fusion splitter): New power9/toc fusion support.
      	(toc_fusionload_<mode>): Likewise.
      	(toc_fusionload_di): Likewise.
      	(fusion_gpr_load_<mode>): Update predicate function.
      	(power9 fusion peephole2s): New power9/toc fusion support.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
      	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
      	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
      	(fusion_p9_<mode>_constant): Likewise.
      
      [gcc/testsuite]
      2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* lib/target-supports.exp (check_p8vector_hw_available): Split
      	long line.
      	(check_vsx_hw_available): Likewise.
      	(check_p9vector_hw_available): Add new checks for ISA 3.0 hardware
      	support and for PowerPC float128 support.
      	(check_p9modulo_hw_available): Likewise.
      	(check_ppc_float128_sw_available): Likewise.
      	(check_ppc_float128_hw_available): Likewise.
      	(check_effective_target_powerpc_p9vector_ok): Likewise.
      	(check_effective_target_powerpc_p9modulo_ok): Likewise.
      	(check_effective_target_powerpc_float128_sw_ok): Likewise.
      	(check_effective_target_powerpc_float128_hw_ok): Likewise.
      	(is-effective-target): Add new PowerPc targets.
      	(is-effective-target-keyword): Likewise.
      	(check_vect_support_and_set_flags): If we have ISA 3.0 vector
      	instructions, use it.
      
      	* gcc.target/powerpc/mod-1.c: New test for ISA 3.0 instructions.
      	* gcc.target/powerpc/mod-2.c: Likewise.
      	* gcc.target/powerpc/ctz-1.c: Likewise.
      	* gcc.target/powerpc/ctz-2.c: Likewise.
      	* gcc.target/powerpc/extswsli-1.c: Likewise.
      	* gcc.target/powerpc/extswsli-2.c: Likewise.
      	* gcc.target/powerpc/extswsli-3.c: Likewise.
      
      	* gcc.target/powerpc/fusion.c (fusion_vector): Move to fusion2.c
      	and allow the test on PowerPC LE.
      	* gcc.target/powerpc/fusion2.c (fusion_vector): Likewise.
      	* gcc.target/powerpc/fusion3.c: New file, test power9 fusion.
      
      	* gcc.target/powerpc/float128-call.c: Use powerpc_float128_sw_ok
      	check instead of powerpc_vsx_ok.
      	* gcc.target/powerpc/float128-mix.c: Likewise.
      
      From-SVN: r230066
      Michael Meissner committed
  2. 09 Nov, 2015 38 commits
    • optabs.c (prepare_libcall_arg): New function. · cbb521e7
      2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
      
      	* optabs.c (prepare_libcall_arg): New function.
      	(expand_fixed_convert): Add call to prepare_libcall_arg.
      
      From-SVN: r230065
      Steve Ellcey committed
    • * gcc.dg/sso/*.c: Robustify dg-output directives. · 82669b68
      From-SVN: r230063
      Eric Botcazou committed
    • [sched] Dump dependency graph to a dot file · cdb0d947
      	* sched-int.h (dump_rgn_dependencies_dot): Declare
      	* sched-rgn.c (dump_rgn_dependencies_dot): New function
      	* print-rtl.h (print_insn): Add prototype
      
      From-SVN: r230062
      Nikolai Bozhenov committed
    • Change behavior of -fsched-verbose option · 4111f1c9
      	* haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
      	* common.opt (-fsched-verbose): Set default value to 1.
      	* invoke.texi (-fsched-verbose): Update the option's description.
      
      From-SVN: r230061
      Nikolai Bozhenov committed
    • visium.h (PRINT_OPERAND): Delete. · 01e83ff2
      	* config/visium/visium.h (PRINT_OPERAND): Delete.
      	(PRINT_OPERAND_PUNCT_VALID_P): Likewise.
      	(PRINT_OPERAND_ADDRESS): Likewise.
      	* config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
      	to...
      	(visium_print_operand_punct_valid_p): ...this.  New function.
      	(TARGET_PRINT_OPERAND): Define to...
      	(print_operand): Rename to...
      	(visium_print_operand): ...this.
      	(TARGET_PRINT_OPERAND_ADDRESS): Define to...
      	(visium_output_address): Rename to...
      	(visium_print_operand_address): ...this.
      	(print_operand_address): Delete.
      
      From-SVN: r230060
      Eric Botcazou committed
    • re PR middle-end/68259 ([sso] tree checking failure in… · a91c72e2
      re PR middle-end/68259 ([sso] tree checking failure in reverse_storage_order_for_component_p, at tree.h:4392)
      
      	PR middle-end/68259
      	* tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
      	Check that the type of the first operand is an aggregate type.
      
      From-SVN: r230056
      Eric Botcazou committed
    • omp-low.c: Fix some OpenACC comment typos. · 374d0225
      	* omp-low.c: Fix some OpenACC comment typos.
      	(lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
      	* omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
      	BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
      
      From-SVN: r230054
      Nathan Sidwell committed
    • 2015-11-09 François Dumont <fdumont@gcc.gnu.org> · ec494945
      	* include/bits/stl_algo.h
      	(partial_sort_copy): Instantiate std::iterator_traits only if concept
      	checks.
      	(lower_bound): Likewise.
      	(upper_bound): Likewise.
      	(equal_range): Likewise.
      	(binary_search): Likewise.
      	* include/bits/stl_heap.h (pop_heap): Likewise.
      
      From-SVN: r230052
      François Dumont committed
    • i386.md (*strmovqi_1): Fix insn enable condition. · 639fa8a3
      	* config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
      
      From-SVN: r230050
      Uros Bizjak committed
    • Re: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier · 3d569e76
      	* tree-ssanames.c (verify_ssaname_freelists): Simplify check for
      	being in gimple/ssa form.  Remove redundant check for SSA_NAME.
      	Fix comment typo.
      
      From-SVN: r230049
      Jeff Law committed
    • pr66326.cc: Do not include cilk.h. · 4483f3ee
      	* g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h.
      	(main): Use _Cilk_spawn instead of cilk_spawn.
      
      From-SVN: r230048
      Uros Bizjak committed
    • Resolve DejaGnu hard stop · 4fe19f1d
      	gcc/testsuite/
      	* gcc.target/i386/addr-space-3.c: Fix quoting in dg-final
      	scan-assembler directive.
      
      From-SVN: r230038
      Thomas Schwinge committed
    • Support sized delete. · c518678b
      This adds transactional clones of the sized version of operator delete.
      
      From-SVN: r230036
      Torvald Riegel committed
    • rs6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9). · d1f0d376
      2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
      	ISA 3.0 (power9).
      	(-mpower9-vector): Likewise.
      	(-mpower9-dform): Likewise.
      	(-mpower9-minmax): Likewise.
      	(-mtoc-fusion): Likewise.
      	(-mmodulo): Likewise.
      	(-mfloat128-hardware): Likewise.
      
      	* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
      	mask for ISA 3.0 (power9).
      	(POWERPC_MASKS): Add new ISA 3.0 switches.
      	(power9 cpu): Add power9 cpu.
      
      	* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for
      	power9.
      	(ASM_CPU_SPEC): Likewise.
      	(EXTRA_SPECS): Likewise.
      
      	* config/rs6000/rs6000-opts.h (enum processor_type): Add
      	PROCESSOR_POWER9.
      
      	* config/rs6000/rs6000.c (power9_cost): Initial cost setup for
      	power9.
      	(rs6000_debug_reg_global): Add support for power9 fusion.
      	(rs6000_setup_reg_addr_masks): Cache mode size.
      	(rs6000_option_override_internal): Until real power9 tuning is
      	added, use -mtune=power8 for -mcpu=power9.
      	(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
      	pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
      	of Altivec registers.
      	(rs6000_option_override_internal): Add support for ISA 3.0
      	switches.
      	(rs6000_loop_align): Add support for power9 cpu.
      	(rs6000_file_start): Likewise.
      	(rs6000_adjust_cost): Likewise.
      	(rs6000_issue_rate): Likewise.
      	(insn_must_be_first_in_group): Likewise.
      	(insn_must_be_last_in_group): Likewise.
      	(force_new_group): Likewise.
      	(rs6000_register_move_cost): Likewise.
      	(rs6000_opt_masks): Likewise.
      
      	* config/rs6000/rs6000.md (cpu attribute): Add power9.
      	* config/rs6000/rs6000-tables.opt: Regenerate.
      
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
      	_ARCH_PWR9 if power9 support is available.
      
      	* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
      	* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
      
      	* configure.ac: Determine if the assembler supports the ISA 3.0
      	instructions.
      	* config.in (HAVE_AS_POWER9): Likewise.
      	* configure: Regenerate.
      
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
      	switches.
      
      From-SVN: r230031
      Michael Meissner committed
    • [AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW · ee78df47
      	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
      	Remove integer CONST_DOUBLE handling.  It should never occur.
      
      From-SVN: r230030
      Kyrylo Tkachov committed
    • [AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT · 2ca5b430
      	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.
      
      	* gcc.dg/pr68129_1.c: New test.
      
      From-SVN: r230029
      Kyrylo Tkachov committed
    • Fix memory leaks in IPA. · c3431191
      	* ipa-inline-analysis.c (estimate_function_body_sizes): Call
      	body_info release function.
      	* ipa-prop.c (ipa_release_body_info): New function.
      	(ipa_analyze_node): Call the function.
      	(ipa_node_params::~ipa_node_params): Release known_csts.
      	* ipa-prop.h (ipa_release_body_info): Declare.
      
      From-SVN: r230028
      Martin Liska committed
    • Fix memory leaks and use a pool_allocator · af121e82
      	* gcc.c (record_temp_file): Release name string.
      	* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead
      	of vec.
      	* lra-lives.c (free_live_range_list): Utilize
      	lra_live_range_pool for allocation and deallocation.
      	(create_live_range): Likewise.
      	(copy_live_range): Likewise.
      	(lra_merge_live_ranges): Likewise.
      	(remove_some_program_points_and_update_live_ranges): Likewise.
      	(lra_create_live_ranges_1): Release point_freq_vec that can
      	be not freed from previous iteration of the function.
      	* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of
      	vec.
      	* tree-sra.c (sra_deinitialize): Release all vectors in
      	base_access_vec.
      	* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
      	Release edge_info for a removed edge.
      	(thread_through_all_blocks): Free region vector.
      	* tree-ssa.h (free_dom_edge_info): Declare function extern.
      
      From-SVN: r230027
      Martin Liska committed
    • [PR debug/67192] Further fix C loops' back-jump location · fc402eec
      gcc/c/ChangeLog:
      
      	PR debug/67192
      	* c-typeck.c (c_finish_loop): For unconditional loops, set the
      	location of the backward-goto to the start of the loop body.
      
      gcc/testsuite/ChangeLog:
      
      	PR debug/67192
      	* gcc.dg/guality/pr67192.c (f3, f4): New functions.
      	(main): Invoke them.
      
      From-SVN: r230024
      Andreas Arnez committed
    • [PR debug/67192] Fix C loops' back-jump location · f6b0b3db
      gcc/c/ChangeLog:
      
      	PR debug/67192
      	* c-parser.c (c_parser_while_statement): Finish the loop before
      	parsing ahead for misleading indentation.
      	(c_parser_for_statement): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	PR debug/67192
      	* gcc.dg/guality/pr67192.c: New test.
      
      From-SVN: r230023
      Andreas Arnez committed
    • optabs.c (expand_vec_cond_expr): Always get sign from type. · 0e657ecb
      gcc/
      
      	* optabs.c (expand_vec_cond_expr): Always get sign from type.
      	* tree.c (wide_int_to_tree): Support negative values for boolean.
      	(build_nonstandard_boolean_type): Use signed type for booleans.
      
      From-SVN: r230022
      Ilya Enkovich committed
    • re PR tree-optimization/68248 (ICE on valid code at -O3 on x86_64-linux-gnu in… · 0b3ecf75
      re PR tree-optimization/68248 (ICE on valid code at -O3 on x86_64-linux-gnu in uniform_vector_p, at tree.c:10807)
      
      2015-11-09  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/68248
      	* tree-vect-generic.c (expand_vector_operations_1): Handle
      	scalar rhs2.
      
      	* gcc.dg/torture/pr68248.c: New testcase.
      
      From-SVN: r230021
      Richard Biener committed
    • re PR tree-optimization/56118 (Piecewise vector / complex initialization from… · 64900538
      re PR tree-optimization/56118 (Piecewise vector / complex initialization from constants not combined)
      
      2015-11-09  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/56118
      	* tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
      	* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
      	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
      	function.
      	(vect_slp_analyze_data_ref_dependences): Instead of computing
      	all dependences of the region DRs just analyze the code motions
      	SLP vectorization will perform.  Remove SLP instances that
      	cannot have their store/load motions applied.
      	(vect_analyze_data_refs): Allow DRs without a vectype
      	in BB vectorization.
      
      	* gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Adjust.
      
      From-SVN: r230020
      Richard Biener committed
    • Machine modes for address printing. · cc8ca59e
      	* final.c (output_asm_insn): Pass VOIDmode to output_address.
      	(output_address): Add MODE argument. Pass to print_operand_address
      	hook.
      	* targhooks.c (default_print_operand_address): Add MODE argument.
      	* targhooks.h (default_print_operand_address): Update prototype.
      	* output.h (output_address): Update prototype.
      	* target.def (print_operand_address): Add MODE argument.
      	* config/vax/vax.c (print_operand_address): Pass VOIDmode to
      	output_address.
      	(print_operand): Pass access mode to output_address.
      	* config/mcore/mcore.c (mcore_print_operand_address): Add MODE
      	argument.
      	(mcore_print_operand): Update calls to mcore_print_operand_address.
      	* config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
      	output_address.
      	* config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
      	output_address.
      	* config/tilegx/tilegx.c (output_memory_reference_mode): Remove
      	global.
      	(tilegx_print_operand): Don't set above global. Update calls to
      	output_address.
      	(tilegx_print_operand_address): Add MODE argument. Use instead of
      	output_memory_reference_mode global.
      	* config/frv/frv.c (frv_print_operand_address): Add MODE argument.
      	(frv_print_operand): Pass mode to frv_print_operand_address calls.
      	* config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
      	output_address.
      	* config/cris/cris.c (cris_print_operand_address): Add MODE
      	argument.
      	(cris_print_operand): Pass mode to output_address calls.
      	* config/spu/spu.c (print_operand): Pass mode to output_address
      	calls.
      	* config/aarch64/aarch64.h (aarch64_print_operand)
      	(aarch64_print_operand_address): Remove prototypes.
      	* config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
      	global.
      	(aarch64_print_operand): Make static. Update calls to
      	output_address.
      	(aarch64_print_operand_address): Add MODE argument. Use instead of
      	aarch64_memory_reference_mode global.
      	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
      	hooks.
      	* config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
      	Delete macro definitions.
      	* config/pa/pa.c (pa_print_operand): Pass mode in output_address
      	calls.
      	* config/xtensa/xtensa.c (print_operand): Pass mode in
      	output_address calls.
      	* config/h8300/h8300.c (h8300_print_operand_address): Add MODE
      	argument.
      	(h83000_print_operand): Update calls to h8300_print_operand_address
      	and output_address.
      	* config/ia64/ia64.c (ia64_print_operand_address): Add MODE
      	argument.
      	* config/tilepro/tilepro.c (output_memory_reference_mode): Delete
      	global.
      	(tilepro_print_operand): Pass mode to output_address.
      	(tilepro_print_operand_address): Add MODE argument. Use instead of
      	output_memory_reference_mode.
      	* config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
      	(nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
      	to output_address calls.
      	(nvptx_print_operand_address): Add MODE argument.
      	* config/alpha/alpha.c (print_operand): Pass mode argument in
      	output_address calls.
      	* config/m68k/m68k.c (print_operand): Pass mode argument in
      	output_address call.
      	* config/avr/avr.c (avr_print_operand_address): Add MODE argument.
      	(avr_print_operand): Update calls to avr_print_operand_address.
      	* config/sparc/sparc.c (sparc_print_operand_address): Add MODE
      	argument. Update calls to output_address.
      	(sparc_print_operand): Pass mode to output_address.
      	* config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
      	argument.
      	(iq2000_print_operand): Pass mode in output_address calls.
      	* config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
      	MODE argument.
      	(xstormy16_print_operand): Pass mode to
      	xstormy16_print_operand_address calls.
      	* config/mips/mips.c (mips_print_operand): Update calls to
      	output_address.
      	(mips_print_operand_address): Add MODE argument.
      	* config/epiphany/epiphany.c (epiphany_print_operand): Update calls
      	to output_address.
      	(epiphany_print_operand_address): Add MODE argument. Add FIXME note.
      	* config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
      	output_address.
      	* config/rx/rx.c (rx_print_operand_address): Add MODE argument.
      	(rx_print_operand): Update calls to output_address,
      	rx_print_operand_address.
      	* config/nds32/nds32.c (nds32_print_operand): Update calls to
      	output_address.
      	(nds32_print_operand_address): Add MODE argument.
      	* config/rs6000/rs6000.c (print_operand): Pass mem mode to
      	output_address calls.
      	* config/c6x/c6x.c (print_address_offset): Pass mem mode to
      	output_address call.
      	(c6x_print_address_operand): Update calls to output_address.
      	(c6x_print_operand_address): Pass mode to above.
      	* config/v850/v850.c (v850_print_operand_address): Add MODE
      	argument.
      	(v850_print_operand): Pass mode to v850_print_operand_address,
      	output_address.
      	* config/mmix/mmix.c (mmix_print_operand_address): Add MODE
      	argument.
      	(mmix_print_operand): Pass mode in output_address calls.
      	* config/sh/sh.c (sh_print_operand_address): Add MODE argument.
      	(sh_print_operand): Pass mem mode to output_address,
      	sh_print_operand_address.
      	* config/cr16/cr16.c (cr16_print_operand_address): Add MODE
      	argument.
      	(cr16_print_operand): Pass mode to output_address,
      	cr16_print_operand_address.
      	* config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
      	output_address.
      	* config/microblaze/microblaze.c (print_operand): Pass mode to
      	output_address.
      	* config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
      	output_address.
      	(nios2_print_operand_address): Add MODE argument. Update call to
      	nios2_print_operand_address.
      	* config/s390/s390.c (print_operand): Pass mode to output_address.
      	* config/m32c/m32c.c (m32c_print_operand_address): Add MODE
      	argument.
      	* config/arc/arc.c (arc_print_operand): Pass VOIDmode to
      	output_address.
      	* config/arm/arm.c (arm_print_operand_address): Add MODE argument.
      	Use instead of output_memory_reference_mode.
      	(output_memory_reference_mode): Delete global.
      	(arm_print_operand): Pass mem mode to output_address.
      	* config/m32r/m32r.c (m32r_print_operand_address): Add MODE
      	argument.
      	(m32r_print_operand): Pass mode to output_address.
      	* config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
      	argument.
      	(msp430_print_operand): Pass mode to msp430_print_operand_addr.
      	* config/i386/i386.c (ix86_print_operand): Pass mode to
      	output_address calls.
      	(ix86_print_operand_address): Add MODE argument.
      
      From-SVN: r230016
      Julian Brown committed
    • re PR middle-end/68251 (sorry, unimplemented: reverse storage order for BLKmode) · 7b95c729
      	PR middle-end/68251
      	* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
      	* tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
      	* tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
      	* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
      
      From-SVN: r230015
      Eric Botcazou committed
    • [RTL-ifcvt] PR rtl-optimization/67749: Do not emit separate SET insn in IF-ELSE case · 0780fbab
      	PR rtl-optimization/67749
      	* ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
      	case before emitting the two blocks.  Instead modify the register
      	in the corresponding final insn of the basic block.
      
      From-SVN: r230014
      Kyrylo Tkachov committed
    • Support init priority on Solaris · e6b6bf09
      	libgcc:
      	* config/ia64/crtbegin.S: Check HAVE_INITFINI_ARRAY_SUPPORT
      	value.
      	* config/ia64/crtend.S: Likewise.
      
      	gcc:
      	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
      	assembler syntax.
      	Support Solaris ld.
      	Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
      
      	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
      	HAVE_INITFINI_ARRAY_SUPPORT.
      	* config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT
      	value.
      
      	* configure.ac (gcc_cv_as_sparc_nobits): Remove.
      	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
      	Don't check HAVE_AS_SPARC_NOBITS.
      	Heed SECTION_NOTYPE.
      
      	* configure: Regenerate.
      	* config.in: Regenerate.
      
      From-SVN: r230013
      Rainer Orth committed
    • re PR middle-end/68253 (conditional jump or move depends on uninitialized value… · e1c78add
      re PR middle-end/68253 (conditional jump or move depends on uninitialized value in fold-const.c:5587)
      
      	PR middle-end/68253
      	* fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
      
      From-SVN: r230011
      Eric Botcazou committed
    • thumb2-slow-flash-data.c: Add missing typespec for labelref and check use of… · e732ca6c
      thumb2-slow-flash-data.c: Add missing typespec for labelref and check use of constant pool by looking for...
      
      2015-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * gcc.target/arm/thumb2-slow-flash-data.c: Add missing typespec for
          labelref and check use of constant pool by looking for .word and
          similar directives.
      
      From-SVN: r230010
      Thomas Preud'homme committed
    • re PR target/66326 (Floating point exception with -mfpmath=387 and -fcilkplus.) · a42062b1
      libcilkrts/
      
      2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>
      
      	PR target/66326
      	* runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state):
      	Use fnstcw instead fnstsw.
      
      
      gcc/testsuite
      
      2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>
      
      	PR target/66326
      	* g++.dg/cilk-plus/CK/pr66326.cc: New test.
      
      From-SVN: r230008
      Igor Zamyatin committed
    • i386: Add address spaces for fs/gs segments and tls · 00402c94
              * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
              __SEG_GS, __SEG_TLS.
              (ix86_register_pragmas): Register address spaces __seg_fs,
              __seg_gs, __seg_tls.
              * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
              (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
              (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
              * config/i386/i386.c (ix86_decompose_address): Likewise.
              (ix86_legitimate_address_p): Likewise.
              (memory_address_length): Likewise.  Check mem address space too.
              (ix86_print_operand): Use ix86_print_operand_address_as.
              (ix86_print_operand_address_as): Rename from
              ix86_print_operand_address, add new addr_space_t parameter.
              Validate that either the parameter or the ix86_address segment
              is default address space.  Handle ADDR_SPACE_SEG_TLS.
              (ix86_print_operand_address): New.
              (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
              (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
              (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
              (ix86_addr_space_zero_address_valid): New.
              (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
              * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
              * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
              * config/i386/predicates.md (address_no_seg_operand): Likewise.
              (vsib_address_operand): Likewise.
              (address_mpx_no_base_operand): Likewise.
              (address_mpx_no_index_operand): Likewise.
              * doc/extend.texi (x86 Named Address Spaces): New section.
      
              * gcc.target/i386/addr-space-1.c: New test.
              * gcc.target/i386/addr-space-2.c: New test.
              * gcc.target/i386/addr-space-3.c: New test.
      
      From-SVN: r230003
      Richard Henderson committed
    • i386: Disallow address spaces with string insns · 16734677
      While cmps and movs allow a segment override of the ds:esi
      source, the es:edi source/destination cannot be overriden.
      Simplify things in the backend for now by disallowing
      segments for string insns entirely.
      
      	* config/i386/i386.c (ix86_check_no_addr_space): New.
      	(decide_alg): Add have_as parameter.
      	(alg_usable_p): Likewise; disable rep algorithms if set.
      	(ix86_expand_set_or_movmem): Notice if either MEM has a
      	non-default address space.
      	(ix86_expand_strlen): Likewise.
      	* config/i386/i386.md (strmov, strset): Likewise.
      	(*strmovdi_rex_1): Use ix86_check_no_addr_space.
      	(*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
      	*strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
      	*rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
      	*cmpstrnqi_1, *strlenqi_1): Likewise.
      
      From-SVN: r230002
      Richard Henderson committed
    • i386: Handle address spaces in movabs patterns · fe5f9263
      	* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
      	(*movabs<mode>_2): Likewise.
      
      From-SVN: r230001
      Richard Henderson committed
    • Add hook for modifying debug info for address spaces · f736b911
              * dwarf2out.c (modified_type_die): Pass the address space number
              through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
              * target.def (TARGET_ADDR_SPACE_DEBUG): New.
              * targhooks.c (default_addr_space_debug): New.
              * targhooks.h (default_addr_space_debug): Declare.
              * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
              * doc/tm.texi: Rebuild.
      
      From-SVN: r230000
      Richard Henderson committed
    • Add TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID · 6626f970
              * gimple.c (check_loadstore): Return false when 0 is a valid address.
              * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
              null when 0 is valid in the source address space.
              * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
              * targhooks.c (default_addr_space_zero_address_valid): New.
              * targhooks.h (default_addr_space_zero_address_valid): Declare.
              * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
              * doc/tm.texi: Rebuild.
      
      From-SVN: r229999
      Richard Henderson committed
    • Avoid CSE of MEMs in different address spaces · bd68a3a7
              * cselib.c (add_mem_for_addr): Compare address spaces when
              matching memories.
              (cselib_lookup_mem): Likewise.
              * fold-const.c (operand_equal_p): Check address spaces of
              pointer types before checking integer constants.
      
      From-SVN: r229998
      Richard Henderson committed
    • re PR tree-optimization/66768 (address space gets lost on literal pointer) · f0ebde5a
      PR tree-opt/66768
      
              * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
              the correct type for the base.
      
      From-SVN: r229997
      Richard Henderson committed
    • [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier · d2e2feaa
      [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
      	* tree-into-ssa.c (names_to_release): No longer static.
      	* tree-into-ssa.h (names_to_release): Declare.
      	* tree-ssanames.c (verify_ssaname_freelists): New debug function.
      	(release_free_names_and_compact_live_names): New function extracted
      	from pass_release_ssa_names::execute.
      	(pass_release_ssa_names::execute): Use it.
      
      Co-Authored-By: Nathan Sidwell <nathan@acm.org>
      
      From-SVN: r229995
      Jeff Law committed