1. 17 Jan, 2015 11 commits
    • DR 488 PR libstdc++/58357 · 1d0a12dc
      	DR 488
      	PR libstdc++/58357
      	* include/bits/algorithmfwd.h (rotate): Return an iterator.
      	* include/bits/stl_algo.h (rotate, __rotate): Likewise.
      	* testsuite/25_algorithms/rotate/dr488.cc: New.
      	* testsuite/25_algorithms/rotate/check_type.cc: Adjust function type.
      	* testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
      	2.cc: Likewise.
      	* testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
      	pod.cc: Likewise.
      
      From-SVN: r219793
      Jonathan Wakely committed
    • Revert last change · aed38127
      From-SVN: r219792
      Alan Modra committed
    • rl78-real.md (addqi3_real): Allow volatiles. · 48c528ae
      * 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.
      
      Co-Authored-By: Nick Clifton <nickc@redhat.com>
      
      From-SVN: r219791
      DJ Delorie committed
    • re PR libstdc++/60940 (general operations on atomic types do not work with… · d31b8797
      re PR libstdc++/60940 (general operations on atomic types do not work with atomic integral typedefs)
      
      	PR libstdc++/60940
      	* include/bits/atomic_base.h: Remove atomic integral typedefs as
      	synonyms for __atomic_base<int> etc.
      	* include/std/atomic: Make atomic_int a synonym for atomic<int> and
      	likewise for all atomic integral types.
      	* testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
      	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
      
      From-SVN: r219790
      Jonathan Wakely committed
    • Model cache auto-prefetcher in scheduler · 340c7904
      	* 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.
      
      From-SVN: r219789
      Maxim Kuvyrkov committed
    • Handle SCRATCH in decompose_address · 71acd477
      	* rtlanal.c (get_base_term): Handle SCRATCH.
      
      From-SVN: r219788
      Maxim Kuvyrkov committed
    • Enable max_issue for AArch32 and AArch64 · d03f7e44
      Enable max_issue for AArch32 and AArch64
      	* 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.
      
      From-SVN: r219787
      Maxim Kuvyrkov committed
    • cprop.c (do_local_cprop): Disallow replacement of fixed hard registers. · 25d1a5a7
      	* cprop.c (do_local_cprop): Disallow replacement of fixed
      	hard registers.
      
      From-SVN: r219786
      Alan Modra committed
    • re PR libstdc++/56785 (std::tuple of two elements does not apply empty base… · 3ecec1ef
      re PR libstdc++/56785 (std::tuple of two elements does not apply empty base class optimization when one of its elements is a std::tuple with two elements)
      
      	PR libstdc++/56785
      	* include/std/tuple (_Tuple_impl): Remove zero-element specialization
      	and define one-element specialization.
      	* testsuite/20_util/tuple/56785.cc: New.
      
      From-SVN: r219785
      Jonathan Wakely committed
    • Daily bump. · 3c16c423
      From-SVN: r219784
      GCC Administrator committed
    • 1.cc: Remove unused header. · c23ccace
      	* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
      	Remove unused header.
      	* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
      	Likewise.
      	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
      	Likewise.
      
      From-SVN: r219781
      Jonathan Wakely committed
  2. 16 Jan, 2015 29 commits