Commit Graph

31447 Commits

Author SHA1 Message Date
Kazu Hirata 7a085dce62 arm.c, [...]: Fix comment typos.
* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
	config/arm/thumb2.md: Fix comment typos.
	* doc/extend.texi: Fix a typo.

From-SVN: r120566
2007-01-08 01:17:57 +00:00
Eric Christopher a6ccdbabfd configure.ac: Check for __stack_chk_fail for darwin.
2007-01-07  Eric Christopher  <echristo@apple.com>

        * configure.ac: Check for __stack_chk_fail for darwin.
        * configure: Regenerate.

From-SVN: r120559
2007-01-07 23:53:21 +00:00
Richard Guenther b881887e66 tree-vrp.c (extract_range_from_assert): CSE calls to compare_values where possible.
2007-01-07  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): CSE calls to
	compare_values where possible.
	(extract_range_from_unary_expr): Likewise.

From-SVN: r120547
2007-01-07 15:21:45 +00:00
Anatoly Sokolov 696e990bdb avr-protos.h (call_insn_operand): Delete prototype.
* config/avr/avr-protos.h (call_insn_operand): Delete prototype.
	* config/avr/avr.c (call_insn_operand): Delete function.
	* config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
	instead of register number. Use predicates.
	* config/avr/predicates.md (const0_operand, reg_or_0_operand, 
	call_insn_operand): Add.

From-SVN: r120546
2007-01-07 06:45:24 +03:00
Jan Hubicka 2dee695bfc tree-pass.h (pass_build_cgraph_edges): Declare.
* tree-pass.h (pass_build_cgraph_edges): Declare.
	* cgraphunit.c (record_refernece): Move to cgraphbuild.c
	(visited_nodes): Remove.
	(cgraph_create_edges): Move to cgraphbuild.c; rename to
	build_cgrpah_edges; make visited_nodes local.
	(cgraph_process_new_functions): DO not call initialize_inline_failed.
	(record_references_in_initializer): Move to cgraphbuild.c
	(initialize_inline_failed, rebuild_cgraph_edges,
	pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
	(verify_cgraph_node): Make visited_nodes local.
	(cgraph_analyze_function): Do not call cgraph_create_edges and
	initialize_inline_failed.
	(cgraph_expand_function): Do not call cgraph_lower_function;
	assert that function is already lowered.
	* Makefile.in (cgraphbuild.o): New.
	* passes.c (init_optimization_passes): Add pass_build_cgraph_edges
	at the end of lowering passes.

From-SVN: r120527
2007-01-06 17:58:40 +00:00
Steven Bosscher dc1f5a1118 ifcvt.c (cond_move_convert_if_block): New function, code factored out from...
* ifcvt.c (cond_move_convert_if_block): New function, code
	factored out from...
	(cond_move_process_if_block): ...here.  Call the new function
	on the THEN and ELSE blocks.
	(merge_if_block): Do not copy global_live_at_end, merge_blocks
	already takes care of this.

From-SVN: r120524
2007-01-06 13:56:53 +00:00
Manuel López-Ibáñez 59c0753dd3 re PR c/19978 (overflow in expression of constants should not cause multiple warnings)
2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/19978
	* tree.h (TREE_OVERFLOW_P): New.
	* c-typeck.c (parser_build_unary_op): Warn only if result
	overflowed and operands did not.
	(parser_build_binary_op): Likewise.
	(convert_for_assignment): Remove redundant overflow_warning.
	* c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.

cp/
	* semantics.c (finish_unary_op_expr): Warn only if result
	overflowed and operands did not.

testsuite/
	* gcc.dg/multiple-overflow-warn-1.c: New.
	* gcc.dg/multiple-overflow-warn-2.c: New.
	* gcc.dg/overflow-warn-6.c: New.
	* g++.dg/warn/multiple-overflow-warn-1.C: New.

From-SVN: r120505
2007-01-05 21:57:01 +00:00
Manuel López-Ibáñez c2658540a3 c-typeck.c (store_init_value): Split over two lines to follow the GNU coding style.
2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-typeck.c (store_init_value): Split over two lines to follow
	the GNU coding style.

From-SVN: r120504
2007-01-05 21:41:32 +00:00
Benjamin Kosnik c573f4d5c6 c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to __GXX_EXPERIMENTAL_CXX0X__.
2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
	__GXX_EXPERIMENTAL_CXX0X__.
	* doc/cpp.texi: Same.

From-SVN: r120502
2007-01-05 21:24:16 +00:00
Richard Guenther afe1a916d7 re PR c++/27826 (ICE in copy_to_mode_reg)
2007-01-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27826
	* tree.c (get_narrower): Do not construct COMPONENT_REFs
	with mismatched types.  Instead explicitly build a
	conversion NOP_EXPR.

	* g++.dg/opt/pr27826.C: New testcase.

From-SVN: r120498
2007-01-05 21:04:23 +00:00
Ian Lance Taylor b3c6d2ea00 c-common.c (decl_with_nonnull_addr_p): New function.
./:	* c-common.c (decl_with_nonnull_addr_p): New function.
	(c_common_truthvalue_conversion): Call it.
	* c-typeck.c (build_binary_op): Likewise.
	* c-common.h (decl_with_nonnull_addr_p): Declare.
cp/:
	* typeck.c (build_binary_op): Warn about comparing a non-weak
	address to NULL.
testsuite/:
	* gcc.dg/Walways-true-1.c: New test.
	* gcc.dg/Walways-true-2.c: New test.
	* g++.dg/warn/Walways-true-1.C: New test.
	* g++.dg/warn/Walways-true-2.C: New test.

From-SVN: r120493
2007-01-05 19:05:46 +00:00
Jakub Jelinek 698ac9345a re PR c/30360 (Complex divide bug)
PR c/30360
	* libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
	denom against 0.0.

	* gcc.dg/pr30360.c: New test.

From-SVN: r120486
2007-01-05 16:49:05 +01:00
Joel Brobecker 4b322f430a install.texi (Final install): Document the fact that the GNAT runtime should not be stripped.
* doc/install.texi (Final install): Document the fact that
        the GNAT runtime should not be stripped.

From-SVN: r120484
2007-01-05 14:40:05 +00:00
Jan Hubicka 9477eb38c6 tree-inline.c (fold_marked_statements): Update operand caches and EH after folding
* tree-inline.c (fold_marked_statements): Update operand caches
	and EH after folding

From-SVN: r120477
2007-01-05 12:18:21 +00:00
Ian Lance Taylor dfd0a3de8f * c-common.c (check_function_nonnull): Whitespace fix.
From-SVN: r120470
2007-01-05 06:16:56 +00:00
Jan Hubicka 59e504989c tree-optimize.c (execute_fixup_cfg): Correct previously mistakely comitted older version of patch.
* tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
	comitted older version of patch.
	(pass_fixup_cfg): Add TODOs to verify flow and statements, dump
	function, celanup cfg and collect garbage.

From-SVN: r120469
2007-01-05 02:00:56 +00:00
Mike Stump a87948f7fb Makefile.in (mostlyclean): Don't remove libgcc anymore.
* Makefile.in (mostlyclean): Don't remove libgcc anymore.
	(clean): Likewise.

From-SVN: r120465
2007-01-05 00:38:22 +00:00
Eric Christopher e4b6bec2f1 libgcc2.c (__bswapsi2): Use SItype.
2007-01-04  Eric Christopher  <echristo@apple.com>

	    * libgcc2.c (__bswapsi2): Use SItype.
	      (__bswapdi2): Use DItype.
	    * libgcc2.h: Update for above.

From-SVN: r120454
2007-01-04 23:16:34 +00:00
Paul Brook d6c397b0ff arm.md (arm_mulsi3, [...]): Make conditional on !arm_arch6.
2007-01-04  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
	mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
	mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
	umulsidi3, umulsidi3adddi, smulsi3_highpart,
	umulsi3_highpart): Make conditional on !arm_arch6.
	(arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
	mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
	mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
	umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
	umulsi3_highpart_v6): New insns.

From-SVN: r120453
2007-01-04 23:13:55 +00:00
Roger Sayle bd7e4636d9 fold-const.c (fold_convert): When casting an expression to void...
* fold-const.c (fold_convert): When casting an expression to void,
	fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
	have a type.  Instead of attempting to build a NOP_EXPR, return
	these "special" trees directly.

From-SVN: r120451
2007-01-04 23:00:00 +00:00
Joseph Myers 762c919f44 rs6000.c (rs6000_rtx_costs): Make adjustment for MULT inside MINUS as either argument.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
	MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
	rs6000_cost->fp not 0 as adjustment for outer NEG.

From-SVN: r120442
2007-01-04 16:36:57 +00:00
Jan Hubicka 3a40c18a68 cgraph.c (cgraph_release_function_body): New function.
* cgraph.c (cgraph_release_function_body): New function.
	(cgraph_remove_node): Use it.
	* cgraph.h (cgraph_release_function_body): Declare.
	* cgraphunit.c (cgraph_expand_function): Use it.
	* ipa.c (cgraph_remove_unreahchable_nodes): Use it.
	* tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
	is initialized and while compilation of other function is running.
	* tree-optimize.c (execute_free_cfg_annotations): Move code to clear
	statement CFG annotations from here to ...
	* tree-cfg.c (delete_tree_cfg_annotations): ... here.

From-SVN: r120437
2007-01-04 11:30:10 +00:00
Zdenek Dvorak b06e8639fa cfgloop.h (enum li_flags): Make the constants powers of two.
* cfgloop.h (enum li_flags): Make the constants powers of two.

From-SVN: r120433
2007-01-04 09:53:29 +00:00
Jan Hubicka b8a00a4dcb tree-inline.c (copy_bb): Insert new statements to statements_to_fold set.
* tree-inline.c (copy_bb): Insert new statements to statements_to_fold
	set.
	(fold_marked_statements): New function.
	(optimize_inline_calls, tree_function_versioning): Fold new statements.
	* tree-inline.h (copy_body_data): Add statemetns_to_fold.

From-SVN: r120430
2007-01-04 08:56:05 +00:00
Daniel Jacobowitz fa9585134f Makefile.def (target_modules): Add libgcc.
./	* Makefile.def (target_modules): Add libgcc.
	(lang_env_dependencies): Remove default items.  Use no_c and no_gcc.
	* Makefile.tpl (clean-target-libgcc): Delete.
	(configure-target-[+module+]): Emit --disable-bootstrap dependencies
	on gcc even for bootstrapped modules.  Rewrite handling of
	lang_env_dependencies to loop over target_modules.
	* configure.in (target_libraries): Add target-libgcc.
	* Makefile.in, configure: Regenerated.
gcc/
	* config.gcc: Mention libgcc/config.host.
	* Makefile.in: Update comments mentioning libgcc.
	(LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
	(all.cross, start.encap, rest.encap, rest.cross): Update
	dependencies for libgcc move.
	(libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
	(clean-target, clean-target-libgcc): Delete.
	(srcdirify, GCC_EXTRA_PARTS): New macros.
	(libgcc-support, libgcc.mvars): New rules.
	(distclean): Remove mention of mklibgcc.
	(install): Don't reference INSTALL_LIBGCC.
	(install-common): Don't reference EXTRA_PARTS.
	(install-libgcc, install-multilib): Delete rules.
	* mklibgcc.in: Delete file.
	* doc/configfiles.texi: Don't mention mklibgcc.

	* config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
	* config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
	(mklibgcc, ldblspecs): Likewise.

	* config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
	(posixpre.def): Use $(T).
	(SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
	(SHLIB_SRC, SHLIB_INSTALL): Delete.
	(SHLIB_LINK): Make dummy.
	* config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.

	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.

	* config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
	* config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
	config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
	config/rs6000/t-newas, config/sparc/t-elf: Likewise.

	* configure.ac (all_outputs): Remove mklibgcc.
	* configure: Regenerated.
libgcc/
	* Makefile.in, config/i386/t-darwin, config/i386/t-darwin64,
	config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128,
	config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64,
	config/sparc/t-crtfm, config/t-slibgcc-darwin,
	config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk,
	shared-object.mk, siditi-object.mk, static-object.mk: New files.
	* configure: Generated.

Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>

From-SVN: r120429
2007-01-04 04:22:37 +00:00
Josh Conner 7816b87eb1 re PR middle-end/29683 (Arg split between stack/regs can cause stack corruption)
2007-03-01  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* calls.c (compute_argument_addresses): Set stack and stack_slot
	for partial args, too.
	(store_one_arg): Use locate.size.constant for the size when
	generating a save_area.

2007-03-01  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* gcc.dg/pr29683.c: New.

From-SVN: r120425
2007-01-04 01:37:15 +00:00
Robert Kennedy 611021e16c tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results whose definitions are deleted due to basic block...
* tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
	whose definitions are deleted due to basic block merging.

From-SVN: r120423
2007-01-04 01:20:08 +00:00
Paul Brook a15908a410 re PR target/16634 (arm-elf-gcc problems when generating code for __attribute__ ((interrupt ("IRQ"))))
2007-01-03  Paul Brook  <paul@codesourcery.com>

	PR target/16634
	gcc/
	* config/arm/arm.c (output_return_instruction): Pop PC in interrupt
	functions.
	(use_return_insn): Return 0 for Thumb interrupt functions.
	(print_multi_reg): Add rfe argument for IRQ returns.
	(arm_output_epilogue): Pop interrupt return address directly into PC.
	(arm_expand_prologue): Only adjust IRQ return address in Arm mode.

From-SVN: r120413
2007-01-04 00:09:48 +00:00
Paul Brook 5b3e666315 backport: thumb2.md: New file.
2007-01-03  Paul Brook  <paul@codesourcery.com>

	Merge from sourcerygxx-4_1.
	gcc/
	* config/arm/thumb2.md: New file.
	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
	Thumb-2.
	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
	* config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
	tables.
	(ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	* config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
	comptibility.
	* config/arm/ieee754-sf.S: Ditto.
	* config/arm/arm.c (thumb_base_register_rtx_p): Rename...
	(thumb1_base_register_rtx_p): ... to this.
	(thumb_index_register_rtx_p): Rename...
	(thumb1_index_register_rtx_p): ... to this.
	(thumb_output_function_prologue): Rename...
	(thumb1_output_function_prologue): ... to this.
	(thumb_legitimate_address_p): Rename...
	(thumb1_legitimate_address_p): ... to this.
	(thumb_rtx_costs): Rename...
	(thumb1_rtx_costs): ... to this.
	(thumb_compute_save_reg_mask): Rename...
	(thumb1_compute_save_reg_mask): ... to this.
	(thumb_final_prescan_insn): Rename...
	(thumb1_final_prescan_insn): ... to this.
	(thumb_expand_epilogue): Rename...
	(thumb1_expand_epilogue): ... to this.
	(arm_unwind_emit_stm): Rename...
	(arm_unwind_emit_sequence): ... to this.
	(thumb2_legitimate_index_p, thumb2_legitimate_address_p,
	thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
	thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
	arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
	thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
	thumb2_output_casesi): New functions.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
	(FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
	FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
	THUMB2_WORK_REGS): Define.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
	arm_condexec_mask, arm_condexec_masklen)): New variables.
	(all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
	(arm_override_options): Check new CPU capabilities.
	Set new architecture flag variables.
	(arm_isr_value): Handle v7m interrupt functions.
	(user_return_insn): Return 0 for v7m interrupt functions.  Handle
	Thumb-2.
	(const_ok_for_arm): Handle Thumb-2 constants.
	(arm_gen_constant): Ditto.  Use movw when available.
	(arm_function_ok_for_sibcall): Return false for v7m interrupt
	functions.
	(legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
	(thumb_find_work_register, arm_load_pic_register,
	legitimize_tls_address, arm_address_cost, load_multiple_sequence,
	emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
	print_multi_reg, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
	output_mov_double_fpa_from_arm, output_move_double,
	arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
	arm_output_mi_thunk, thumb_set_return_address): Ditto.
	(arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
	(arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
	(arithmetic_instr, shift_op): Use arm_shift_nmem.
	(arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
	'!' and 'L'.
	(arm_final_prescan_insn): Use extract_constrain_insn_cached.
	(thumb_expand_prologue): Use thumb_set_frame_pointer.
	(arm_file_start): Output directive for unified syntax.
	(arm_unwind_emit_set): Handle stack alignment instruction.
	* config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
	Add v6t2, v7, v7a, v7r and v7m.
	(RETLDM): Add Thumb-2 code.
	(do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
	(TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
	TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
	THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
	ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
	CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
	ADJUST_INSN_LENGTH): Define.
	(TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
	STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
	BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
	PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
	SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
	TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
	HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
	HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
	REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
	REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
	GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
	ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
	FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
	PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
	* config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
	cortex-m3.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-protos.h: Update prototypes.
	* config/arm/vfp.md: Enable patterns for Thumb-2.
	(arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
	(arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
	(thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
	thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
	* config/arm/libunwind.S: Add Thumb-2 code.
	* config/arm/constraints.md: Update include Thumb-2.
	* config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
	* config/arm/ieee754-df.S: Ditto.
	* config/arm/bpabi.S: Ditto.
	* config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
	* config/arm/predicates.md (low_register_operand,
	low_reg_or_int_operand, thumb_16bit_operator): New.
	(thumb_cmp_operand, thumb_cmpneg_operand): Rename...
	(thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
	* config/arm/t-arm-elf: Add armv7 multilib.
	* config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
	Include thumb2.md.
	(UNSPEC_STACK_ALIGN, ce_count): New.
	(arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
	arm_zero_extendsidi2, arm_zero_extendqidi2): New
	insns/expanders.
	* config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
	(thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
	thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
	* config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
	(cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
	thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
	insns.
	* doc/extend.texi: Document ARMv7-M interrupt functions.
	* doc/invoke.texi: Document Thumb-2 new cores+architectures.

From-SVN: r120408
2007-01-03 23:48:10 +00:00
Jakub Jelinek f8e7718c6f unwind-dw2.c (SIGNAL_FRAME_BIT, [...]): Define.
* unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
	(struct _Unwind_Context): Rename args_size to flags, remove
	signal_frame field, add a new args_size field and version field.
	(_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
	_Unwind_IsExtendedContext): New inline functions.
	(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
	Assume by_value array is only present if _Unwind_IsExtendedContext.
	(_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
	_Unwind_IsSignalFrame.
	(__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
	(uw_update_context_1): Use _Unwind_SetSignalFrame.
	(uw_init_context_1): Initialize context->flags to
	EXTENDED_CONTEXT_BIT.
	* config/rs6000/linux-unwind.h (frob_update_context): Use
	_Unwind_SetSignalFrame.

From-SVN: r120406
2007-01-04 00:45:47 +01:00
Andrew Pinski 798d1cc9ee Fix PR number in my last changelog entry, I got the testsuite one correct.
From-SVN: r120405
2007-01-03 15:02:13 -08:00
Andrew Pinski d9c2d2969d re PR target/20353 (uclibc does not provide C99 math functions)
2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/20353
        * gimplify.c (gimplify_modify_expr_complex_part): Move below
        tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
        the value.

2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30353
        * gcc.c-torture/compile/complex-4.c: New test.

From-SVN: r120404
2007-01-03 15:00:40 -08:00
Kazu Hirata d60ab19691 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
From-SVN: r120395
2007-01-03 08:42:27 +00:00
Kazu Hirata a590ac6560 alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120386
2007-01-03 08:04:01 +00:00
Kazu Hirata 8a2fcf9128 i386.h (NON_STACK_REG_P, [...]): Remove.
* config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
	REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
	RET, AT_SP): Remove.
	* config/i386/i386.md (*sse_prologue_save_insn): Use return
	instead of RET.

From-SVN: r120383
2007-01-03 06:44:38 +00:00
Zdenek Dvorak 03cb2019ff loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
* loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
	to loop_version.
	* cfgloopmanip.c (scale_loop_frequencies): Export.
	(loopify): Scale the frequencies by prescribed coefficients.
	(set_zero_probability): New function.
	(duplicate_loop_to_header_edge): Improve updating of frequencies.
	(lv_adjust_loop_entry_edge, loop_version): Set probabilities
	and frequencies according to arguments.
	* tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
	correctly.
	* cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
	* modulo-sched.c (sms_schedule): Set probabilities for entering
	versioned loop correctly.
	* tree-vect-transform.c (vect_transform_loop): Ditto.
	* cfgloop.h (loopify, loop_version): Declaration changed.
	(scale_loop_frequencies): Declared.

	* gcc.dg/tree-ssa/update-unroll-1.c: New test.
	* gcc.dg/tree-ssa/update-unswitch-1.c: New test.

From-SVN: r120378
2007-01-03 02:29:00 +00:00
Jan Hubicka 7a388ee453 pr16194.c: We now output error on all three functions, not just first one.
* gcc.dg/pr16194.c: We now output error on all three functions, not just
	first one.

	* cgraph.c: Include tree-flow.h
	(cgraph_add_new-function): Handle IPA_SSA mode; execute
	early_local_passes.
	* cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
	* tree-pass.h (pass_all_early_optimizations): Declare.
	* cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
	early_local_passes.
	(cgraph_analyze_function): Do early_local_passes.
	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
	Do not add referenced vars.
	* tree-optimize.c (gate_all_optimizations): Do not execute when not in
	SSA form.
	(gate_all_early_local_passes): New gate.
	(pass_early_local_passes): Use new gate.
	(execute_early_local_optimizations): New functions.
	(gate_all_early_optimizations): New gate.
	(pass_all_early_optimizations): New pass.
	(execute_free_datastructures): Free SSA only when initialized.
	(gate_init_datastructures): Init only when optimizing.
	(tree_lowering_passes): Do early local passes when called late.
	* tree-profile.c (do_tree_profiling): Don't profile functions added
	late.
	(do_early_tree_profiling, pass_early_tree_profile): Kill.
	* tree-cfg.c (update_modified_stmts): Do not update when operands are
	not active.
	* passes.c (init_optimizations_passes): Reorder so we go into SSA
	during early_local_passes.
	* Makefile.in (cgraph.o): Add dependency on tree-flow.h.

From-SVN: r120373
2007-01-03 01:12:56 +00:00
Carlos O'Donell ce7b00a869 Makefile.in: Update copyright year.
gcc/

2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Update copyright year.

From-SVN: r120360
2007-01-02 22:20:41 +00:00
Carlos O'Donell b3e7b87f99 Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST) in $(lang_checks) and...
gcc/

2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
	in $(lang_checks) and check-consistency targets.

From-SVN: r120359
2007-01-02 22:13:19 +00:00
Jan Hubicka ed1a2abdb1 tree-mudflap.c (mf_decl_cache_locals, [...]): Do not add referenced vars.
* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
        Do not add referenced vars.
        * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
        are not active.
        * passes.c (init_optimization_passes): Put mudflap_2 after
        free_datastructures.

From-SVN: r120358
2007-01-02 21:36:17 +00:00
Jan Hubicka de6bd996eb tree-optimize (execute_fixup_cfg): Set after_inlining flag.
2007-01-02  Jan Hubicka  <jh@suse.cz>

	* tree-optimize (execute_fixup_cfg): Set after_inlining flag.
	Set NOTHROW flag on call statements proved to be nothrow.
	Update statement of local calls so new pure/const functions are
	updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
	goto receivers.
	(tree_rest_of_compilation): Register hooks and initialize bitmap
	early. Do not set after_inlining flag.

From-SVN: r120357
2007-01-02 21:33:45 +00:00
Steve Ellcey a063525a3a sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to HOST_BITS_PER_LONGLONG
* sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
	HOST_BITS_PER_LONGLONG

From-SVN: r120356
2007-01-02 21:23:55 +00:00
Manuel López-Ibáñez b405ac807c re PR c/19977 (overflow in non-static initializer should not be pedwarn)
2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>

	PR c/19977
	* c-typeck.c (store_init_value): Don't emit pedantic overflow
	warning for non-static initializers.

testsuite/
	* gcc/testsuite/gcc.dg/overflow-warn-3.c: Remove XFAIL.
	* gcc/testsuite/gcc.dg/overflow-warn-4.c: Remove XFAIL.

From-SVN: r120355
2007-01-02 20:07:44 +00:00
Steven Bosscher bd94cb6ec8 alpha.md, [...]: Always use set_unique_reg_note to add REG_EQUAL notes.
* config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
        m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
        rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
        Always use set_unique_reg_note to add REG_EQUAL notes.

From-SVN: r120353
2007-01-02 18:50:33 +00:00
Kazu Hirata 61465e7563 Revert:
2007-01-02  Kazu Hirata  <kazu@codesourcery.com>

	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120351
2007-01-02 18:06:37 +00:00
Ian Lance Taylor fbc8d2d30e c-common.c (c_common_truthvalue_conversion): When warning about using an assignment as a truth value, set TREE_NO_WARNING.
./:	* c-common.c (c_common_truthvalue_conversion): When warning about
	using an assignment as a truth value, set TREE_NO_WARNING.
cp/:
	* semantics.c (maybe_convert_cond): Optionally warn when using an
	assignment as a condition.
	* typeck.c (convert_for_assignment): Optionally warn about
	assigning the result of an assignment to a bool.
testsuite/:
	* g++.dg/warn/Wparentheses-22.C: New test.
	* g++.dg/warn/Wparentheses-23.C: New test.

From-SVN: r120348
2007-01-02 17:49:07 +00:00
Manuel López-Ibáñez b1ed4cb43c re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wold-style-declaration): New.
	* doc/invoke.texi (C-only Warning Options): New.
	(Wold-style-declaration): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-decl.c (declspecs_add_scspec): Replace -Wextra with
	-Wold-style-declaration.

testsuite/
	* gcc.dg/declspec-3.c: Replace -W with -Wold-style-declaration.
	* gcc.dg/declspec-3-Wextra.c: New.
	* gcc.dg/declspec-3-no.c: New

From-SVN: r120347
2007-01-02 17:33:25 +00:00
Kazu Hirata d887a68299 alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120345
2007-01-02 17:03:22 +00:00
Douglas Gregor 06d40de8bb c-common.c (c_common_nodes_and_builtins): Since variants of void_type_node get built before it is given a name...
2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>

	* c-common.c(c_common_nodes_and_builtins): Since variants of
	void_type_node get built before it is given a name, we need to
	give those variants the name, too. 
	(complete_array_type): We need to work with the canonical main
	type of the array, from which we will build the qualified version.
	* params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
	* print-tree.c (print_node): Display canonical type information
	for each type.
	* stor-layout.c (layout_type): When we don't know the
	alignment of a type for which we're building an array, we end up
	guessing wrong, so make the type require structural equality.
	* tree.c (make_node_stat): When we build a new type, it is its
	own canonical type.
	(build_type_attribute_qual_variant): When building an attribute
	variant, its canonical type is the non-attribute variant. However,
	if the attributes are target-dependent and they differ, we need to
	use structural equality checks for this type.
	(build_qualified_type): A qualified type is not equivalent to its
	unqualified variant; set the canonical type appropriately.
	(build_distinct_type_copy): When building a distinct type from
	another type, the new type is its own canonical type.
	(build_variant_type_copy): When building a new type variant, we
	assume that it is equivalent to the original type.
	(build_pointer_type_for_mode): When building a pointer type, also
	build a canonical type pointer.
	(build_reference_type_for_mode): When building a reference type,
	also build a canonical type reference.
	(build_index_type): When we can't hash an index type (e.g.,
	because its maximum value is negative), the index type requires
	structural equality tests.
	(build_array_type): Build the canonical form of an array type.
	(build_function_type): Function types require structural equality,
	because they contain default arguments, attributes, etc. 
	(build_method_type_directly): Ditto for method types.
	(build_offset_type): Build the canonical offset type.
	(build_complex_type): Build the canonical vector type.
	(make_vector_type): Build the canonical vector type.
	* tree.h (TYPE_CANONICAL): New.
	(TYPE_STRUCTURAL_EQUALITY_P): New.
	(SET_TYPE_STRUCTURAL_EQUALITY): New.
	(struct tree_type): Added "canonical" field.
	* params.h (VERIFY_CANONICAL_TYPES): New.
	* doc/c-tree.texi (TYPE_CANONICAL): Document.
	(TYPE_STRUCTURAL_EQUALITY_P): Document.
	(SET_TYPE_STRUCTURAL_EQUALITY): Document.
	* doc/invoke.texi (verify-canonical-types): Document --param
	parameter for verifying canonical types.
	
2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>

	* typeck.c (structural_comptypes): Renamed from "comptypes".
	(comptypes): Use canonical type information to perform fast type
	comparison. When VERIFY_CANONICAL_TYPES, verify that the
	canonical type comparison returns the same results as we would see
	from the current, structural check. Support COMPARE_STRUCTURAL
	when we need structural checks.
	* decl.c (typename_compare): Fix comment.
	(build_typename_type): TYPENAME_TYPE nodes require structural
	equality checks, because they resolve different based on the
	current class type.
	(make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
	require structural equality checks (for now).
	(build_ptrmemfunc_type): Build the canonical pointer to member
	function type.
	(compute_array_index_type): Whenever we build a new index type
	to represent the size of an array in a template, we need to mark
	this index type as requiring structural equality. This goes for
	arrays with value-dependent sizes with the current ABI, or all
	arrays with ABI-1.
	* tree.c (cplus_array_hash): New.
	(struct cplus_array_info): New.
	(cplus_array_compare): New.
	(cplus_array_htab): New.
	(build_cplus_array_type_1): Use a hash table to cache the array
	types we build. Build the canonical array type for each array
	type.
	(cp_build_qualified_type_real): When building a cv-qualified array
	type, use the hash table of array types and build canonical array
	types as necessary.
	(bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
	use structural equality (for now).
	* cp-tree.h (COMPARE_STRUCTURAL): New.
	* pt.c (canonical_template_parms): New.
	(canonical_type_parameter): New.
	(process_template_parm): Find the canonical type parameter.
	(lookup_template_class): When we have named the primary template
	type, set the canonical type for our template class to the primary
	template type. If any of the template arguments need structural
	equality checks, the template class needs structural equality
	checks.
	(tsubst): When reducing the level of a template template
	parameter, we require structural equality tests for the resulting
	parameter because its template parameters have not had their types
	canonicalized. When reducing a template type parameter, find the
	canonical reduced type parameter.
	(any_template_arguments_need_structural_equality_p): New.

2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
	
	* objc-act.c (objc_build_volatilized_type): Keep track of
	canonical types.
	(objc_get_protocol_qualified_type): Ditto.

From-SVN: r120341
2007-01-02 14:23:26 +00:00
Joseph Myers eca0d5e8ce config.gcc (powerpc-*-eabispe*, [...]): Add rs6000/e500.h to tm_file.
* config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
	powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
	powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
	powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
	tm_file.
	* config/rs6000/e500.h: New.
	* config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
	TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
	Remove.
	* config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
	TARGET_E500_DOUBLE): Remove.
	* config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
	* config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
	* config/rs6000/rs6000.c (rs6000_override_options): Use
	CHECK_E500_OPTIONS.

From-SVN: r120340
2007-01-02 13:08:01 +00:00
Joseph Myers 8ef65e3da8 rs6000.c (print_operand): Check (TARGET_SPE || TARGET_E500_DOUBLE), not TARGET_E500, for %y.
* config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
	TARGET_E500_DOUBLE), not TARGET_E500, for %y.
	(rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
	rs6000_emit_cmove): Don't check TARGET_E500.
	* config/rs6000/rs6000.md (bunordered, bordered, sunordered,
	sordered): Don't check TARGET_E500.

From-SVN: r120339
2007-01-02 13:03:59 +00:00
Eric Christopher d8934cf1e3 mips.c (mips_regno_mode_ok_for_base_p): Use HARD_REGISTER_NUM_P.
2007-01-01  Eric Christopher  <echristo@apple.com>

        * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
        HARD_REGISTER_NUM_P.

From-SVN: r120334
2007-01-02 06:34:09 +00:00
Roger Sayle cf06e5c146 fold-const.c (fold_binary): Fold "(X^C1) eq/ne C2" into "X eq/ne (C1^C2)".
* fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
	"X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
	has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
	eq/ne Y".

	* gcc.dg/fold-eqxor-4.c: New test case.

From-SVN: r120333
2007-01-02 04:32:07 +00:00
Mike Stump e68ea32e94 configure.ac: Remove support for building with Apple's gcc-3.1.
gcc:
	* configure.ac: Remove support for building with Apple's gcc-3.1.
config:
	* mh-ppc-darwin: Remove support for building with Apple's gcc-3.1.

From-SVN: r120331
2007-01-02 03:35:17 +00:00
Joseph Myers a446b4e815 re PR middle-end/30311 (revision 120211 failed to compile perlbench)
gcc:
	PR middle-end/30311
	* caller-save.c (add_stored_regs): Only handle SUBREGs if inner
	REG is a hard register.  Do not modify REG before calling
	subreg_nregs.
	* rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
	multiple of the size of YMODE for certain lowpart cases.

gcc/testsuite:
	* gcc.c-torture/compile/pr30311.c: New test.

From-SVN: r120329
2007-01-02 00:38:21 +00:00
Andrew Pinski e7073e6440 Fix misspelling of GIMPLE_MODIFY_STMT.
This is what I get for copying manually the patch.

From-SVN: r120322
2007-01-01 14:27:27 -08:00
Andrew Pinski c0893ec0e1 re PR middle-end/30253 (ICE with statement expression inside a conditional)
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30253
        * gimplify (voidify_wrapper_expr): Update for
        GIMPLIFY_MODIFY_STMT.

2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30253
        * gcc.c-torture/compile/statement-expression-1.c: New test.

From-SVN: r120321
2007-01-01 14:19:58 -08:00
Andreas Schwab ae1e2d4caa re PR target/29166 (broken unwind information for many life variables resulting in register corruption)
PR target/29166
	* config/ia64/ia64.c (ia64_compute_frame_size): Account space for
	save of BR0 in extra_spill_size instead of spill_size.
	(ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
	area.
	(ia64_expand_epilogue): Restore BR0 from its new location.

testsuite/:
	* g++.dg/eh/pr29166.C: New test.

From-SVN: r120319
2007-01-01 22:03:23 +00:00
Andrew Pinski 9bed0a3480 gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>): Use a temporary variable if the left hand side is not a gimple register.
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
        Use a temporary variable if the left hand side is not a gimple
        register.

From-SVN: r120318
2007-01-01 14:01:59 -08:00
Andrew Pinski a441d616ba gimplify.c (gimplify_return_expr): Make the temporary variable for the return expression, a gimple register variable.
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        * gimplify.c (gimplify_return_expr): Make the temporary variable
        for the return expression, a gimple register variable.

From-SVN: r120317
2007-01-01 13:58:19 -08:00
Jan Hubicka 95e2a53bfc emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for INSN_LIST.
* emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
	INSN_LIST.

From-SVN: r120316
2007-01-01 21:53:31 +00:00
Mike Stump 5708d18d3e configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for .literal16.
* configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
	.literal16.
	* config/darwin.c (machopic_select_rtx_section): Use
	HAVE_GAS_LITERAL16.
	(darwin_mergeable_constant_section): Likewise.
	* configure: Regenerate.
	* config.in: Regenerate.

From-SVN: r120315
2007-01-01 20:58:38 +00:00
Jan Hubicka 03c72655ba cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions before starting IPA passes.
* cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
	before starting IPA passes.

Co-Authored-By: Andrew Pinski <pinskia@gmail.com>

From-SVN: r120314
2007-01-01 20:11:09 +00:00
Mike Stump f1aea409a4 Rotate ChangeLog file.
From-SVN: r120313
2007-01-01 19:54:50 +00:00
Richard Guenther e015f57888 re PR tree-optimization/30137 (Missed folding of pointer comparison)
2006-12-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30137
	* fold-const.c (fold_comparison): Fold comparison of addresses
	of components.

	* testsuite/gcc.dg/pr30137-1.c: New testcase.
	* testsuite/gcc.dg/pr30137-2.c: Likewise.

From-SVN: r120301
2006-12-31 17:27:35 +00:00
Roger Sayle 870aa1ebe0 re PR middle-end/30322 (((-i-1) + i) +1) is turned into ~i + (i+1) and never into 0 on the tree level)
PR middle-end/30322
	* fold-const.c (fold_binary): Fold X + ~X and ~X + X into -1 when
	we don't care about trapping overflow.  Only convert -A - 1 into ~A
	when we don't care about trapping overflow.

	* gcc.dg/fold-plusnot-1.c: New test case.

From-SVN: r120300
2006-12-31 16:17:49 +00:00
Richard Guenther 72ff1a9609 re PR middle-end/30338 (infinite loop in maybe_canonicalize_comparison)
2006-12-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30338
	* fold-const.c (fold_binary): Fix type-mismatch in folding
	of -1 - A to ~A.

	* gcc.c-torture/compile/pr30338.c: New testcase.

From-SVN: r120297
2006-12-31 14:01:19 +00:00
Kazu Hirata 5305a4cb33 * tree-inline.c: Fix a comment typo.
From-SVN: r120288
2006-12-30 21:17:30 +00:00
Jan Hubicka 54e7d067d5 ipa-pure-const.c (check_operand): SSA_NAME is safe.
* ipa-pure-const.c (check_operand): SSA_NAME is safe.
	* ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs.

From-SVN: r120286
2006-12-30 12:15:16 +00:00
Jan Hubicka b730fa614c tree.h (DECL_CALL_CLOBBERED): Remove.
* tree.h (DECL_CALL_CLOBBERED): Remove.
	(tree_decl_common): Remove call_clobbered flag.
	* tree-flow.h (struct var_ann_d): Add call_clobbered flag.
	* tree-ssa-alias.c (mark_non_addressable, reset_cc_flags): Update.
	* tree-flow-inline.h (is_call_clobbered, mark_call_clobbered,
	clear_call_clobbered): Update.
	* tree-ssa.c (verify_call_clobbering): Update.

From-SVN: r120285
2006-12-30 12:03:47 +00:00
Jan Hubicka d586d6d1f6 tree-ssa-alias.c (create_structure_vars): When in SSA, update operand caches.
* tree-ssa-alias.c (create_structure_vars): When in SSA, update operand
	caches.
	* tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken
	bitmap.

From-SVN: r120284
2006-12-30 12:02:09 +00:00
Jan Hubicka 4b73962b7e emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential amount of copies of INSN_NOTEs list.
* emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential
	amount of copies of INSN_NOTEs list.

Co-Authored-By: Vladimir Yanovsky <volodyan@gmail.com>

From-SVN: r120283
2006-12-30 12:00:45 +00:00
Jan Hubicka f45e0ad1c7 cgraph.c (cgraph_exapnd_queue): Rename to...
* cgraph.c (cgraph_exapnd_queue): Rename to...
	(cgraph_new_nodes): ... this one.
	(cgraph_state): New global variable.
	(cgraph_add_new_function): Work in more cases.
	* cgraph.h (cgraph_expand_queue): Rename to ...
	(cgraph_new_nodes): ... this one.
	(cgraph_state): New enum and static variable.
	(cgraph_add_new_function): Update prototype.
	(cgraph_process_new_functions): New.
	* omp-low.c (expand_omp_parallel): Update.
	* cgraphunit.c (initialize_inline_failed): Declare early.
	(cgraph_process_new_functions): New function.
	(cgraph_assemble_pending_functions): Use it.
	(cgraph_expand_all_functions): Use it.
	(cgraph_optimize): Use it; set cgraph_state.
	* passes.c (execute_one_pass, execute_ipa_pass_list): Process new
	functions

From-SVN: r120282
2006-12-30 11:58:01 +00:00
Kazu Hirata 5fb233742c i386.h (NON_QI_REG_P): Remove.
* config/i386/i386.h (NON_QI_REG_P): Remove.
	* config/i386/predicates.md (non_q_regs_operand): Remove.

From-SVN: r120267
2006-12-29 16:07:37 +00:00
Kazu Hirata cb9444a7ab tree-cfg.c (last_stmt_ptr): Remove.
* tree-cfg.c (last_stmt_ptr): Remove.
	* tree-flow.h: Remove the prototype for last_stmt_ptr.

From-SVN: r120266
2006-12-29 16:05:57 +00:00
Ian Lance Taylor c6d86fcea5 c-common.c (c_define_builtins): New static function broken out of c_common_nodes_and_builtins.
* c-common.c (c_define_builtins): New static function broken out
	of c_common_nodes_and_builtins.
	(c_common_nodes_and_builtins): Call c_define_builtins unless only
	doing preprocessing.

From-SVN: r120264
2006-12-29 15:48:26 +00:00
Jan Hubicka 110cfe1cdc tree-inline.c (remap_ssa_name): New function.
* tree-inline.c (remap_ssa_name): New function.
	(remap_decl): Update SSA datastructures for DECLs.
	(copy_body_r): Deal with SSA_NAMEs; add referenced global vars.
	(copy_bb): Set SSA_NAME def stmts.
	(update_ssa_acorss_eh_edges): New function.
	(copy_edge_for_bb): Call it; mark new vars for renaming.
	(copy_phis_for_bb): New function.
	(initialize_cfun): Break out from ...
	(copy_cfg_body): ... here; maintain AUX map for both directions;
	call SSA updating workers; do not produce copy of cfun to be copied.
	(setup_one_parameter): Do propagation across SSA form.
	(declare_return_variable): Work on SSA; use return_slot instead of
	address of return slot of argument to avoid folding back and forth.
	(expand_call_inline): Update SSA from on return values.
	(optimize_inline_calls): Do sanity checking, dead blocks removal,
	update SSA form.
	(tree_function_verioning): Update initialize_cfun.

From-SVN: r120260
2006-12-29 11:10:31 +00:00
Marcin Dalecki 311c6da40f invoke.texi: Replace no longer supported -fno-strength-reduce with -fmerge-constants in...
2006-12-29  Marcin Dalecki  <martin@dalecki.de>

	* doc/invoke.texi: Replace no longer supported -fno-strength-reduce
	with -fmerge-constants in sample code.

From-SVN: r120253
2006-12-29 02:39:32 +01:00
Kazu Hirata 90a0f159e1 Makefile.in (OBJS-common): Remove conflict.o
* Makefile.in (OBJS-common): Remove conflict.o
	(conflict.o): Remove.
	* basic-block.h: Remove the prototypes for conflict.c.
	* conflict.c: Remove.

From-SVN: r120238
2006-12-28 06:44:53 +00:00
Daniel Berlin 97508a6b31 sbitmap.c (BITMAP_DEBUGGING): New macro.
2006-12-27  Daniel Berlin  <dberlin@dberlin.org>

	* sbitmap.c (BITMAP_DEBUGGING): New macro.
	(do_popcount): Ditto.
	(sbitmap_verify_popcount): New function.
	(sbitmap_alloc): Set popcount to NULL, remove set of bytes
	member.
	(sbitmap_alloc_with_popcount): New function.
	(sbitmap_resize): Remove uses of bytes member and update
	popcount.
	(sbitmap_realloc): Remove uses of bytes member.
	(sbitmap_copy): Copy popcount.
	(sbitmap_copy_n): New function.
	(sbitmap_zero): Update popcount cache.
	(sbitmap_ones): Ditto.
	(sbitmap_a_and_b): Ditto.
	(sbitmap_a_or_b): Ditto.
	(sbitmap_a_xor_b): Ditto.
	(sbitmap_union_of_diff_cg): Assert non-existence of popcount
	cache.
	(sbitmap_union_of_diff): Ditto.
	(sbitmap_not): Ditto.
	(sbitmap_difference): Ditto.
	(sbitmap_a_and_b_cg): Ditto.
	(sbitmap_a_xor_b_cg): Ditto.
	(sbitmap_a_or_b_cg): Ditto.
	(sbitmap_a_or_b_and_c_cg): Ditto.
	(sbitmap_a_and_b_or_c_cg): Ditto.
	(sbitmap_intersection_of_succs): Ditto.
	(sbitmap_intersection_of_preds): Ditto.
	(sbitmap_union_of_succs): Ditto.
	(sbitmap_union_of_preds): Ditto.
	(popcount_table): New.
	(sbitmap_elt_popcount): New function.
	(sbitmap_popcount): Ditto.

	* sbitmap.h (sbitmap): Remove bytes member.
	Add popcount member.
	(SET_BIT): Macro turned into function.
	(RESET_BIT): Ditto.
	(SBITMAP_SIZE_BYTES): New macro.
	(sbitmap_free): Free popcount too.
	(sbitmap_alloc_with_popcount): New prototype.
	(sbitmap_copy_n): Ditto.
	(sbitmap_verify_popcount): Ditto.

From-SVN: r120237
2006-12-28 06:23:06 +00:00
Ian Lance Taylor ae64e535a3 re PR debug/26964 (Duplicate debug info for enums in namespaces)
PR debug/26964
	* dwarf2out.c (gen_type_die): Don't write out a DIE for
	ENUMERAL_TYPE if it was already written out.

From-SVN: r120221
2006-12-27 21:48:05 +00:00
Kaveh R. Ghazi 5f641bd832 re PR middle-end/29335 (transcendental functions with constant arguments should be resolved at compile-time)
PR middle-end/29335
	* builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3,
	do_mpfr_sincos): Ensure target base equals two.

From-SVN: r120211
2006-12-26 19:03:17 +00:00
Kazu Hirata 04b5b56c85 * tree-ssa-operands.c: Fix a comment typo.
From-SVN: r120210
2006-12-26 15:44:54 +00:00
Kazu Hirata 401fb5a0a8 * tree-vectorizer.h (VECT_SMODULO): Remove.
From-SVN: r120202
2006-12-25 23:36:53 +00:00
Andreas Tobler 664400c666 pa.c: Remove heap vector type defines.
2006-12-24  Andreas Tobler  <a.tobler@schweiz.org>

	* config/pa/pa.c: Remove heap vector type defines.

From-SVN: r120191
2006-12-24 21:57:35 +01:00
Jan Hubicka 497f1b8117 tree-ssa-operands.h (struct ssa_operand_memory_d): add ssa_operand_mem_size.
* tree-ssa-operands.h (struct ssa_operand_memory_d):
	add ssa_operand_mem_size.
	* tree-ssa-operands.c (operands_bitmap_obstack): New.               
	(ssa_operand_mem_size): Remove.
	(init_ssa_operands): Initialize obstack; use it.
	(fini_ssa_operands): Release obstack.
	(ssa_operand_alloc): Update.
	(finalize_ssa_vdefs, finalize_ssa_vuse_ops, copy_virtual_operands,
	get_mpt_for): Use obstack.
	* tree-ssa.c (delete_tree_ssa): Call fini_ssa_operands.
	* tree-outof-ssa.c: (remove_ssa_form): Don't call it here.

From-SVN: r120189
2006-12-24 10:23:25 +00:00
Jan Hubicka 7a223fd48d tree-mudflap.c (ml_decl_cache_locals, [...]): add newly referenced vars.
* tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for):
	add newly referenced vars.

From-SVN: r120188
2006-12-24 10:17:15 +00:00
Kazu Hirata 9b1ae0a097 basic-block.h: Remove the prototype for expected_value_to_br_prob.
* basic-block.h: Remove the prototype for
	expected_value_to_br_prob.
	* rtl.h: Remove the prototypes for expand_builtin_expect_jump
	and purge_line_number_notes.

From-SVN: r120186
2006-12-24 01:47:56 +00:00
Zdenek Dvorak 6e42ce54f7 tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne, [...]): Use integer_zerop/integer_nonzerop instead of...
* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne,
	assert_no_overflow_lt, assert_loop_rolls_lt,
	number_of_iterations_lt, number_of_iterations_le,
	number_of_iterations_cond, number_of_iterations_exit):
	Use integer_zerop/integer_nonzerop instead of
	null_or_integer_zerop/nonnull_and_integer_nonzerop.
	* tree.h (null_or_integer_zerop, nonnull_and_integer_nonzerop):
	Removed.
	* tree-scalar-evolution.c (simple_iv): Return zero for step of
	an invariant.
	* tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants
	to zero.
	(get_iv): Return NULL for non-scalar types.  Use zero as a step
	of an invariant.
	(determine_biv_step, find_interesting_uses_op,
	find_interesting_uses_cond, find_interesting_uses_stmt,
	add_old_ivs_candidates, determine_use_iv_cost_condition,
	rewrite_use_compare, remove_unused_ivs):
	Use integer_zerop instead of null_or_integer_zerop.
	(struct ifs_ivopts_data): Replace step_p field with step field.
	(idx_find_step): Use zero as a step of an invariant.  Modify
	step instead of *step_p.
	(find_interesting_uses_address): Use zero as a step of an invariant.
	Use integer_zerop instead of null_or_integer_zerop.
	(find_interesting_uses_outside): Call find_interesting_uses_op only
	for phi nodes for real operands.
	(add_candidate_1): Expect step to be non-NULL.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Expect step to be
	non-NULL.

From-SVN: r120179
2006-12-23 23:05:52 +00:00
Andrew Pinski ebf5f54a1d vec.c: Don't include tree.h.
2006-12-23  Andrew Pinski  <pinskia@gmail.com>

        * vec.c: Don't include tree.h.
        * Makefile.in (vec.o): Update dependencies.
        (build/vec.o): Likewise.

From-SVN: r120178
2006-12-23 14:38:34 -08:00
Kazu Hirata 294340bf91 Makefile.in (final.o): Depend on vecprim.h.
* Makefile.in (final.o): Depend on vecprim.h.
	* final.c: Include vecprim.h.
	(insn_addresses_): Change the type to VEC(int,heap)*.
	* insn-addr.h (INSN_ADDRESSES_DEFN): Remove.
	(INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_SIZE,
	INSN_ADDRESSES_NEW): Use VEC instead of VARRAY.

From-SVN: r120177
2006-12-23 22:10:10 +00:00
Kazu Hirata 8aceba8c95 common.opt (flag_force_mem): Remove.
* common.opt (flag_force_mem): Remove.
	* doc/invoke.texi (-fforce-mem): Remove.
	* opts.c (common_handle_option): Don't handle OPT_fforce_mem.

From-SVN: r120176
2006-12-23 21:54:59 +00:00
Marcin Dalecki 7fa982e563 cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory consumption reporting.
2006-12-23  Marcin Dalecki  <martin@dalecki.de>

       * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory
       consumption reporting.

From-SVN: r120174
2006-12-23 19:10:48 +01:00
Manuel López-Ibáñez cb4af25a80 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2006-12-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wmissing-parameter-type): New.
	* doc/invoke.texi (Wmissing-parameter-type): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-decl.c (store_parm_decls_oldstyle): Replace Wextra with
	Wmissing-parameter-type.
	
testsuite/

	* gcc.dg/Wmissing-parameter-type.c: New.
	* gcc.dg/Wmissing-parameter-type-Wextra.c: New.
	* gcc.dg/Wmissing-parameter-type-no.c: New.

From-SVN: r120173
2006-12-23 17:45:33 +00:00
Eric Botcazou ea049a4199 dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the function is leaf.
* dwarf2out.c (dbx_reg_number): Do leaf register remapping
	only if the function is leaf.
	(multiple_reg_loc_descriptor): Likewise.

From-SVN: r120170
2006-12-23 17:18:38 +00:00
Kazu Hirata 3c1dd4a384 * rtl.h (NOTE_EXPECTED_VALUE): Remove.
From-SVN: r120169
2006-12-23 16:01:47 +00:00
Jan Hubicka a5573239ec toplev.c (dump_memory_report): Break out from...
* toplev.c (dump_memory_report): Break out from...
	(finalize): Here.
	* toplev.h (dump_memory_report): Declare.
	(cmp_statistic): Rename to ...
	(final_cmp_statistic): ... this one
	(cmp_statistic): New.
	(dump_ggc_loc_staitsitcs): New FINAL parpameter.
	* common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare.
	* varray.c (dump_varray_staitiscs): Do not segfault when no varray was
	allocated so far.

From-SVN: r120168
2006-12-23 14:30:36 +00:00
Mike Stump 5b42ae41cb t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add -mmacosx-version-min=10.4.
* config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add
        -mmacosx-version-min=10.4.
        (crt2.o): Add $(DARWIN_EXTRA_CRT_BUILD_CFLAGS).

From-SVN: r120167
2006-12-23 05:54:19 +00:00
Jan Hubicka 6ac5a24645 tree-flow-inline.h (var_ann): External variable annotations are unshared too.
* tree-flow-inline.h (var_ann): External variable annotations are
	unshared too.
	(tree_common_ann): Handle correctly unshared variables annotations.
	* tree-dfa.c (create_var_ann): External variable annotations are
	unshared too.

From-SVN: r120164
2006-12-23 00:27:44 +00:00
Kazu Hirata 2ac6615771 basic-block.h: Remove the prototype for commit_edge_insertions_watch_calls.
* basic-block.h: Remove the prototype for
	commit_edge_insertions_watch_calls.
 	* cfgrtl.c (commit_edge_insertion): Drop the last argument.
	Simplify.
	(commit_edge_insertions_watch_calls): Remove.
	(commit_edge_insertions): Adjust the call to
	commit_one_edge_insertion.

From-SVN: r120157
2006-12-22 23:59:34 +00:00
Zdenek Dvorak 6e682d7ef0 tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed.
* tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed.
	(number_of_iterations_ne, number_of_iterations_lt_to_ne,
	assert_no_overflow_lt, assert_loop_rolls_lt,
	number_of_iterations_lt, number_of_iterations_le,
	number_of_iterations_cond, tree_simplify_using_condition_1,
	number_of_iterations_exit, find_loop_niter, loop_niter_by_eval,
	implies_nonnegative_p, implies_ge_p, record_nonwrapping_iv,
	idx_infer_loop_bounds, n_of_executions_at_most, scev_probably_wraps_p):
	Do not use zero_p/nonzero_p.
	* tree-ssa-loop-manip.c (determine_exit_conditions): Ditto.
	* tree-ssa-loop-ivopts.c (niter_for_exit, determine_biv_step,
	find_interesting_uses_op, find_interesting_uses_cond,
	find_interesting_uses_address, find_interesting_uses_stmt,
	strip_offset_1, add_candidate_1, add_old_ivs_candidates,
	difference_cost, determine_use_iv_cost_condition,
	rewrite_use_compare, remove_unused_ivs): Ditto.
	* tree-ssa-address.c (tree_mem_ref_addr, create_mem_ref_raw): Ditto.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
	* tree-cfg.c (find_taken_edge_cond_expr): Ditto.
	* tree.h (zero_p): Declaration removed.
	(null_or_integer_zerop, nonnull_and_integer_nonzerop): New.

From-SVN: r120156
2006-12-22 21:38:52 +00:00
Manuel López-Ibáñez 2b0017242d re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2006-12-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wclobbered): New.
	* doc/invoke.texi (Wclobbered): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* flow.c (rest_of_handle_life): Replace Wextra with Wclobbered.
	* function.c (setjmp_vars_warning): Only warn for Wclobbered.
	(setjmp_args_warning): Likewise.

testsuite/

	* gcc.dg/attr-returns_twice-1.c: Replace Wextra with Wclobbered.
	* gcc.dg/setjmp-1.c: Add explicit Wclobbered.

From-SVN: r120151
2006-12-22 15:54:05 +00:00
Kazu Hirata 24fc18b98c elfos.h, [...]: Fix comment typos.
* config/elfos.h, config/spu/spu.c, tree-ssa-operands.h,
	tree-ssa-ter.c: Fix comment typos.

From-SVN: r120149
2006-12-22 12:50:00 +00:00
Paolo Bonzini 46fd10da92 re PR rtl-optimization/29840 (build/genconditions ../../gcc/gcc/config/pa/pa.md > tmp-condmd.c: /bin/sh: 13354 Memory fault(coredump))
2006-12-22  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/29840

	* fwprop.c (forward_propagate_into): Reject artificial uses/defs.
	(fwprop_init): Add DF_HARD_REGS to df_init call.

From-SVN: r120147
2006-12-22 12:28:52 +00:00
Andrew Pinski bc0ebe76b3 tree-nested.c (create_tmp_var_for): Check for vector type when setting DECL_GIMPLE_REG_P.
2006-12-21  Andrew Pinski  <pinskia@gmail.com>

        * tree-nested.c (create_tmp_var_for): Check for vector type
        when setting DECL_GIMPLE_REG_P.

From-SVN: r120143
2006-12-21 23:25:00 -08:00
Roger Sayle 458e3389dc tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;" as the else branch of a COND_EXPR.
* tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;"
	as the else branch of a COND_EXPR.

From-SVN: r120140
2006-12-22 03:22:04 +00:00
Kazu Hirata dbb23ff705 * cgraphunit.c, varpool.c: Fix comment typos.
From-SVN: r120139
2006-12-22 01:30:17 +00:00
Kazu Hirata 2e226e6699 cgraphunit.c, [...]: Fix comment typos.
* cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c,
	output.h, toplev.c, tree-affine.h, tree-flow.h,
	tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c,
	tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c,
	tree-vrp.c, varpool.c: Fix comment typos.

From-SVN: r120137
2006-12-22 01:19:39 +00:00
Ulrich Weigand 10d55907ce spu.h (ARG_POINTER_CFA_OFFSET): Define.
* config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define.
	* config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P
	for insn setting up the frame pointer.  Do not set it for insns
	setting up scratch registers or storing the backchain.

From-SVN: r120125
2006-12-22 10:23:34 +11:00
Eric Botcazou e9d207d9ac re PR other/29639 (ext/bitmap_allocator/check_allocate_max_size.cc execution test)
PR other/29639
	* configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables
	are kept for .gnu.linkonce.t sections if COMDAT groups are disabled.
	* configure: Regenerate.

From-SVN: r120121
2006-12-21 22:10:30 +00:00
Joseph Myers 5f7fc2b832 rtlanal.c (subreg_get_info): Do not make register size computations for mode sizes not divisible by the...
* rtlanal.c (subreg_get_info): Do not make register size
	computations for mode sizes not divisible by the number of
	registers.

From-SVN: r120119
2006-12-21 20:58:57 +00:00
Daniel Berlin 225a58a770 tree-ssa-structalias.c (build_constraint_graph): Insert complex offsetted constraints into rhsvar, not lhsvar.
2006-12-21  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (build_constraint_graph): Insert complex
	offsetted constraints into rhsvar, not lhsvar.

From-SVN: r120114
2006-12-21 17:32:01 +00:00
Jakub Jelinek 5075abae44 re PR middle-end/30262 (ICE with nested fn accessed var in asm "m" constraint)
PR middle-end/30262
	PR middle-end/30263
	* tree-nested.c (walk_asm_expr): New function.
	(walk_stmts): Use it for ASM_EXPR.

	* gcc.c-torture/execute/20061220-1.c: New test.
	* gcc.dg/gomp/asm-1.c: New test.

From-SVN: r120106
2006-12-21 14:13:15 +01:00
Jakub Jelinek 4a4cd49c06 re PR target/30230 (Incorrect ia64 EH info when an EH region ends in the middle of a bundle)
PR target/30230
	* config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
	(bundling): Use it.

	* g++.dg/eh/ia64-2.C: New test.

From-SVN: r120103
2006-12-21 13:59:06 +01:00
Nathan Sidwell 970af86771 re PR target/28966 (-maltivec -m32 causes the stack to be saved and restored even though there is no need for it)
gcc/
	PR target/28966
	PR target/29248
	* reload1.c (reload): Realign stack after it changes size.
gcc/testsuite/
	PR target/28966
	PR target/29248
	* gcc.dg/rs6000-leaf.c: New.

From-SVN: r120102
2006-12-21 09:03:18 +00:00
Roger Sayle a957d77fc3 simplify-rtx.c (simplify_subreg): Use the correct mode when determining whether a SUBREG of a CONCAT refers to...
* simplify-rtx.c (simplify_subreg): Use the correct mode when
	determining whether a SUBREG of a CONCAT refers to the first or
	second component.

From-SVN: r120101
2006-12-21 04:35:05 +00:00
Ben Elliston 128ccfb078 spu.c (spu_builtin_mul_widen_even): Remove unused local variable `d'.
* config/spu/spu.c (spu_builtin_mul_widen_even): Remove unused
	local variable `d'.

From-SVN: r120100
2006-12-21 15:12:06 +11:00
Jan Hubicka 33dde1e155 tree-dfa.c (add_referenced_var): Walk initializers of non-constant/readonly static vars.
* tree-dfa.c (add_referenced_var): Walk initializers of
	non-constant/readonly static vars.

From-SVN: r120090
2006-12-20 22:45:42 +00:00
Jan Hubicka adb6509f4b tree-flow-inline.h (gimple_var_anns): New function.
* tree-flow-inline.h (gimple_var_anns): New function.
	(var_ann): Use hashtable for static functions.
	* tree-dfa.c (create_var_ann): Likewise.
	* tree-ssa.c (var_ann_eq, var_ann_hash): New functions.
	(init_tree_ssa): Initialize var anns.
	(delete_tree_ssa): Delete var anns; also clear out gimple_df.
	* tree-flow.h (struct static_var_ann_d): New structure.
	(gimple_df): Add var_anns.

From-SVN: r120089
2006-12-20 22:40:48 +00:00
Carlos O'Donell 0fd212e1bd re PR c/30242 (internal error in gcc break compilation)
gcc/

2006-12-20  Carlos O'Donell  <carlos@codesourcery.com>

	PR bootstrap/30242
	* gcc/c-incpath.c (add_standard_paths): Only relocate paths that 
	begin with the configured prefix.

From-SVN: r120088
2006-12-20 22:34:14 +00:00
Jan Hubicka 2a4f771a6e re PR rtl-optimization/30213 (Wrong code with optimized memset() (possible bug in RTL bbro optimizer))
PR target/30213
	* i386.c (expand_setmem_epilogue): Fix formating.
	(dsmalest_pow2_greater_than): New function.
	(ix86_expand_movmem): Improve comments; avoid re-computing of
	epilogue size.
	(promote_duplicated_reg_to_size): Break out from ...
	(expand_setmem): ... this one; reorganize promotion code;
	improve comments; avoid recomputation of epilogue size.

From-SVN: r120083
2006-12-20 20:46:15 +00:00
Andrew Pinski 75a4c3c194 re PR middle-end/30143 ([4.2 only] OpenMP can produce invalid gimple)
2006-12-20  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30143
        * omp-low.c (init_tmp_var): New function.
        (save_tmp_var): New function.
        (lower_omp_1): Use them for VAR_DECL.

2006-12-20  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30143
        * gcc.dg/gomp/complex-1.c: New testcase.

From-SVN: r120080
2006-12-20 09:50:17 -08:00
Andrew Pinski 1863bbcab5 tree-gimple.c (is_gimple_min_invariant): Treat constant vector CONSTRUCTORs as min invariants.
2006-12-20  Andrew Pinski  <pinskia@gmail.com>

        * tree-gimple.c (is_gimple_min_invariant): Treat constant vector
        CONSTRUCTORs as min invariants.

From-SVN: r120079
2006-12-20 09:46:39 -08:00
Joseph Myers f1f4e530a5 rtlanal.c (struct subreg_info, [...]): New.
* rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs):
	New.
	(subreg_regno_offset, subreg_offset_representable_p): Change to
	wrappers about subreg_get_info.
	(refers_to_regno_p, reg_overlap_mentioned_p): Use subreg_nregs.
	* rtl.h (subreg_nregs): Declare.
	* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING): Update to refer to
	subreg_get_info.
	* caller-save.c (mark_set_regs, add_stored_regs): Use
	subreg_nregs.
	* df-scan.c (df_ref_record): Use subreg_nregs.
	* flow.c (mark_set_1): Use subreg_nregs.
	* postreload.c (move2add_note_store): Use subreg_nregs.
	* reload.c (decompose, refers_to_regno_for_reload_p,
	reg_overlap_mentioned_for_reload_p): Use subreg_nregs.
	* resource.c (update_live_status, mark_referenced_resources,
	mark_set_resources): Use subreg_nregs.

From-SVN: r120076
2006-12-20 16:25:00 +00:00
Zdenek Dvorak ee8c1b05d5 loop-unswitch.c (unswitch_loop): Update arguments of duplicate_loop_to_header_edge call.
* loop-unswitch.c (unswitch_loop): Update arguments of
	duplicate_loop_to_header_edge call.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Ditto.
	* loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
	Ditto.
	* cfgloopmanip.c (loop_version): Ditto.
	(duplicate_loop_to_header_edge): Change
	type of to_remove to VEC(edge), remove n_to_remove argument.
	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
	Change type of to_remove to VEC(edge), remove n_to_remove argument.
	(tree_unroll_loop): Update arguments of
	tree_duplicate_loop_to_header_edge call.
	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge):
	Change type of to_remove to VEC(edge), remove n_to_remove argument.
	* cfghooks.h (struct cfg_hooks): Type of
	cfg_hook_duplicate_loop_to_header_edge changed.
	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
	* cfgloop.h (duplicate_loop_to_header_edge): Ditto.
	* tree-flow.h (tree_duplicate_loop_to_header_edge): Ditto.

From-SVN: r120074
2006-12-20 14:15:53 +00:00
Dorit Nuzman c882a2c238 spu.md (vec_widen_umult_hi_v8hi): New.
* config/spu/spu.md (vec_widen_umult_hi_v8hi): New.
        (vec_widen_umult_lo_v8hi, vec_widen_smult_hi_v8hi): New.
        (vec_widen_smult_lo_v8hi): New.
        * config/spu/spu.c (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
        (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
        (spu_builtin_mul_widen_even, spu_builtin_mul_widen_odd): New.

From-SVN: r120073
2006-12-20 14:07:38 +00:00
Jan Hubicka 0550e7b7aa cgraph.c: Update overall comment; fix vertical spacing.
* cgraph.c: Update overall comment; fix vertical spacing.
	* ipa-inline.c (cgraph_decide_inlining): Remove now redundant check.

From-SVN: r120071
2006-12-20 09:12:55 +00:00
Jan Hubicka 68e56cc4a2 cgraph.h (FOR_EACH_STATIC_VARIABLE, [...]): New macros.
* cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New
	macros.
	(varpool_first_static_initializer, varpol_next_static_initializer): New
	inline functions.
	* ipa-reference.c (analyze_variable): Simplify.
	(static_execute): Use FOR_EACH_STATIC_INITIALIZER.
	* ipa-type-escape.c (type_escape_execute): Use FOR_EACH_STATIC_VARIABLE.

From-SVN: r120070
2006-12-20 09:09:50 +00:00
Andrew Pinski 7954dc2121 re PR tree-optimization/30045 (ICE in nonnull_arg_p with the CHAIN decl)
2006-12-19  Andrew Pinski  <pinskia@gmail.com>

        PR tree-opt/30045
        * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
        non null.

2006-12-19  Andrew Pinski  <pinskia@gmail.com>

        PR tree-opt/30045
        * gcc.dg/pr30045.c: New test

From-SVN: r120069
2006-12-19 21:00:50 -08:00
Ben Elliston bbd29fdcec * doc/invoke.texi (Optimize Options): Typo fix.
From-SVN: r120067
2006-12-20 13:49:37 +11:00
Eric Christopher 59ff4a1c1c darwin.c (machopic_select_section): Rewrite.
2006-12-19  Eric Christopher  <echristo@apple.com>

        * config/darwin.c (machopic_select_section): Rewrite.
        (darwin_text_section): New.
        (darwin_rodata_section): Ditto.
        (darwin_mergeable_string_section): Ditto.
        (darwin_mergeable_constant_section): Ditto.
        * config/darwin-sections.def: Add SECTION_STRINGS for cstring_section.

From-SVN: r120066
2006-12-20 00:42:34 +00:00
Steve Ellcey 41da2805f3 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL): Add undef.
From-SVN: r120054
2006-12-19 18:18:19 +00:00
Paolo Bonzini 8efea77549 re PR bootstrap/29544 (Not building with checking in stage1)
2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/29544
	* Makefile.def (flags_to_pass): Add STAGE1_CHECKING.
	(bootstrap_stage): Add STAGE1_CHECKING to stage1 configure flags,
	move here comment from Makefile.tpl.
	* Makefile.tpl: Move some definitions higher in the file.
	(STAGE1_CHECKING): New.
	* configure.in: Add --enable-stage1-checking.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

gcc:
2006-12-19  Paolo Bonzini  <bonzini@gnu.org>

	* gcc/Makefile.in (STAGE1_CHECKING): Rename to...
	(STAGE1_CHECKING_CFLAGS): ... this.

From-SVN: r120048
2006-12-19 11:01:36 +00:00
Andrew Pinski 61210b7291 re PR fortran/29779 (vectorizer fortran testcases failing)
2006-12-18  Andrew Pinski  <pinskia@gmail.com>

        PR target/29779
        * config/rs6000/rs6000.c (altivec_init_builtins): Change to set
        READONLY on __builtin_altivec_mask_for_load instead of adding
        the attribute.

From-SVN: r120045
2006-12-19 00:28:46 -08:00
Roger Sayle f839548fc7 re PR target/29302 (isfinite returns wrong result at -O1)
2006-12-18  Roger Sayle  <roger@eyesopen.com>
	    Eric Christopher  <echristo@apple.com>

	PR target/29302
	* real.c (real_maxval): Correctly handle IBM extended double format.


Co-Authored-By: Eric Christopher <echristo@apple.com>

From-SVN: r120040
2006-12-19 04:17:11 +00:00
Jan Hubicka d448860e15 expmed.c (expand_mult_const): Force operand to constant.
* expmed.c (expand_mult_const): Force operand to constant.
	* rs6000.c (rs6000_emit_set_const, rs6000_emit_set_long_const): Add
	copy_rtx to arguments.

From-SVN: r120037
2006-12-19 01:03:13 +00:00
Ben Elliston 63f41b8674 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
From-SVN: r120020
2006-12-19 10:28:41 +11:00
Ben Elliston 73ca11ed04 * cse.c (cse_insn): Fix formatting.
From-SVN: r120019
2006-12-19 09:54:43 +11:00
Geoffrey Keating ec75a430b0 invoke.texi (Debugging Options): Document -g0.
* doc/invoke.texi (Debugging Options): Document -g0.
	* config/darwin.h (LINK_COMMAND_SPEC): Replace -gnone with -g0.
	* config/darwin9.h (LINK_COMMAND_SPEC): Likewise.

From-SVN: r120013
2006-12-18 21:10:16 +00:00
Ian Lance Taylor dfdec7a705 c.opt (Wmissing-declarations): Add C++ and ObjC++.
./:	* c.opt (Wmissing-declarations): Add C++ and ObjC++.
	* doc/invoke.texi (Warning Options): -Wmissing-declarations now
	works for C++.
cp/:
	* decl.c (start_preparsed_function): Add support for
	-Wmissing-declarations.
testsuite:
	* g++.dg/warn/Wmissing-declarations-1.C: New test.

From-SVN: r120012
2006-12-18 19:56:58 +00:00
Andrew MacLeod 79f99d4276 Add memory reuse to virtual operands in the operand scanner.
2006-12-18  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa-operands.h (struct vdef_optype_d): Rename to voptype_d.
	(struct vuse_optype_d): Delete.
	(SSA_OPERAND_MEMORY_SIZE): Delete.
	(struct ssa_operand_memory_d): Change mem array to size one.
	(NUM_VOP_FREE_BUCKETS): Define.
	(free_vuses, free_vdefs): Replace with vop_free_buckets array.
	(vdef_ops, vuse_ops, struct ssa_operand_iterator_d): Use voptype_d type.
	* tree-pretty-print.c (dump_vops): Use voptype_d type.
	* tree-ssa-operands.c (vop_free_bucket_size): New.  Number of operands
	which fit into a chunk of memory from a specific bucket.
	(vop_free_bucket_index): New.  Find correct size memory bucket.
	(init_vop_buckets): New.  Initialize VOP free memory buckets.
	(add_vop_to_freelist): New.  Add a VOP to the correct free list.
	(ssa_operand_mem_size): New.  Current size of an operand memory chunk.
	(init_ssa_operands): Initialize operand memory and free lists.
	(fini_ssa_operands): Remove references to free_vuses and free_vdefs.
	(ssa_operand_alloc): Use graduated size memory allocation.
	(APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, 
	INITIALIZE_USE): Remove.
	(alloc_vop): New.  Allocate a virtual operand.
	(alloc_vdef, alloc_vuse): Delete.
	(add_def_op, add_use_op): Directly setup pointers.
	(add_vop): New.  Add a virtual operand.
	(add_vuse_op, add_vdef_op): Call add_vop.
	(realloc_vop): New.  Reallocate a virtual operand.
	(realloc_vdef, realloc_vuse): Call realloc_vop.
	(finalize_ssa_def_ops): Delete.  Move content to finalize_ssa_defs.
	(finalize_ssa_defs): Optimize for common case, remove code based on
	sorted pointers which was a waste of time.
	(finalize_ssa_use_ops): Delete.  Move content to finalize_ssa_uses.
	(finalize_ssa_uses): Update last pointer.
	(finalize_ssa_vdef_ops): Delete.  Move content to finalize_ssa_vdefs.
	(finalize_ssa_vdefs, finalize_ssa_vuse_ops): Use voptype_d and
	directly manipulate pointers.
	(copy_virtual_operands): Use voptype_d, and no need to update pointers.

From-SVN: r120009
2006-12-18 16:21:08 +00:00
Nathan Sidwell 2284bd2b66 rs6000.md (*movdf_hardfloat32): Use %X format to determine if memory operand is an indexed address or not.
* config/rs6000/rs6000.md (*movdf_hardfloat32): Use %X format to
	determine if memory operand is an indexed address or not.

From-SVN: r120003
2006-12-18 09:53:33 +00:00
Steven Bosscher 757bbef814 cselib.c (struct cselib_val_struct): Make val_rtx its own field, remove the union that contained it.
* cselib.c (struct cselib_val_struct): Make val_rtx its
	own field, remove the union that contained it.
	* cselib.c: Update accordingly where necessary.

From-SVN: r119994
2006-12-17 22:57:04 +00:00
Steven Bosscher a7582f7c6d cse.c (have_eh_succ_edges): New function.
* cse.c (have_eh_succ_edges): New function.
	(cse_insn): Don't remove dead EH edges here
	(cse_extended_basic_block): Do it here.
	(rest_of_handle_cse, rest_of_handle_cse2): Don't assert
	that we have removed all dead edges.

From-SVN: r119993
2006-12-17 20:27:25 +00:00
Matthias Klose 23f351630b re PR libstdc++/11953 (_REENTRANT defined when compiling non-threaded code.)
2006-12-17  Matthias Klose  <doko@debian.org>

        PR libstdc++/11953
        * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.

From-SVN: r119986
2006-12-17 13:46:58 +00:00
Steven Bosscher 27511c652d cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING.
* cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING.
	(cse_extended_basic_block): When truncating a path while processing
	it, make sure to clear the visited bit on the basic blocks in the
	truncated part of the path.
	(cse_main): Use reverse completion order, not DFS order, to walk
	the CFG.
	(gate_handle_cse): Revert erroneous commit of a counter.

From-SVN: r119985
2006-12-17 13:12:37 +00:00
Steven Bosscher 96fb470d74 cse.c (this_insn_cc0, [...]): New global variables, moved out from cse_insn.
* cse.c (this_insn_cc0, this_insn_cc0_mode): New global
	variables, moved out from cse_insn.
	(prev_insn): Remove this global variable).
	(new_basic_block): Don't set it.
	(cse_insn): Idem. Also, move code to delete unused CC0-setter
	insns and code to set prev_insn_cc0 and prev_insn_cc0_mode
	from here...
	(cse_extended_basic_block): ...to here.  Do not clear
	prev_insn_cc0 until after recording equivalences from jumps.

From-SVN: r119984
2006-12-17 13:11:06 +00:00
Jan Hubicka 04b201a28a * cgraphunit.c (ipa_passes): Clear current_function_decl.
From-SVN: r119979
2006-12-17 01:50:58 +00:00
Andreas Tobler 582fd9ced4 passes.c (verify_curr_properties): Define only for ENABLE_CHECKING.
2006-12-16  Andreas Tobler  <a.tobler@schweiz.org>

	* passes.c (verify_curr_properties): Define only for ENABLE_CHECKING.

From-SVN: r119971
2006-12-16 23:49:05 +01:00
Jan Hubicka a5093353f1 omp-low.c (expand_omp_parallel): Set function properties.
* omp-low.c (expand_omp_parallel): Set function properties.
	* function.h (struct function): Add curr_properties and last_verified.
	* passes.c (register_dump_files): Do not set TODO_set_props for the
	first pass
	(init_optimization_passes): Set it here; reorder initialization so the
	dump files appear in more logical order.
	(last_verified, curr_properties): Kill.
	(do_per_function): New function.
	(execute_function_todo): Break out from ...
	(execute_todo): ... here; handle per-function flags.
	(clear_last_verified, verify_curr_properties,
	update_properties_after_pass): New functions.
	(execute_one_pass): Handle per-function properties.
	(execute_ipa_pass_list): Use do_per_function; sanity check that cfun
	and current_function_decls are cleared out.
	* ipa-cp.c (constant_val_insert): Clear cfun/current_function_decl
	after use.

From-SVN: r119966
2006-12-16 18:10:08 +00:00