1. 09 Sep, 2007 7 commits
    • 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 18 commits