1. 09 Sep, 2007 18 commits
    • interpret-run.cc (invokevirtual_resolved): Nullcheck object on TOS. · f144591b
              * interpret-run.cc (invokevirtual_resolved): Nullcheck object on
              TOS.
      
      From-SVN: r128298
      Andrew Haley committed
    • costmodel-vect-outer-fir.c: Add noinline attribute. · 61ce048a
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Add
      	noinline attribute.
      	* gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c,
      	gcc.dg/vect/costmodel/spu/costmodel-fast-math-vect-pr29925.c,
      	gcc.dg/vect/costmodel/x86_64/costmodel-fast-math-vect-pr29925.c:
      	Likewise.
      
      From-SVN: r128297
      Ira Rosen committed
    • uc1.ads: Compile with -gnatws. · 8caa2436
      	* gnat.dg/specs/uc1.ads: Compile with -gnatws.
      
      From-SVN: r128296
      Eric Botcazou committed
    • addr2_p.ads: Bump size of array to 9. · 7a8faae8
              * gnat.dg/addr2_p.ads: Bump size of array to 9.
      
      From-SVN: r128295
      Eric Botcazou committed
    • tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost, [...]): New functions. · 89675e73
      	* tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
      	stmt_vinfo_set_outside_of_loop_cost): New functions.
      	* tree-vect-transform.c (vect_get_cost_fields): Remove.
      	(vect_model_simple_cost): Call
      	stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
      	field instead of calling vect_get_cost_fields.
      	(vect_model_store_cost, vect_model_load_cost): Likewise.
      
      From-SVN: r128294
      Ira Rosen committed
    • Fix two warnings in rs6000.c cause by bdesc_paired_preds · 23a651fc
      From-SVN: r128293
      Revital Eres committed
    • Use new debug counter · 97511ad7
      From-SVN: r128292
      Revital Eres committed
    • * ChangeLog: Fix cut'n'pasto. · 3968877d
      From-SVN: r128291
      Uros Bizjak committed
    • i386.md (X87MODEF12, SSEMODEF): Remove mode iterators. · 00188daa
      2007-09-09  Uros Bizjak  <ubizjak@gmail.com>
      
              * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
              Substitute all uses with ...
              (MODEF): New mode iterator.
      
              (*cmpfp_<mode>_cc): Remove operand constraints from pre-regalloc
              define_insn_and_split splitter pattern.
              (fix_trunc<mode>_fisttp_i387_1): Ditto.
              (*fix_trunc<mode>_i387_1): Ditto.
              (*fistdi2_1): Ditto.
              (*fist<mode>2_1): Ditto.
              (frndintxf2_floor): Ditto.
              (*fist<mode>2_floor_1): Ditto.
              (frndintxf2_ceil): Ditto.
              (*fist<mode>2_ceil_1): Ditto.
              (frndintxf2_trunc): Ditto.
              (frndintxf2_mask_pm): Ditto.
      
              (prologue): Use (const_int 0) as never generated filler insn.
              (epilogue): Ditto.
              (sibcall_epilogue): Ditto.
              (eh_return_si): Ditto.
              (eh_return_di): Ditto.
      
              (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
              using MODEF mode iterator.
              (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
              using MODEF mode iterator.
              (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
              using MODEF mode iterator.
              (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
              Macroize expander using MODEF mode iterator.
      
              (zero_extendsidi2): Remove operand constraints from expander.
              (smuldi3_highpart): Ditto.
              (indirect_jump): Ditto.
              (tablejump): Ditto.
              (rsqrtsf2): Ditto.
              * config/i386/sse.md (storentv4sf): Ditto.
              (storentv2df): Ditto.
              (storentv2di): Ditto.
              (storentsi): Ditto.
              (sse2_cvtpd2ps): Ditto.
              (vec_interleave_highv16qi): Ditto.
              (vec_interleave_lowv16qi): Ditto.
              (vec_interleave_highv8hi): Ditto.
              (vec_interleave_lowv8hi): Ditto.
              (vec_interleave_highv4si): Ditto.
              (vec_interleave_lowv4si): Ditto.
              (vec_interleave_highv2di): Ditto.
              (vec_interleave_lowv2di): Ditto.
              (sse2_maskmovdqu): Ditto.
              * config/i386/mmx.md (mmx_maskmovq): Ditto.
      
      From-SVN: r128290
      Uros Bizjak committed
    • tree-vectorizer.h (enum vect_def_type): Start enumeration from 1. · 805e2059
      	* tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
      	(struct _slp_tree, struct _slp_instance): Define new data structures
      	along macros for their access.
      	(struct _loop_vec_info): Define new fields: strided_stores,
      	slp_instances, and slp_unrolling_factor along macros for their access.
      	(enum slp_vect_type): New.
      	(struct _stmt_vec_info): Define new field, slp_type, and macros for its
      	access.
      	(STMT_VINFO_STRIDED_ACCESS): New macro.
      	(vect_free_slp_tree): Declare.
      	(vectorizable_load): Add an argument of type slp_tree.
      	(vectorizable_store, vectorizable_operation, vectorizable_conversion,
      	vectorizable_assignment): Likewise.
      	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
      	Declare (make extern).
      	* tree-vectorizer.c (new_stmt_vec_info): Initiliaze the new field.
      	(new_loop_vec_info): Likewise.
      	(destroy_loop_vec_info): Free memory allocated for SLP structures.
      	* tree-vect-analyze.c: Include recog.h.
      	(vect_update_slp_costs_according_to_vf): New.
      	(vect_analyze_operations): Add argument for calls to vectorizable_ ()
      	functions. For not pure SLP stmts with strided access check that the
      	group size is power of 2. Update the vectorization factor according to
      	SLP. Call vect_update_slp_costs_according_to_vf.
      	(vect_analyze_group_access): New.
      	(vect_analyze_data_ref_access): Call vect_analyze_group_access.
      	(vect_free_slp_tree): New functions.
      	(vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
      	vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
      	vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
      	vect_detect_hybrid_slp): Likewise.
      	(vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
      	and vect_detect_hybrid_slp.
      	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
      	SLP costs into account.
      	(vect_get_cost_fields): New function.
      	(vect_model_simple_cost): Make extern, add SLP parameter and handle
      	SLP.
      	(vect_model_store_cost, vect_model_load_cost): Likewise.
      	(vect_get_constant_vectors): New function.
      	(vect_get_slp_vect_defs, vect_get_slp_defs,
      	vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
      	vect_get_vec_defs): Likewise.
      	(vectorizable_reduction): Don't handle SLP for now.
      	(vectorizable_call): Don't handle SLP for now. Add argument to
      	vect_model_simple_cost.
      	(vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
      	get SLPed and vectorized defs). Fix indentation and spacing.
      	(vectorizable_assignment): Handle SLP.
      	(vectorizable_induction): Don't handle SLP for now.
      	(vectorizable_operation): Likewise.
      	(vectorizable_type_demotion): Add argument to
      	vect_model_simple_cost.
      	(vectorizable_type_promotion): Likewise.
      	(vectorizable_store, vectorizable_load): Handle SLP.
      	(vectorizable_condition): Don't handle SLP for now.
      	(vect_transform_stmt): Add a new argument for SLP. Check that there is
      	no SLP transformation required for unsupported cases. Add SLP
      	argument for supported cases.
      	(vect_remove_stores): New function.
      	(vect_schedule_slp_instance, vect_schedule_slp): Likewise.
      	(vect_transform_loop): Schedule SLP instances.
      	* Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
      
      From-SVN: r128289
      Ira Rosen committed
    • optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake signed optab. · ae2bd7d2
              * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
              signed optab.
      
      From-SVN: r128288
      Andrew Haley committed
    • Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET. · cf7c4aa6
      	* doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
      	Similar for what label_refs can go in the JUMP_TARGET field.  Split
      	REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
      	* reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
      	REG_LABEL when replacing an operand with a LABEL_REF for a
      	non-jump insn.
      	(subst_reloads): When replacing a LABEL_REG with a register,
      	instead of generating a REG_LABEL note, assert that there already
      	is one or that the label is a known target for the insn.
      	* rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
      	note, check the JUMP_LABEL field.  Remove "else" after return.
      	* reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
      	cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
      	(fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
      	REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
      	insns.  Iterate over all notes; don't assume there's only one.
      	* cse.c (recorded_label_ref): Adjust comment to refer to
      	REG_LABEL_OPERAND.
      	(cse_extended_basic_block): Do LABEL_REF check for all INSN_P
      	insns, not just NONJUMP_INSN_P.
      	(check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
      	isn't a jump target.
      	* jump.c (rebuild_jump_labels): Adjust head comment.
      	(init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
      	don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
      	(mark_all_labels): For JUMP_P insns without a target, check if the
      	the target is noted on the previous nonjump insn.
      	(mark_jump_label_1): New function, guts from mark_jump_label.
      	<case IF_THEN_ELSE>: Handle first operand as a non-target when
      	marking jump target labels.
      	<case LABEL_REF>: Adjust for whether to generate a
      	REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
      	For 'E' format rtl, iterate in descending element order.
      	(delete_related_insns): Handle both REG_LABEL_TARGET and
      	REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
      	reference count, delete and fallthrough.  Move finding-next-
      	non-deleted insn last in the function.  Look at all INSN_P insns
      	for REG_LABEL_OPERAND notes.
      	(redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
      	JUMP.
      	* print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
      	JUMP_LABEL, output the INSN_UID of it.
      	* gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
      	and/or REG_LABEL_TARGET.
      	(add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
      	with jump.c copy by only adding notes for labels actually
      	referenced in the insn.
      	* emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
      	usage count increment; handle all INSN_P trial insns.
      	(emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
      	notes.
      	* rtl.h (struct rtx_def) <volatil>: Adjust to mention
      	REG_LABEL_TARGET and REG_LABEL_OPERAND.
      	(LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
      	REG_LABEL_OPERAND.
      	* combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
      	JUMP_P insns and REG_LABEL_OPERAND everywhere.
      	* sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
      	on all INSN_P insns.
      	* reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
      	* cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
      	REG_LABEL_OPERAND notes.
      	* reload1.c (calculate_needs_all_insns): Adjust comments.
      	(set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
      	* config/alpha/alpha.md (split for load of an address into a
      	four-insn sequence on Unicos/Mk): Adjust to use
      	REG_LABEL_OPERAND.
      	* config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
      
      From-SVN: r128287
      Hans-Peter Nilsson committed
    • re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081) · 97c954f7
              PR c++/33342
              * pt.c (most_specialized_class): Set processing_template_decl
              while tsubsting partial spec args.
      
      From-SVN: r128286
      Jason Merrill committed
    • re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081) · fd452cef
              PR c++/33342
              * pt.c (most_specialized_class): Set processing_template_decl
              while tsubsting partial spec args.
      
      From-SVN: r128285
      Jason Merrill committed
    • revert: regrename.c (copyprop_hardreg_forward_1): New variable next. · ba4807a0
      	Revert:
      	2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      	* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
      	FOR_BB_INSNS_SAFE instead of for loop.
      	* cse.c (cse_extended_basic_block): Likewise.
      	* postreload.c (reload_cse_regs_1): New variable next. Make sure
      	that the for loop does not invoke NEXT_INSN on a deleted insn.
      	* function.c (instantiate_virtual_regs): Likewise.
      	* lower-subreg.c (remove_retval_note): Likewise.
      	(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
      	FOR_BB_INSNS.
      	* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
      	a deleted insn.
      	* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
      	insn, if it's a jump.
      	(try_redirect_by_replacing_jump): New variable jump_p. Call
      	tablejump_p before delete_insn_chain.
      	* reload1.c (reload): New variable next. Make sure that the for
      	loop does not invoke NEXT_INSN on a deleted insn.
      	(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
      	(delete_output_reload): New variable prev. Make sure the the for
      	loops do not invoke PREV_INSN on a deleted insn.
      
      From-SVN: r128284
      Laurynas Biveinis committed
    • file-format.exp (gcc_target_object_format): Use remote_exec to call objdump. · 7cff41e8
      gcc/testsuite:
      	* lib/file-format.exp (gcc_target_object_format): Use remote_exec
      	to call objdump.
      	* lib/scanasm.exp (scan-assembler-dem, scan-assembler-dem-not):
      	Use remote_exec to call c++filt.
      	* lib/target-supports-dg.exp (dg-require-host-local): New.
      	* gcc.misc-tests/options.exp: Allow .exe in command paths.
      	* g++.dg/parse/repo1.C: Use dg-require-host-local.
      	* g++.dg/rtti/repo1.C: Likewise.
      	* g++.dg/template/repo1.C: Likewise.
      	* g++.dg/template/repo2.C: Likewise.
      	* g++.dg/template/repo3.C: Likewise.
      	* g++.dg/template/repo4.C: Likewise.
      	* g++.dg/template/repo5.C: Likewise.
      	* g++.old-deja/g++.pt/instantiate4.C: Likewise.
      	* g++.old-deja/g++.pt/instantiate6.C: Likewise.
      	* g++.old-deja/g++.pt/repo1.C: Likewise.
      	* g++.old-deja/g++.pt/repo2.C: Likewise.
      	* g++.old-deja/g++.pt/repo3.C: Likewise.
      	* g++.old-deja/g++.pt/repo4.C: Likewise.
      	* gcc.dg/cpp/trad/builtins.c: Likewise.
      
      libstdc++-v3:
      	* testsuite/lib/libstdc++.exp (v3-build-support): Specify output
      	file for preprocessing.  Use remote_exec to call ar and ranlib.
      
      From-SVN: r128283
      Joseph Myers committed
    • Daily bump. · 37da0c95
      From-SVN: r128281
      GCC Administrator committed
    • functional_hash.h: Add ext/numeric_traits.h. · 9adfc73c
      2007-09-08  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/bits/functional_hash.h: Add ext/numeric_traits.h.
      	* include/tr1/functional_hash.h Same.
      	* include/tr1/functional: Remove string, ext/type_traits.h includes.
      	* include/tr1_impl/functional_hash.h: Move string, wstring
      	definitions for std::<hash>::operator into separate file.
      	* include/std/functional
      	* src/hash.cc: New, move definitions here.
      	* src/hash_c++0x.cc: Same.
      	* src/Makefile.am: Add new source files.
      	* configure: Regenerate.
      	* Makefile.in: Same.
      	* src/Makefile.in: Same.
      	* po/Makefile.in: Same.
      	* libmath/Makefile.in: Same.
      	* libsupc++/Makefile.in: Same.
      	* testsuite/Makefile.in: Same.
      	* config/abi/pre/gnu.ver: Add symbols.
      	* config/abi/pre/gnu-versioned-namespace.ver: Same, fix.
      
      From-SVN: r128278
      Benjamin Kosnik committed
  2. 08 Sep, 2007 15 commits
  3. 07 Sep, 2007 7 commits