1. 25 Oct, 2013 20 commits
    • 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> · 01b1efaa
      	* config/rs6000/rs6000-protos.h
      	(rs6000_secondary_memory_needed_mode): New prototype.
      	* config/rs6000/rs6000.c: Include ira.h.
      	(TARGET_LRA_P): Redefine.
      	(rs6000_legitimate_offset_address_p): Call
      	legitimate_constant_pool_address_p in strict mode for LRA.
      	(rs6000_legitimate_address_p): Ditto.
      	(legitimate_lo_sum_address_p): Add code for LRA.
      	Use lra_in_progress.
      	(rs6000_emit_move): Add LRA version of code to generate load/store
      	of SDmode values.
      	(rs6000_secondary_memory_needed_mode): New.
      	(rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
      	(rs6000_secondary_reload_class): Return NO_REGS for LRA for
      	constants, memory, and FP registers.
      	(rs6000_lra_p): New.
      	* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New
      	macro.
      	* config/rs6000/rs6000.opt (mlra): New option.
      	* lra-spills.c (lra_final_code_change): Remove useless move insns.
      
      From-SVN: r204079
      Vladimir Makarov committed
    • formatter.h (__check_singular): Add const on iterator reference. · 3ff4317f
      2013-10-25  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/formatter.h (__check_singular): Add const on
      	iterator reference.
      	* include/debug/functions.h (__check_singular): Likewise.
      	(__check_singular(const _Safe_iterator<_Ite, _Seq>&)): Delete.
      	(__check_dereferenceable(const _Ite&)): Add const on iterator
      	reference.
      	(__check_dereferenceable(const _Safe_local_iterator<>&)): New.
      	* include/debug/safe_iterator.h (__check_singular_aux): Review
      	comment.
      	* testsuite/23_containers/vector/debug/debug_functions.cc: New.
      	* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
      	New.
      
      From-SVN: r204075
      François Dumont committed
    • pr33426-ivdep.cc: Use dg-options. · f5d368b6
      2013-10-25  Tobias Burnus  <burnus@net-b.de>
      
              * g++.dg/vect/pr33426-ivdep.cc: Use dg-options.
              * gfortran.dg/vect/vect-do-concurrent-1.f90: Ditto.
              * testsuite/gcc.dg/vect/vect-ivdep-1.c: Ditto.
      
      From-SVN: r204074
      Tobias Burnus committed
    • tree-ssa-math-opts.c (convert_plusminus_to_widen): Call has_single_use () and… · 42917d01
      tree-ssa-math-opts.c (convert_plusminus_to_widen): Call has_single_use () and not do the conversion if...
      
      gcc/
      
      	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
      	has_single_use () and not do the conversion if has_single_use ()
      	returns false for the multiplication result.
      
      gcc/testsuite/
      
      	* gcc.dg/wmul-1.c: New test.
      
      From-SVN: r204072
      Yufeng Zhang committed
    • re PR c++/58878 (Template parameter name can be hidden in a template member… · b02ef56d
      re PR c++/58878 (Template parameter name can be hidden in a template member function defined inside the class specifier)
      
      /cp
      2013-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58878
      	* pt.c (check_template_shadow): Don't skip declarations in inline
      	member templates.
      
      /testsuite
      2013-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58878
      	* g++.dg/template/pr58878.C: New.
      
      From-SVN: r204071
      Paolo Carlini committed
    • Fix names of various macro parameters in tree.h · 34759370
      	* tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
      	to "NODE", since this works on a "tree", not an
      	"enum tree_code".
      	(CONSTANT_CLASS_P): Likewise.
      	(TYPE_P): Likewise.
      	(DECL_P): Likewise.
      	(INDIRECT_REF_P): Likewise.
      	(REFERENCE_CLASS_P): Likewise.
      	(COMPARISON_CLASS_P): Likewise.
      	(UNARY_CLASS_P): Likewise.
      	(BINARY_CLASS_P): Likewise.
      	(STATEMENT_CLASS_P): Likewise.
      	(VL_EXP_CLASS_P): Likewise.
      	(EXPRESSION_CLASS_P): Likewise.
      	(IS_TYPE_OR_DECL_P): Likewise.
      
      From-SVN: r204070
      David Malcolm committed
    • cp-demangle.c (struct d_saved_scope): New structure. · c24d86bc
      libiberty/
      2013-10-25  Gary Benson  <gbenson@redhat.com>
      
      	* cp-demangle.c (struct d_saved_scope): New structure.
      	(struct d_print_info): New fields saved_scopes and
      	num_saved_scopes.
      	(d_print_init): Initialize the above.
      	(d_print_free): New function.
      	(cplus_demangle_print_callback): Call the above.
      	(d_copy_templates): New function.
      	(d_print_comp): New variables saved_templates and
      	need_template_restore.
      	[DEMANGLE_COMPONENT_REFERENCE,
      	DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
      	time the component is traversed, and use the captured scope for
      	subsequent traversals.
      	* testsuite/demangle-expected: Add regression test.
      
      From-SVN: r204068
      Gary Benson committed
    • tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an ADDR_EXPR in the defining statement. · bb362135
      2013-10-25  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
      	ADDR_EXPR in the defining statement.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/alias-23.c: New file.
      
      From-SVN: r204065
      Marc Glisse committed
    • re PR tree-optimization/58626 (possible array wrong code bug) · 447f3223
      2013-10-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58626
      	* tree-loop-distribution.c (enum rdg_dep_type): Remove
      	anti_dd, output_dd and input_dd.
      	(struct rdg_edge): Remove level and relation members.
      	(RDGE_LEVEL, RDGE_RELATION): Remove.
      	(dot_rdg_1): Adjust.
      	(create_rdg_edge_for_ddr): Remove.
      	(create_rdg_edges_for_scalar): Adjust.
      	(create_edge_for_control_dependence): Likewise.
      	(create_rdg_edges): Split into ...
      	(create_rdg_flow_edges): ... this
      	(create_rdg_cd_edges): ... and this.
      	(free_rdg): Adjust.
      	(build_rdg): Likewise, do not compute data dependences or
      	add edges for them.
      	(pg_add_dependence_edges): New function.
      	(pgcmp): Likewise.
      	(distribute_loop): First apply all non-dependence based
      	partition mergings.  Then compute dependences between partitions
      	and merge and order partitions according to them.
      
      	* gcc.dg/torture/pr58626.c: New testcase.
      
      From-SVN: r204062
      Richard Biener committed
    • re PR c++/54812 ([C++11] Delete expression doesn't respect access of defaulted destructor) · 5970573c
      2013-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54812
      	* g++.dg/cpp0x/defaulted47.C: New.
      
      From-SVN: r204057
      Paolo Carlini committed
    • re PR rtl-optimization/58831 (wrong code at -O2 and -O3 on x86_64-linux-gnu in 64-bit mode) · 356610cb
      	PR rtl-optimization/58831
      	* alias.c (init_alias_analysis): At the beginning of each iteration, set
      	the reg_seen[N] bit if static_reg_base_value[N] is non-null.
      
      From-SVN: r204055
      Eric Botcazou committed
    • pr57793.c: Add expected error messages for targets with small integers. · 2e30c7fb
      	* c-c++-common/pr57793.c: Add expected error messages for
      	targets with small integers.
      	* gcc.dg/c99-stdint-1.c: Only run on 32-bit plus targets.
      	* gcc.dg/c99-stdint-2.c: Likewise.
      	* gcc.dg/cdce1.c: Likewise.
      	* gcc.dg/fold-overflow-1.c: Likewise.
      	* gcc.dg/utf-cvt.c: Likewise.
      	* gcc.dg/ftrapv-1.c: Only run on targets that support trapping
      	arithmetic.
      	* gcc.dg/ftrapv-2.c: Likewise.
      	* gcc.dg/pr30286.c: Likewise.
      	* gcc.dg/pr19340.c: Only run on targets that support
      	scheduling.
      	* lib/target-supports.exp (check_effective_target_trapping): New
      	proc.  Returns true if the target supports trapping arithmetic.
      
      From-SVN: r204053
      Nick Clifton committed
    • recog.c (search_ofs): New static variable moved from... · e86a8146
      	* recog.c (search_ofs): New static variable moved from...
      	(peep2_find_free_register): ...here.
      	(peephole2_optimize): Initialize it.
      
      From-SVN: r204050
      Eric Botcazou committed
    • invoke.texi (fopenmp): Change supported OpenMP version to 4.0. · 24ebcbc8
      2013-10-25  Tobias Burnus  <burnus@net-b.de>
      
              * doc/invoke.texi (fopenmp): Change supported OpenMP version
              to 4.0.
      
      From-SVN: r204049
      Tobias Burnus committed
    • i386.h (TARGET_MPX): New define. · cb610367
      	* config/i386/i386.h (TARGET_MPX): New define.
      	(TARGET_MPX_P): Ditto.
      
      From-SVN: r204048
      Uros Bizjak committed
    • re PR other/33426 (Support of #pragma ivdep) · 43ae206c
      2013-10-25  Tobias Burnus  <burnus@net-b.de>
      
              PR other/33426
              * parser.c (cp_parser_iteration_statement,
              cp_parser_for, cp_parser_c_for, cp_parser_pragma): Handle
              IVDEP pragma.
      
              * g++.dg/parse/ivdep.C: New.
              * g++.dg/vect/pr33426-ivdep.cc: New.
      
      From-SVN: r204047
      Tobias Burnus committed
    • constraints.md (B): New. · 66d6cbaa
      	* config/i386/constraints.md (B): New.
      	(Ti): New.
      	(Tb): New.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
      	* config/i386/i386-modes.def (BND32): New.
      	(BND64): New.
      	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
      	* config/i386/i386.c (isa_opts): Add mmpx.
      	(regclass_map): Add bound registers.
      	(dbx_register_map): Likewise.
      	(dbx64_register_map): Likewise.
      	(svr4_dbx_register_map): Likewise.
      	(PTA_MPX): New.
      	(ix86_option_override_internal): Support MPX ISA.
      	(ix86_conditional_register_usage): Support bound registers.
      	(print_reg): Likewise.
      	(ix86_code_end): Add MPX bnd prefix.
      	(output_set_got): Likewise.
      	(ix86_output_call_insn): Likewise.
      	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
      	(ix86_print_operand_punct_valid_p): Likewise.
      	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
      	UNSPEC_BNDMK_ADDR.
      	(ix86_class_likely_spilled_p): Add bound regs support.
      	(ix86_hard_regno_mode_ok): Likewise.
      	(x86_order_regs_for_local_alloc): Likewise.
      	(ix86_bnd_prefixed_insn_p): New.
      	* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
      	(FIXED_REGISTERS): Add bound registers.
      	(CALL_USED_REGISTERS): Likewise.
      	(REG_ALLOC_ORDER): Likewise.
      	(HARD_REGNO_NREGS): Likewise.
      	(TARGET_MPX): New.
      	(VALID_BND_REG_MODE): New.
      	(FIRST_BND_REG): New.
      	(LAST_BND_REG): New.
      	(reg_class): Add BND_REGS.
      	(REG_CLASS_NAMES): Likewise.
      	(REG_CLASS_CONTENTS): Likewise.
      	(BND_REGNO_P): New.
      	(ANY_BND_REG_P): New.
      	(BNDmode): New.
      	(HI_REGISTER_NAMES): Add bound registers.
      	* config/i386/i386.md (UNSPEC_BNDMK): New.
      	(UNSPEC_BNDMK_ADDR): New.
      	(UNSPEC_BNDSTX): New.
      	(UNSPEC_BNDLDX): New.
      	(UNSPEC_BNDLDX_ADDR): New.
      	(UNSPEC_BNDCL): New.
      	(UNSPEC_BNDCU): New.
      	(UNSPEC_BNDCN): New.
      	(UNSPEC_MPX_FENCE): New.
      	(BND0_REG): New.
      	(BND1_REG): New.
      	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
      	(length_immediate): Likewise.
      	(prefix_0f): Likewise.
      	(memory): Likewise.
      	(prefix_rep): Check for bnd prefix.
      	(length_nobnd): New.
      	(length): Use length_nobnd if specified.
      	(BND): New.
      	(bnd_ptr): New.
      	(BNDCHECK): New.
      	(bndcheck): New.
      	(*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
      	(*jcc_2): Likewise.
      	(jump): Likewise.
      	(simple_return_internal): Likewise.
      	(simple_return_pop_internal): Likewise.
      	(*indirect_jump): Add MPX bnd prefix.
      	(*tablejump_1): Likewise.
      	(simple_return_internal_long): Likewise.
      	(simple_return_indirect_internal): Likewise.
      	(<mode>_mk): New.
      	(*<mode>_mk): New.
      	(mov<mode>): New.
      	(*mov<mode>_internal_mpx): New.
      	(<mode>_<bndcheck>): New.
      	(*<mode>_<bndcheck>): New.
      	(<mode>_ldx): New.
      	(*<mode>_ldx): New.
      	(<mode>_stx): New.
      	(*<mode>_stx): New.
      	* config/i386/predicates.md (lea_address_operand): Rename to...
      	(address_no_seg_operand): ... this.
      	(address_mpx_no_base_operand): New.
      	(address_mpx_no_index_operand): New.
      	(bnd_mem_operator): New.
      	* config/i386/i386.opt (mmpx): New.
      	* doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
      	* doc/rtl.texi Add documentation for BND32mode and BND64mode.
      
      From-SVN: r204046
      Ilya Enkovich committed
    • mode-classes.def (MODE_POINTER_BOUNDS): New. · 65f55bac
              * mode-classes.def (MODE_POINTER_BOUNDS): New.
              * tree.def (POINTER_BOUNDS_TYPE): New.
              * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
              (POINTER_BOUNDS_MODE): New.
              (make_pointer_bounds_mode): New.
              * machmode.h (POINTER_BOUNDS_MODE_P): New.
              * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
              (layout_type): Support POINTER_BOUNDS_TYPE.
              * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
              * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
              (type_contains_placeholder_1): Likewise.
              * tree.h (POINTER_BOUNDS_TYPE_P): New.
              * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
              * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
      
      From-SVN: r204045
      Ilya Enkovich committed
    • expr.c (expand_expr_real_1): Use mode of memory reference rather than mode of… · ca9f3779
      expr.c (expand_expr_real_1): Use mode of memory reference rather than mode of address computation when...
      
              * expr.c (expand_expr_real_1): Use mode of memory reference rather
              than mode of address computation when calling memory_address_addr_space.
      
      From-SVN: r204044
      Igor Shevlyakov committed
    • Daily bump. · 0e855edf
      From-SVN: r204043
      GCC Administrator committed
  2. 24 Oct, 2013 20 commits