Skip to content
Snippets Groups Projects
  1. Aug 30, 2017
    • Richard Sandiford's avatar
      [2/77] Add an E_ prefix to case statements · 4e10a5a7
      Richard Sandiford authored
      
      All case statements need to be updated to use the prefixed names,
      since the unprefixed names will eventually not be integer constant
      expressions.  This patch does a mechanical substitution over the whole
      codebase.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
      	Prefix mode names with E_ in case statements.
      	* config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
      	(aarch64_split_simd_move): Likewise.
      	(aarch64_gen_storewb_pair): Likewise.
      	(aarch64_gen_loadwb_pair): Likewise.
      	(aarch64_gen_store_pair): Likewise.
      	(aarch64_gen_load_pair): Likewise.
      	(aarch64_get_condition_code_1): Likewise.
      	(aarch64_constant_pool_reload_icode): Likewise.
      	(get_rsqrte_type): Likewise.
      	(get_rsqrts_type): Likewise.
      	(get_recpe_type): Likewise.
      	(get_recps_type): Likewise.
      	(aarch64_gimplify_va_arg_expr): Likewise.
      	(aarch64_simd_container_mode): Likewise.
      	(aarch64_emit_load_exclusive): Likewise.
      	(aarch64_emit_store_exclusive): Likewise.
      	(aarch64_expand_compare_and_swap): Likewise.
      	(aarch64_gen_atomic_cas): Likewise.
      	(aarch64_emit_bic): Likewise.
      	(aarch64_emit_atomic_swap): Likewise.
      	(aarch64_emit_atomic_load_op): Likewise.
      	(aarch64_evpc_trn): Likewise.
      	(aarch64_evpc_uzp): Likewise.
      	(aarch64_evpc_zip): Likewise.
      	(aarch64_evpc_ext): Likewise.
      	(aarch64_evpc_rev): Likewise.
      	(aarch64_evpc_dup): Likewise.
      	(aarch64_gen_ccmp_first): Likewise.
      	(aarch64_gen_ccmp_next): Likewise.
      	* config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
      	(alpha_emit_xfloating_libcall): Likewise.
      	(emit_insxl): Likewise.
      	(alpha_arg_type): Likewise.
      	* config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
      	(arc_preferred_simd_mode): Likewise.
      	(arc_secondary_reload): Likewise.
      	(get_arc_condition_code): Likewise.
      	(arc_print_operand): Likewise.
      	(arc_legitimate_constant_p): Likewise.
      	* config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/arc/arc.md (casesi_load): Likewise.
      	(casesi_compact_jump): Likewise.
      	* config/arc/predicates.md (proper_comparison_operator): Likewise.
      	(cc_use_register): Likewise.
      	* config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
      	(arm_init_iwmmxt_builtins): Likewise.
      	* config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
      	(neon_expand_vector_init): Likewise.
      	(arm_attr_length_move_neon): Likewise.
      	(maybe_get_arm_condition_code): Likewise.
      	(arm_emit_vector_const): Likewise.
      	(arm_preferred_simd_mode): Likewise.
      	(arm_output_iwmmxt_tinsr): Likewise.
      	(thumb1_output_casesi): Likewise.
      	(thumb2_output_casesi): Likewise.
      	(arm_emit_load_exclusive): Likewise.
      	(arm_emit_store_exclusive): Likewise.
      	(arm_expand_compare_and_swap): Likewise.
      	(arm_evpc_neon_vuzp): Likewise.
      	(arm_evpc_neon_vzip): Likewise.
      	(arm_evpc_neon_vrev): Likewise.
      	(arm_evpc_neon_vtrn): Likewise.
      	(arm_evpc_neon_vext): Likewise.
      	(arm_validize_comparison): Likewise.
      	* config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
      	* config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
      	* config/avr/avr.c (avr_rtx_costs_1): Likewise.
      	* config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
      	(c6x_preferred_simd_mode): Likewise.
      	* config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
      	(epiphany_rtx_costs): Likewise.
      	* config/epiphany/predicates.md (proper_comparison_operator):
      	Likewise.
      	* config/frv/frv.c (condexec_memory_operand): Likewise.
      	(frv_emit_move): Likewise.
      	(output_move_single): Likewise.
      	(output_condmove_single): Likewise.
      	(frv_hard_regno_mode_ok): Likewise.
      	(frv_matching_accg_mode): Likewise.
      	* config/h8300/h8300.c (split_adds_subs): Likewise.
      	(h8300_rtx_costs): Likewise.
      	(h8300_print_operand): Likewise.
      	(compute_mov_length): Likewise.
      	(output_logical_op): Likewise.
      	(compute_logical_op_length): Likewise.
      	(compute_logical_op_cc): Likewise.
      	(h8300_shift_needs_scratch_p): Likewise.
      	(output_a_shift): Likewise.
      	(compute_a_shift_length): Likewise.
      	(compute_a_shift_cc): Likewise.
      	(expand_a_rotate): Likewise.
      	(output_a_rotate): Likewise.
      	* config/i386/i386.c (classify_argument): Likewise.
      	(function_arg_advance_32): Likewise.
      	(function_arg_32): Likewise.
      	(function_arg_64): Likewise.
      	(function_value_64): Likewise.
      	(ix86_gimplify_va_arg): Likewise.
      	(ix86_legitimate_constant_p): Likewise.
      	(put_condition_code): Likewise.
      	(split_double_mode): Likewise.
      	(ix86_avx256_split_vector_move_misalign): Likewise.
      	(ix86_expand_vector_logical_operator): Likewise.
      	(ix86_split_idivmod): Likewise.
      	(ix86_expand_adjust_ufix_to_sfix_si): Likewise.
      	(ix86_build_const_vector): Likewise.
      	(ix86_build_signbit_mask): Likewise.
      	(ix86_match_ccmode): Likewise.
      	(ix86_cc_modes_compatible): Likewise.
      	(ix86_expand_branch): Likewise.
      	(ix86_expand_sse_cmp): Likewise.
      	(ix86_expand_sse_movcc): Likewise.
      	(ix86_expand_int_sse_cmp): Likewise.
      	(ix86_expand_vec_perm_vpermi2): Likewise.
      	(ix86_expand_vec_perm): Likewise.
      	(ix86_expand_sse_unpack): Likewise.
      	(ix86_expand_int_addcc): Likewise.
      	(ix86_split_to_parts): Likewise.
      	(ix86_vectorize_builtin_gather): Likewise.
      	(ix86_vectorize_builtin_scatter): Likewise.
      	(avx_vpermilp_parallel): Likewise.
      	(inline_memory_move_cost): Likewise.
      	(ix86_tieable_integer_mode_p): Likewise.
      	(x86_maybe_negate_const_int): Likewise.
      	(ix86_expand_vector_init_duplicate): Likewise.
      	(ix86_expand_vector_init_one_nonzero): Likewise.
      	(ix86_expand_vector_init_one_var): Likewise.
      	(ix86_expand_vector_init_concat): Likewise.
      	(ix86_expand_vector_init_interleave): Likewise.
      	(ix86_expand_vector_init_general): Likewise.
      	(ix86_expand_vector_set): Likewise.
      	(ix86_expand_vector_extract): Likewise.
      	(emit_reduc_half): Likewise.
      	(ix86_emit_i387_round): Likewise.
      	(ix86_mangle_type): Likewise.
      	(ix86_expand_round_sse4): Likewise.
      	(expand_vec_perm_blend): Likewise.
      	(canonicalize_vector_int_perm): Likewise.
      	(ix86_expand_vec_one_operand_perm_avx512): Likewise.
      	(expand_vec_perm_1): Likewise.
      	(expand_vec_perm_interleave3): Likewise.
      	(expand_vec_perm_even_odd_pack): Likewise.
      	(expand_vec_perm_even_odd_1): Likewise.
      	(expand_vec_perm_broadcast_1): Likewise.
      	(ix86_vectorize_vec_perm_const_ok): Likewise.
      	(ix86_expand_vecop_qihi): Likewise.
      	(ix86_expand_mul_widen_hilo): Likewise.
      	(ix86_expand_sse2_abs): Likewise.
      	(ix86_expand_pextr): Likewise.
      	(ix86_expand_pinsr): Likewise.
      	(ix86_preferred_simd_mode): Likewise.
      	(ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
      	* config/i386/sse.md (*andnot<mode>3): Likewise.
      	(<mask_codefor><code><mode>3<mask_name>): Likewise.
      	(*<code><mode>3): Likewise.
      	* config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
      	(ia64_expand_atomic_op): Likewise.
      	(ia64_arg_type): Likewise.
      	(ia64_mode_to_int): Likewise.
      	(ia64_scalar_mode_supported_p): Likewise.
      	(ia64_vector_mode_supported_p): Likewise.
      	(expand_vec_perm_broadcast): Likewise.
      	* config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
      	(iq2000_function_arg_advance): Likewise.
      	(iq2000_function_arg): Likewise.
      	* config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
      	* config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
      	(m68k_libcall_value): Likewise.
      	(m68k_function_value): Likewise.
      	(sched_attr_op_type): Likewise.
      	* config/mcore/mcore.c (mcore_output_move): Likewise.
      	* config/microblaze/microblaze.c (microblaze_function_arg_advance):
      	Likewise.
      	(microblaze_function_arg): Likewise.
      	* config/mips/mips.c (mips16_build_call_stub): Likewise.
      	(mips_print_operand): Likewise.
      	(mips_mode_ok_for_mov_fmt_p): Likewise.
      	(mips_vector_mode_supported_p): Likewise.
      	(mips_preferred_simd_mode): Likewise.
      	(mips_expand_vpc_loongson_even_odd): Likewise.
      	(mips_expand_vec_unpack): Likewise.
      	(mips_expand_vi_broadcast): Likewise.
      	(mips_expand_vector_init): Likewise.
      	(mips_expand_vec_reduc): Likewise.
      	(mips_expand_msa_cmp): Likewise.
      	* config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
      	* config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
      	(cc_flags_for_mode): Likewise.
      	* config/msp430/msp430.c (msp430_print_operand): Likewise.
      	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
      	(nds32_output_casesi_pc_relative): Likewise.
      	* config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
      	(nvptx_gen_unpack): Likewise.
      	(nvptx_gen_pack): Likewise.
      	(nvptx_gen_shuffle): Likewise.
      	(nvptx_gen_wcast): Likewise.
      	(nvptx_preferred_simd_mode): Likewise.
      	* config/pa/pa.c (pa_secondary_reload): Likewise.
      	* config/pa/predicates.md (base14_operand): Likewise.
      	* config/powerpcspe/powerpcspe-c.c
      	(altivec_resolve_overloaded_builtin): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
      	Likewise.
      	(rs6000_preferred_simd_mode): Likewise.
      	(output_vec_const_move): Likewise.
      	(rs6000_expand_vector_extract): Likewise.
      	(rs6000_split_vec_extract_var): Likewise.
      	(reg_offset_addressing_ok_p): Likewise.
      	(rs6000_legitimate_offset_address_p): Likewise.
      	(rs6000_legitimize_address): Likewise.
      	(rs6000_emit_set_const): Likewise.
      	(rs6000_const_vec): Likewise.
      	(rs6000_emit_move): Likewise.
      	(spe_build_register_parallel): Likewise.
      	(rs6000_darwin64_record_arg_recurse): Likewise.
      	(swap_selector_for_mode): Likewise.
      	(spe_init_builtins): Likewise.
      	(paired_init_builtins): Likewise.
      	(altivec_init_builtins): Likewise.
      	(do_load_for_compare): Likewise.
      	(rs6000_generate_compare): Likewise.
      	(rs6000_expand_float128_convert): Likewise.
      	(emit_load_locked): Likewise.
      	(emit_store_conditional): Likewise.
      	(rs6000_output_function_epilogue): Likewise.
      	(rs6000_handle_altivec_attribute): Likewise.
      	(rs6000_function_value): Likewise.
      	(emit_fusion_gpr_load): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
      	(fusion_gpr_mem_load): Likewise.
      	(fusion_addis_mem_combo_load): Likewise.
      	(fusion_addis_mem_combo_store): Likewise.
      	* config/rs6000/predicates.md (easy_fp_constant): Likewise.
      	(fusion_gpr_mem_load): Likewise.
      	(fusion_addis_mem_combo_load): Likewise.
      	(fusion_addis_mem_combo_store): Likewise.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Likewise.
      	* config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
      	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
      	(rs6000_preferred_simd_mode): Likewise.
      	(output_vec_const_move): Likewise.
      	(rs6000_expand_vector_extract): Likewise.
      	(rs6000_split_vec_extract_var): Likewise.
      	(reg_offset_addressing_ok_p): Likewise.
      	(rs6000_legitimate_offset_address_p): Likewise.
      	(rs6000_legitimize_address): Likewise.
      	(rs6000_emit_set_const): Likewise.
      	(rs6000_const_vec): Likewise.
      	(rs6000_emit_move): Likewise.
      	(rs6000_darwin64_record_arg_recurse): Likewise.
      	(swap_selector_for_mode): Likewise.
      	(paired_init_builtins): Likewise.
      	(altivec_init_builtins): Likewise.
      	(rs6000_expand_float128_convert): Likewise.
      	(emit_load_locked): Likewise.
      	(emit_store_conditional): Likewise.
      	(rs6000_output_function_epilogue): Likewise.
      	(rs6000_handle_altivec_attribute): Likewise.
      	(rs6000_function_value): Likewise.
      	(emit_fusion_gpr_load): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/rx/rx.c (rx_gen_move_template): Likewise.
      	(flags_from_mode): Likewise.
      	* config/s390/predicates.md (s390_alc_comparison): Likewise.
      	(s390_slb_comparison): Likewise.
      	* config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
      	(s390_vector_mode_supported_p): Likewise.
      	(s390_cc_modes_compatible): Likewise.
      	(s390_match_ccmode_set): Likewise.
      	(s390_canonicalize_comparison): Likewise.
      	(s390_emit_compare_and_swap): Likewise.
      	(s390_branch_condition_mask): Likewise.
      	(s390_rtx_costs): Likewise.
      	(s390_secondary_reload): Likewise.
      	(__SECONDARY_RELOAD_CASE): Likewise.
      	(s390_expand_cs): Likewise.
      	(s390_preferred_simd_mode): Likewise.
      	* config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
      	* config/sh/sh.c (sh_print_operand): Likewise.
      	(dump_table): Likewise.
      	(sh_secondary_reload): Likewise.
      	* config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/sh/sh.md (casesi_worker_1): Likewise.
      	(casesi_worker_2): Likewise.
      	* config/sparc/predicates.md (icc_comparison_operator): Likewise.
      	(fcc_comparison_operator): Likewise.
      	* config/sparc/sparc.c (sparc_expand_move): Likewise.
      	(emit_soft_tfmode_cvt): Likewise.
      	(sparc_preferred_simd_mode): Likewise.
      	(output_cbranch): Likewise.
      	(sparc_print_operand): Likewise.
      	(sparc_expand_vec_perm_bmask): Likewise.
      	(vector_init_bshuffle): Likewise.
      	* config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
      	(spu_vector_mode_supported_p): Likewise.
      	(spu_expand_insv): Likewise.
      	(spu_emit_branch_or_set): Likewise.
      	(spu_handle_vector_attribute): Likewise.
      	(spu_builtin_splats): Likewise.
      	(spu_builtin_extract): Likewise.
      	(spu_builtin_promote): Likewise.
      	(spu_expand_sign_extend): Likewise.
      	* config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
      	(tilegx_simd_int): Likewise.
      	* config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
      	(tilepro_simd_int): Likewise.
      	* config/v850/v850.c (const_double_split): Likewise.
      	(v850_print_operand): Likewise.
      	(ep_memory_offset): Likewise.
      	* config/vax/vax.c (vax_rtx_costs): Likewise.
      	(vax_output_int_move): Likewise.
      	(vax_output_int_add): Likewise.
      	(vax_output_int_subtract): Likewise.
      	* config/visium/predicates.md (visium_branch_operator): Likewise.
      	* config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
      	(visium_print_operand_address): Likewise.
      	* config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
      	* config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
      	(xtensa_expand_conditional_branch): Likewise.
      	(xtensa_copy_incoming_a7): Likewise.
      	(xtensa_output_literal): Likewise.
      	* dfp.c (decimal_real_maxval): Likewise.
      	* targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
      
      gcc/c-family/
      	* c-cppbuiltin.c (mode_has_fma): Prefix mode names with E_ in
      	case statements.
      
      gcc/objc/
      	* objc-encoding.c (encode_gnu_bitfield): Prefix mode names with E_ in
      	case statements.
      
      libobjc/
      	* encoding.c (_darwin_rs6000_special_round_type_align): Prefix mode
      	names with E_ in case statements.
      
      Co-Authored-By: default avatarAlan Hayward <alan.hayward@arm.com>
      Co-Authored-By: default avatarDavid Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251453
      4e10a5a7
    • Richard Sandiford's avatar
      [1/77] Add an E_ prefix to mode names · 0d4a1197
      Richard Sandiford authored
      
      Later patches will add wrapper types for specific classes
      of mode.  E.g. SImode will be a scalar_int_mode, SFmode will be a
      scalar_float_mode, etc.  This patch prepares for that change by adding
      an E_ prefix to the mode enum values.  It also adds #defines that map
      the unprefixed names to the prefixed names; e.g:
      
        #define QImode E_QImode
      
      Later patches will change this to use things like scalar_int_mode
      where appropriate.
      
      The patch continues to use enum values to initialise static data.
      This isn't necessary for correctness, but it cuts down on the amount
      of load-time initialisation and shouldn't have any downsides.
      
      The patch also changes things like:
      
        cmp_mode == DImode ? DFmode : DImode
      
      to:
      
        cmp_mode == DImode ? E_DFmode : E_DImode
      
      This is because DImode and DFmode will eventually be different
      classes, so the original ?: wouldn't be well-formed.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
      	(mode_nunits_inline): Likewise.
      	(mode_inner_inline): Likewise.
      	(mode_unit_size_inline): Likewise.
      	(mode_unit_precision_inline): Likewise.
      	(emit_insn_modes_h): Likewise.  Also emit a #define of the
      	unprefixed name.
      	(emit_mode_wider): Add an E_ prefix to mode names.
      	(emit_mode_complex): Likewise.
      	(emit_mode_inner): Likewise.
      	(emit_mode_adjustments): Likewise.
      	(emit_mode_int_n): Likewise.
      	* config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
      	(v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
      	(v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
      	(si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
      	(CRC32_BUILTIN, ENTRY): Likewise.
      	* config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
      	(aarch64_pop_regs): Likewise.
      	(aarch64_process_components): Likewise.
      	* config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
      	* config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
      	(v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
      	(v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
      	* config/arm/arm.c (arm_init_libfuncs): Likewise.
      	* config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
      	Likewise.
      	* config/i386/i386-builtin.def (pcmpestr): Likewise.
      	(pcmpistr): Likewise.
      	* config/microblaze/microblaze.c (double_memory_operand): Likewise.
      	* config/mmix/mmix.c (mmix_output_condition): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
      	Likewise.
      	* config/rl78/rl78.c (mduc_regs): Likewise.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
      	(htm_expand_builtin): Likewise.
      	* config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
      	* config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
      	* config/xtensa/xtensa.c (print_operand): Likewise.
      	* expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
      	(NUM_MODE_VECTOR_INT): Likewise.
      	* genoutput.c (null_operand): Likewise.
      	(output_operand_data): Likewise.
      	* genrecog.c (print_parameter_value): Likewise.
      	* lra.c (debug_operand_data): Likewise.
      
      Co-Authored-By: default avatarAlan Hayward <alan.hayward@arm.com>
      Co-Authored-By: default avatarDavid Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251452
      0d4a1197
    • Richard Sandiford's avatar
      Split out parts of scompare_loc_descriptor and emit_store_flag · 8afacf2c
      Richard Sandiford authored
      This patch splits some cases out of scompare_loc_descriptor and
      emit_store_flag, which helps with the upcoming machmode series.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* dwarf2out.c (scompare_loc_descriptor_wide)
      	(scompare_loc_descriptor_narrow): New functions, split out from...
      	(scompare_loc_descriptor): ...here.
      	* expmed.c (emit_store_flag_int): New function, split out from...
      	(emit_store_flag): ...here.
      
      From-SVN: r251451
      8afacf2c
    • Richard Biener's avatar
      dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames. · 70704d42
      Richard Biener authored
      2017-08-30  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
      	(dwarf2out_early_finish): Move setting of AT_pubnames from
      	early debug output to early finish.
      
      From-SVN: r251450
      70704d42
    • Jozef Lawrynowicz's avatar
      msp430.h: Pass -mcode/data-region to the linker and -mdata-region to the assembler. · 39459216
      Jozef Lawrynowicz authored
      	* gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
      	and -mdata-region to the assembler.
      
      From-SVN: r251449
      39459216
    • Richard Biener's avatar
      dwarf2out.c (add_dwarf_attr): Check we don't add duplicate attributes. · 36ef8e6f
      Richard Biener authored
      2017-08-30  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
      	attributes.
      	(gen_subprogram_die): Add DW_AT_object_pointer only early.
      	(dwarf2out_early_global_decl): Only generate a DIE for the
      	abstract origin if it doesn't already exist or is a declaration DIE.
      	(resolve_addr): Do not add the linkage name twice when
      	generating a stub DIE for the DW_TAG_GNU_call_site target.
      
      	* g++.dg/pr78112-2.C: Do not expect duplicate DW_AT_object_pointer.
      
      From-SVN: r251448
      36ef8e6f
    • Richard Sandiford's avatar
      [rs6000] int->machine_mode in rs6000-c.c · 68905c28
      Richard Sandiford authored
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Use machine_mode rather than int for arg1_mode.
      
      From-SVN: r251447
      68905c28
    • GCC Administrator's avatar
      Daily bump. · ceafcc5c
      GCC Administrator authored
      From-SVN: r251444
      ceafcc5c
  2. Aug 29, 2017
    • Ian Lance Taylor's avatar
      53a36c26
    • Ian Lance Taylor's avatar
      6222bddc
    • Jason Merrill's avatar
      PR c++/81236 - ICE with template-id in generic lambda · 88b811bd
      Jason Merrill authored
      	* semantics.c (finish_id_expression): Remove special dependent case.
      	Avoid some later pieces when dependent.
      	(finish_qualified_id_expr): Do normal BASELINK handling in a
      	template.  Always build a SCOPE_REF for a destructor BIT_NOT_EXPR.
      	(parsing_default_capturing_generic_lambda_in_template): Remove.
      	* parser.c (cp_parser_postfix_dot_deref_expression): Always give an
      	error for types that will never be complete.
      	* mangle.c (write_expression): Add sanity check.
      	* tree.c (build_qualified_name): Add sanity check.
      	(cp_walk_subtrees): Walk into the class context of a BASELINK.
      	* lambda.c (add_capture): Improve diagnostic for generic lambda
      	capture failure.
      	* call.c (build_new_method_call_1): Print the right constructor
      	name.
      
      From-SVN: r251438
      88b811bd
    • Ian Lance Taylor's avatar
      libgo: fix Stat_t on AIX · 888a9854
      Ian Lance Taylor authored
          
          Reviewed-on: https://go-review.googlesource.com/59911
      
      From-SVN: r251436
      888a9854
    • Ian Lance Taylor's avatar
      6fa7df98
    • Jason Merrill's avatar
      tweak ChangeLog · e2d59a13
      Jason Merrill authored
      From-SVN: r251434
      e2d59a13
    • Jason Merrill's avatar
      Reimplement handling of lambdas in templates. · f44a8dd5
      Jason Merrill authored
      	* cp-tree.h (LAMBDA_FUNCTION_P): Check DECL_DECLARES_FUNCTION_P.
      	* decl.c (start_preparsed_function): Call start_lambda_scope.
      	(finish_function): Call finish_lambda_scope.
      	* init.c (get_nsdmi): Call start/finish_lambda_scope.
      	* lambda.c (start_lambda_scope): Only ignore VAR_DECL in a function.
      	* parser.c (cp_parser_function_definition_after_declarator): Don't
      	call start/finish_lambda_scope.
      	* pt.c (retrieve_specialization): Ignore lambda functions in
      	templates.
      	(find_parameter_packs_r): Ignore capture proxies.  Look into
      	lambdas.
      	(check_for_bare_parameter_packs): Allow bare packs in lambdas.
      	(tsubst_default_argument): Call start/finish_lambda_scope.
      	(tsubst_function_decl): Handle lambda functions differently.
      	(tsubst_template_decl): Likewise.
      	(tsubst_expr) [DECL_EXPR]: Skip closure declarations and capture
      	proxies.
      	(tsubst_lambda_expr): Create a new closure rather than instantiate
      	the one from the template.
      	(tsubst_copy_and_build): Don't register a specialization of a pack.
      	(regenerate_decl_from_template): Call start/finish_lambda_scope.
      	(instantiate_decl): Remove special lambda function handling.
      	* semantics.c (process_outer_var_ref): Remove special generic lambda
      	handling.  Don't implicitly capture in a lambda in a template.  Look
      	for an existing proxy.
      	* class.c (current_nonlambda_class_type): Use decl_type_context.
      
      From-SVN: r251433
      f44a8dd5
    • Michael Meissner's avatar
      re PR target/82015 (PowerPC should check if 2nd argument to... · 72932ccf
      Michael Meissner authored
      re PR target/82015 (PowerPC should check if 2nd argument to __builtin_unpackv1ti and similar functions is 0 or 1)
      
      [gcc]
      2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/82015
      	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
      	that the second argument of the built-in functions to unpack
      	128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
      	switch statement instead a lot of if statements.
      	* config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
      	Allow 64-bit values to be in Altivec registers as well as
      	traditional floating point registers.
      	(pack<mode>, FMOVE128_VSX iterator): Likewise.
      
      [gcc/testsuite]
      2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/82015
      	* gcc.target/powerpc/pr82015.c: New test.
      
      From-SVN: r251432
      72932ccf
    • Jason Merrill's avatar
      PR c++/78840 - ICE with const and nested generic lambda · 10f61650
      Jason Merrill authored
      	* g++.dg/cpp1y/lambda-generic-const5.C: New.
      
      From-SVN: r251431
      10f61650
    • Jason Merrill's avatar
      Remove unnecessary LAMBDA_EXPR fields. · 9925f216
      Jason Merrill authored
      	* cp-tree.h (LAMBDA_EXPR_CLOSURE): Use TREE_TYPE.
      	(LAMBDA_EXPR_RETURN_TYPE): Remove.
      	(struct tree_lambda_expr): Remove closure and return_type fields.
      	* lambda.c (build_lambda_expr): Don't set LAMBDA_EXPR_RETURN_TYPE.
      	* pt.c (tsubst_copy_and_build): Likewise.
      	* parser.c (cp_parser_lambda_declarator_opt): Track return type.
      	(cp_parser_lambda_body): Adjust unspecified return type check.
      	* ptree.c (cxx_print_lambda_node): Don't print closure or
      	return type.
      
      From-SVN: r251430
      9925f216
    • Jason Merrill's avatar
      PR c++/80935 - wrong C++17 error with lambda · 5d4e573b
      Jason Merrill authored
      	* decl.c (check_for_uninitialized_const_var): Check
      	is_instantiation_of_constexpr.
      	* constexpr.c (ensure_literal_type_for_constexpr_object): Check
      	is_instantiation_of_constexpr.
      	(potential_constant_expression_1): Check var_in_maybe_constexpr_fn.
      
      From-SVN: r251429
      5d4e573b
    • Jason Merrill's avatar
      Various small fixes. · 11399477
      Jason Merrill authored
      	* lambda.c (build_lambda_object): Check for error_mark_node.
      	* pt.c (make_pack_expansion): Set PACK_EXPANSION_LOCAL_P on the type
      	pack as well.
      	(tsubst_decl) [FUNCTION_DECL]: Set DECL_CONTEXT on the parameters.
      	(tsubst) [TEMPLATE_PARM_INDEX]: Check for error_mark_node.
      
      From-SVN: r251428
      11399477
    • Jason Merrill's avatar
      PR c++/80767 - unnecessary instantiation of generic lambda · 1a9de5b6
      Jason Merrill authored
      	* call.c (convert_like_real): Call build_user_type_conversion_1 if
      	cand is null.
      	(add_conv_candidate): Build a ck_user conversion with no candidate.
      
      From-SVN: r251427
      1a9de5b6
    • Jason Merrill's avatar
      Fix lambdas in template default argument of inherited ctor. · b3eae0dd
      Jason Merrill authored
      	* method.c (synthesized_method_base_walk): Replace an inherited
      	template with its specialization.
      	(synthesized_method_walk): Make inheriting_ctor a pointer.
      	(maybe_explain_implicit_delete, explain_implicit_non_constexpr)
      	(deduce_inheriting_ctor, implicitly_declare_fn): Adjust.
      
      From-SVN: r251426
      b3eae0dd
    • Jason Merrill's avatar
      Adjust C++17 class deduction use of DECL_ABSTRACT_ORIGIN. · 4cc20315
      Jason Merrill authored
      	* pt.c (build_deduction_guide): Set DECL_ABSTRACT_ORIGIN on the
      	template, not the function.
      	(template_guide_p): Adjust.
      
      From-SVN: r251425
      4cc20315
    • Jason Merrill's avatar
      Support copying local_specializations. · 82b0ce2e
      Jason Merrill authored
      	* cp-tree.h (enum lss_policy): New.
      	(local_specialization_stack): Add policy parameter to default ctor.
      	* pt.c (local_specialization_stack): Copy local_specializations if
      	lss_copy.
      
      From-SVN: r251424
      82b0ce2e
    • Jason Merrill's avatar
      Add immediate potential_constant_expression variants. · a0ab7ccd
      Jason Merrill authored
      	* constexpr.c (potential_constant_expression_1): Add "now" parm.
      	(is_constant_expression, require_constant_expression): New.
      	(is_static_init_expression, is_nondependent_constant_expression)
      	(is_nondependent_static_init_expression): Drop "potential".
      	* except.c (build_must_not_throw_expr): Do type conversion on
      	value-dependent argument.
      	* pt.c, semantics.c, typeck2.c: Use variants without "potential".
      
      From-SVN: r251423
      a0ab7ccd
    • Jason Merrill's avatar
      Instantiate default arguments/member initializers once. · 12659e10
      Jason Merrill authored
      	* init.c (get_nsdmi): Remember NSDMI instantiations.
      	* parser.c (inject_this_parameter): Be more picky about
      	current_class_ptr.
      	* pt.c (tsubst_copy): Simplify 'this' handling.
      	(tsubst_default_argument): Remember default argument
      	instantiations.  Take parameter number.
      	(tsubst_default_arguments): Pass it.
      	* call.c (convert_default_arg): Likewise.
      
      From-SVN: r251422
      12659e10
    • Jason Merrill's avatar
      Fix default argument conversion failure and SFINAE. · 1aeafba2
      Jason Merrill authored
      	* call.c (build_over_call): Check convert_default_arg result for
      	error_mark_node.
      	* parser.c (cp_parser_late_parsing_default_args): Remember
      	error_mark_node.
      
      From-SVN: r251421
      1aeafba2
    • Ian Lance Taylor's avatar
      runtime: fix lfstack for 64-bit AIX · a2aa807e
      Ian Lance Taylor authored
          
          Reviewed-on: https://go-review.googlesource.com/57550
      
      From-SVN: r251420
      a2aa807e
    • Uros Bizjak's avatar
      *.c: Remove excess braces from target selectors. · 4e395d91
      Uros Bizjak authored
      	* gcc.target/i386/*.c: Remove excess braces from target selectors.
      
      From-SVN: r251419
      4e395d91
    • Alexander Monakov's avatar
      ira-costs: avoid missing base registers in record_address_regs · 9f1c93df
      Alexander Monakov authored
      	* ira-costs.c (record_address_regs): Handle both operands of PLUS for
      	MAX_REGS_PER_ADDRESS == 1.
      
      From-SVN: r251418
      9f1c93df
    • Uros Bizjak's avatar
      20030926-1.c: Add dg-additional-options. · 2ffc0382
      Uros Bizjak authored
      	* gcc.target/i386/20030926-1.c: Add dg-additional-options.
      	* gcc.target/i386/abi-2.c: Ditto.
      	* gcc.target/i386/interrupt-sibcall-2.c: Ditto.
      	* gcc.target/i386/pr22076.c: Ditto.
      	* gcc.target/i386/pr37216.c: Ditto.
      	* gcc.target/i386/pr39431.c: Ditto.
      	* gcc.target/i386/pr40906-1.c: Ditto.
      	* gcc.target/i386/pr40906-2.c: Ditto.
      	* gcc.target/i386/pr43766.c: Ditto.
      	* gcc.target/i386/pr46226.c: Ditto.
      	* gcc.target/i386/pr46470.c: Ditto.
      	* gcc.target/i386/pr59929.c: Ditto.
      	* gcc.target/i386/sse-10.c: Ditto.
      	* gcc.target/i386/vararg-1.c: Ditto.
      	* gcc.target/i386/vararg-1.c: Ditto.
      	* gcc.target/i386/asm-6.c: Compile for fpic target only.
      	* gcc.target/i386/pr44223.c: Ditto.
      	* gcc.target/i386/bitfield1.c (dg-options): Remove target selector.
      	* gcc.target/i386/bitfield2.c (dg-options): Ditto.
      	* gcc.target/i386/pr67480.c (dg-options): Ditto.
      	* gcc.target/i386/vect-cond-1.c (dg-options): Ditto.
      	* gcc.target/i386/bittest.c (scan-assembler-times): Ditto.
      	* gcc.target/i386/darwin-fpmath.c (dg-do): Simplify target selector.
      	* gcc.target/i386/mvc9.c: Compile for lto target only.
      	* gcc.target/i386/pr45234.c: Compile for ia32 target only.
      	* gcc.target/i386/pr49866.c: Compile for lp64 target only.
      	* gcc.target/i386/pr57091.c: Ditto.
      	* gcc.target/i386/pr61599-2.c: Ditto.
      
      From-SVN: r251417
      2ffc0382
    • Uros Bizjak's avatar
      i386.opt (flag_fentry): Do not init to -1. · be0ffecc
      Uros Bizjak authored
      	* config/i386/i386.opt (flag_fentry): Do not init to -1.
      	* config/i386/i386.c (ix86_option_override_internal): Simplify
      	setting of opts->x_flag_entry.
      
      From-SVN: r251416
      be0ffecc
    • Bill Schmidt's avatar
      re PR tree-optimization/81503 (Wrong code at -O2) · 8eb91869
      Bill Schmidt authored
      
      [gcc]
      
      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.
      
      [gcc/testsuite]
      
      2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/81503
      	* gcc.c-torture/execute/pr81503.c: New file.
      
      
      Co-Authored-By: default avatarJakub Jelinek <jakub@redhat.com>
      Co-Authored-By: default avatarRichard Biener <rguenther@suse.de>
      
      From-SVN: r251414
      8eb91869
    • Martin Liska's avatar
      Make expansion of balanced binary trees of switches on tree level. · 9dc3d6a9
      Martin Liska authored
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	* passes.def: Include pass_lower_switch.
      	* stmt.c (dump_case_nodes): Remove and move to
      	tree-switch-conversion.
      	(case_values_threshold): Likewise.
      	(expand_switch_as_decision_tree_p): Likewise.
      	(emit_case_decision_tree): Likewise.
      	(expand_case): Likewise.
      	(balance_case_nodes): Likewise.
      	(node_has_low_bound): Likewise.
      	(node_has_high_bound): Likewise.
      	(node_is_bounded): Likewise.
      	(emit_case_nodes): Likewise.
      	(struct simple_case_node): New struct.
      	(add_case_node): Remove.
      	(emit_case_dispatch_table): Use vector instead of case_list.
      	(reset_out_edges_aux): Remove.
      	(compute_cases_per_edge): Likewise.
      	(expand_case): Build list of simple_case_node.
      	(expand_sjlj_dispatch_table): Use it.
      	* tree-switch-conversion.c (struct case_node): Moved from
      	stmt.c and adjusted.
      	(emit_case_nodes): Likewise.
      	(node_has_low_bound): Likewise.
      	(node_has_high_bound): Likewise.
      	(node_is_bounded): Likewise.
      	(case_values_threshold): Likewise.
      	(reset_out_edges_aux): Likewise.
      	(compute_cases_per_edge): Likewise.
      	(add_case_node): Likewise.
      	(dump_case_nodes): Likewise.
      	(balance_case_nodes): Likewise.
      	(expand_switch_as_decision_tree_p): Likewise.
      	(emit_jump): Likewise.
      	(emit_case_decision_tree): Likewise.
      	(try_switch_expansion): Likewise.
      	(do_jump_if_equal): Likewise.
      	(emit_cmp_and_jump_insns): Likewise.
      	(fix_phi_operands_for_edge): New function.
      	(record_phi_operand_mapping): Likewise.
      	(class pass_lower_switch): New pass.
      	(pass_lower_switch::execute): New function.
      	(make_pass_lower_switch): Likewise.
      	(conditional_probability):
      	* timevar.def: Add TV_TREE_SWITCH_LOWERING.
      	* tree-pass.h: Add make_pass_lower_switch.
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/tree-prof/update-loopch.c: Scan patterns in
      	switchlower.
      	* gcc.dg/tree-ssa/vrp104.c: Likewise.
      
      From-SVN: r251412
      9dc3d6a9
    • Jozef Lawrynowicz's avatar
      re PR target/80993 ([msp430] __attribute__((interrupt)) should imply __attribute__((used))) · 10bcba61
      Jozef Lawrynowicz authored
      	PR target/80993
      	* gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
      	handlers as used.
      
      From-SVN: r251410
      10bcba61
    • Richard Biener's avatar
      dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a... · 12d84791
      Richard Biener authored
      dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a DW_AT_inline attribute twice.
      
      2017-08-29  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (add_dwarf_attr): When checking is enabled verify
      	we do not add a DW_AT_inline attribute twice.
      	(gen_subprogram_die): Remove code setting DW_AT_inline on
      	DECL_ABSTRACT_P nodes.
      
      From-SVN: r251409
      12d84791
    • Martin Liska's avatar
      Fix --help=target (Ada) (PR other/39851) · 0694da45
      Martin Liska authored
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL.
      
      From-SVN: r251406
      0694da45
    • Richard Sandiford's avatar
      Set the call nothrow flag more often · a844293d
      Richard Sandiford authored
      This patch sets the nothrow flag for various calls to internal functions
      that are not inherently NOTHROW (and so can't be declared that way in
      internal-fn.def) but that are used in contexts that can guarantee
      NOTHROWness.
      
      2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* gimplify.c (gimplify_call_expr): Copy the nothrow flag to
      	calls to internal functions.
      	(gimplify_modify_expr): Likewise.
      	* tree-call-cdce.c (use_internal_fn): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	(convert_to_divmod): Set the nothrow flag.
      	* tree-if-conv.c (predicate_mem_writes):  Likewise.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
      	(vectorizable_call): Likewise.
      	(vectorizable_store): Likewise.
      	(vectorizable_load): Likewise.
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
      	(vect_recog_mask_conversion_pattern): Likewise.
      
      From-SVN: r251401
      a844293d
    • Martin Liska's avatar
      Fix --help=target (PR other/39851). · 130fcab0
      Martin Liska authored
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* gcc.c (driver_handle_option): Add new argument.
      	* opts-common.c (handle_option): Pass
      	target_option_override_hook.
      	* opts-global.c (lang_handle_option): Add new option.
      	(set_default_handlers):  Add new argument.
      	(decode_options): Likewise.
      	* opts.c (target_handle_option): Likewise.
      	(common_handle_option): Call target_option_override_hook.
      	* opts.h (struct cl_option_handler_func): Add hook for
      	target option override.
      	(struct cl_option_handlers): Likewise.
      	(set_default_handlers): Add new argument.
      	(decode_options): Likewise.
      	(common_handle_option): Likewise.
      	(target_handle_option): Likewise.
      	* toplev.c (toplev::main): Pass targetm.target_option.override
      	hook.
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* c-common.c (parse_optimize_options): Add argument to function
      	call.
      	* c-pragma.c (handle_pragma_diagnostic): Likewise.
      
      From-SVN: r251400
      130fcab0
    • Richard Biener's avatar
      tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine life to the active subtree. · faa5399b
      Richard Biener authored
      
      2017-08-29  Richard Biener  <rguenther@suse.de>
      	Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
      
      	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
      	life to the active subtree.
      
      	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c: New testcase.
      
      Co-Authored-By: default avatarDominik Infuehr <dominik.infuehr@theobroma-systems.com>
      
      From-SVN: r251398
      faa5399b
Loading