Commit Graph

37648 Commits

Author SHA1 Message Date
Andreas Krebbel 82f5c05de6 gcse.c (gcse_constant_p): Make sure the constant is sharable.
2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcse.c (gcse_constant_p): Make sure the constant is sharable.

From-SVN: r146997
2009-04-30 06:54:54 +00:00
James E. Wilson 6d8f135b27 mips.c (mips_add_offset): Use gen_int_mode for CONST_HIGH_PART result.
* config/mips/mips.c (mips_add_offset): Use gen_int_mode for
CONST_HIGH_PART result.

From-SVN: r146995
2009-04-29 17:58:10 -07:00
Anatoly Sokolov c21ca196b2 avr.c (initial_elimination_offset): Rename to avr_initial_elimination_offset.
* config/avr/avr.c (initial_elimination_offset): Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
	change return type to bool.
	(avr_can_eliminate): New function.
	* config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
	(FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
	(INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
	* config/avr/avr-protos.h (initial_elimination_offset) : Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
	(avr_initial_elimination_offset): Define.

From-SVN: r146989
2009-04-30 01:57:03 +04:00
Eric Botcazou 2a34bece47 re PR rtl-optimization/39938 (build broke for cris-elf with dbr_schedule change)
PR rtl-optimization/39938
	* Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
	* cfgrtl.c: Include insn-attr.h.
	(rest_of_pass_free_cfg): New function.
	(pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
	* resource.c (init_resource_info): Remove call to df_analyze.

Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>

From-SVN: r146988
2009-04-29 21:44:26 +00:00
Richard Guenther 5dc7911e06 re PR middle-end/39943 (wrong conversion from unsigned int to float)
2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR target/39943
	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
	allow conversion to signed integers.

	* lib/target-supports.exp (check_effective_target_vect_uintfloat_cvt):
	New.
	(check_effective_target_vect_floatuint_cvt): Likewise.
	* gcc.dg/vect/slp-10.c: Adjust.
	* gcc.dg/vect/slp-11.c: Adjust.
	* gcc.dg/vect/slp-12b.c: Adjust.
	* gcc.dg/vect/slp-33.c: Adjust.
	* gcc.c-torture/compile/pr39943.c: New testcase.

From-SVN: r146984
2009-04-29 18:07:23 +00:00
Richard Guenther 1fe479fd50 tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts of floating point vectors if...
2009-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_binary): Allow vector
	shifts of floating point vectors if the shift amount is
	a constant multiple of the element size.

From-SVN: r146983
2009-04-29 18:03:58 +00:00
Andreas Krebbel 8e00168078 re PR middle-end/39927 (build breakage for cris-elf building libstdc++-v3)
PR middle-end/39927
        PR bootstrap/39929
        * tree-outof-ssa.c (emit_partition_copy): New function.
        (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
        insert_part_to_rtx_on_edge): Perform the partition base var
        copy using emit_partition_copy.
        (insert_value_copy_on_edge): Convert constants to the right mode.
        (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
        (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.

Co-Authored-By: Michael Matz <matz@suse.de>

From-SVN: r146982
2009-04-29 17:36:21 +00:00
Bernd Schmidt 4e5d521bb5 bfin.c (bfin_optimize_loop): When looking for the last insn before the loop_end instruction...
* config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
	insn before the loop_end instruction, don't look past labels.

From-SVN: r146980
2009-04-29 15:40:06 +00:00
Bernd Schmidt e50e30817e bfin.c (bfin_optimize_loop): If we need a scratch reg, scan backwards to try to find a constant to initialize it.
* config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
	scan backwards to try to find a constant to initialize it.

From-SVN: r146974
2009-04-29 15:09:37 +00:00
Richard Guenther 7c90021d8e re PR middle-end/39937 (Revision 146831 failed SPEC CPU 2006)
2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39937
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
	loose type conversions.
	(forward_propagate_addr_expr): Fix tuplification bug.  Remove
	stmts only if there are no uses of its definition.

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

From-SVN: r146973
2009-04-29 15:05:22 +00:00
Bernd Schmidt 97a988bcb2 bfin.h (splitting_loops): Declare.
* config/bfin/bfin.h (splitting_loops): Declare.
	* config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
	Reorder bit definitions to be ascending.
	(WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
	* config/bfin/bfin.c (splitting_loops): New variable.
	(bfin_cpus): Add WA_LOAD_LCREGS as needed.
	(struct loop_info): Remove members INIT and LOOP_INIT.
	(bfin_optimize_loop): Don't set them.  Reorder the code that generates
	the LSETUP sequence.  Allow LC to be loaded from any register, but also
	add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
	(bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
	set to 1.
	* config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
	of reload_completed.
	From Jie Zhang:
	* config/bfin/bfin.md (movsi_insn): Refine constraints.

From-SVN: r146971
2009-04-29 14:13:30 +00:00
Rafael Avila de Espindola 0c463e1617 Makefile.in (PLUGIN_VERSION_H): New.
2009-04-29  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.in (PLUGIN_VERSION_H): New.
	(OBJS-common): Remove plugin-version.o.
	(plugin.o): Depend on (PLUGIN_VERSION_H).
	(plugin-version.o): Remove.
	* configure: Regenerate
	* configure.ac: Create plugin-version.h.
	* gcc-plugin.h (plugin_gcc_version): Remove.
	(plugin_default_version_check): Change signature.
	* plugin-version.c: Remove.
	* plugin.c: Include plugin-version.h.
	(str_plugin_gcc_version_name): Remove.
	(try_init_one_plugin): Pass gcc version to plugin_init.
	(plugin_default_version_check): Both gcc and plugin versions are now
	arguments.

From-SVN: r146962
2009-04-29 13:20:53 +00:00
Bernd Schmidt c5d9672394 bfin.c (bfin_register_move_cost): Test for subsets of DREGS rather than comparing directly.
* config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
	DREGS rather than comparing directly.  Remove code that tries to
	account for latencies.

From-SVN: r146956
2009-04-29 12:44:00 +00:00
Bernd Schmidt 307e7eab85 bfin.c (bfin_optimize_loop): Unify handling of problematic last insns.
* config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
	problematic last insns.  Test for TYPE_CALL rather than CALL_P.
	Remove special case testing for last insn of inner loops. Don't fail if
	the loop ends with a jump, emit an extra nop instead.

From-SVN: r146952
2009-04-29 10:55:25 +00:00
Richard Guenther de0b4ad545 re PR middle-end/39941 (ice in passes.c:execute_todo())
2009-04-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39941
	* tree-ssa-pre.c (eliminate): Schedule update-ssa after
	eliminating an indirect call.

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

From-SVN: r146948
2009-04-29 10:39:26 +00:00
Richard Guenther 3a19701a09 tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue parameter.
2009-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
	parameter.  Allow invariants as base if !require_lvalue.
	(verify_gimple_assign_single): Adjust.

From-SVN: r146947
2009-04-29 10:37:14 +00:00
Bernd Schmidt a0a31d1ec3 bfin.md (sp_or_sm, [...]): New macro.
gcc/
	* config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
	(ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
	ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
	ssaddhi3_parts and sssubhi3_parts.
	(flag_mulhi3_parts): Produce a HImode output rather than trying to set
	a VEC_SELECT.
	* config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
	Adjust accordingly.

gcc/testsuite/
	* gcc.target/bfin/20090411-1.c: New test.

From-SVN: r146929
2009-04-29 08:41:32 +00:00
Richard Guenther 795bd26ad7 tree-vect-loop.c (get_initial_def_for_induction): Use correct types for pointer increment.
2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop.c (get_initial_def_for_induction): Use
	correct types for pointer increment.

From-SVN: r146927
2009-04-29 08:10:15 +00:00
Kaveh R. Ghazi 04be270fb8 toplev.c (print_version): Update GMP version string calculation.
* toplev.c (print_version): Update GMP version string calculation.

From-SVN: r146921
2009-04-29 04:19:38 +00:00
Eric Botcazou e1a3b85c7a re PR rtl-optimization/39938 (build broke for cris-elf with dbr_schedule change)
PR rtl-optimization/39938
	* resource.c (init_resource_info): Add call to df_analyze.

From-SVN: r146915
2009-04-28 21:29:58 +00:00
Uros Bizjak 8224166ec8 alpha.md (usegp): Cast the result of alpha_find_lo_sum_using_gp to enum attr_usegp.
* config/alpha/alpha.md (usegp): Cast the result of
	alpha_find_lo_sum_using_gp to enum attr_usegp.
	* config/alpha/alpha.c (override_options): Remove end-of-structure
	marker element from cpu_table.  Use array size of cpu_table to handle
	-mcpu and -mtune options.
	(tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.

From-SVN: r146912
2009-04-28 21:58:17 +02:00
Joseph Myers c5f0fe6738 config.gcc (powerpc*-*-* | rs6000-*-*): Add rs6000/option-defaults.h to tm_file.
* config.gcc (powerpc*-*-* | rs6000-*-*): Add
	rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
	tune_32 and tune_64.
	* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
	support on PowerPC.
	* config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
	* config/rs6000/option-defaults.h: ... here.  New file.
	(OPT_64, OPT_32): Define.
	(MASK_64BIT): Define to 0 if not already defined.
	(OPT_ARCH64, OPT_ARCH32): Define.
	(OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
	and tune_64.

From-SVN: r146908
2009-04-28 19:59:57 +01:00
Eric Botcazou 60839f5d38 Fix nits
From-SVN: r146907
2009-04-28 18:53:54 +00:00
Ramana Radhakrishnan 0c48a567fa FPA error for AAPCS
From-SVN: r146906
2009-04-28 16:45:19 +00:00
Uros Bizjak f1028b9da4 re PR rtl-optimization/39914 (96% performance regression in floating point code; part of the problem started 2009/03/12-13)
PR rtl-optimization/39914
	* ira-conflicts.c (ira_build_conflicts): Prohibit call used
	registers for allocnos created from user-defined variables only
	when not optimizing.

From-SVN: r146904
2009-04-28 18:18:17 +02:00
Richard Guenther e0dd989a1b re PR middle-end/39937 (Revision 146831 failed SPEC CPU 2006)
2009-04-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39937
	* fold-const.c (fold_binary): Use distribute_real_division only
	on float types.

	* gfortran.fortran-torture/compile/pr39937.f: New testcase.

From-SVN: r146901
2009-04-28 15:27:09 +00:00
Steve Ellcey 9a17c91def config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and add hpux-stdint.h to tm_file.
* config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
	add hpux-stdint.h to tm_file.
	(hppa[12]*-*-hpux11*): Ditto.
	(ia64*-*-hpux*): Ditto.
	* config/hpux-stdint.h: New.
	* gcc/config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
	__STDC_EXT__ for all compiles.
	* gcc/config/pa/pa-hpux.h: Ditto.
	* gcc/config/pa/pa-hpux10.h: Ditto.
	* gcc/config/pa/pa-hpux11.h: Ditto.

From-SVN: r146900
2009-04-28 15:20:07 +00:00
Catherine Moore af04e659c9 debug.h (set_name): Add comment.
2009-04-28  Catherine Moore  <clm@codesourcery.com>

        * debug.h (set_name): Add comment.

From-SVN: r146897
2009-04-28 11:06:16 -04:00
Andrew Pinski 04ef80ce92 re PR bootstrap/39929 (Bootstrapping fails at stage 1 on powerpc-ibm-aix)
2009-04-28  Andrew Pinski  <pinskia@gmail.com>

        PR target/39929
        * config/darwin.c (machopic_gen_offset): Check
        currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
        * config/arm/arm.c (require_pic_register): Likewise.

From-SVN: r146894
2009-04-28 07:19:00 -07:00
Paolo Bonzini 65ad77af57 m32c.c (TARGET_PROMOTE_FUNCTION_RETURN, [...]): Delete.
2009-04-28  Paolo Bonzini  <bonzini@gnu.org>

        * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
        m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
        m32c_promote_prototypes): Delete.

From-SVN: r146891
2009-04-28 13:17:28 +00:00
Michael Matz 1b15a008b6 re PR middle-end/39922 (Revision 146817 caused many regressions on trunk)
PR middle-end/39922
        * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
        constants.

From-SVN: r146889
2009-04-28 12:22:47 +00:00
Richard Guenther 7569a6cc2a tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix
	type error.

From-SVN: r146888
2009-04-28 12:16:22 +00:00
Ramana Radhakrishnan ead204d9f6 Add support for arm1156tf-s
From-SVN: r146887
2009-04-28 10:39:41 +00:00
Alexander Monakov f2c45f0866 20071210-2.c: New testcase.
gcc/testsuite/Changelog:

2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
	* gcc.target/ia64/20071210-2.c: New testcase.

gcc/Changelog:

2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
	* sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
	block if there are complex incoming edges.
	(sel_merge_blocks): Remove useless assert.
	(sel_redirect_edge_and_branch): Check that edge was redirected.
	* sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
	(sel_find_rgns): Delete declaration.
	* sel-sched.c (purge_empty_blocks): Attempt to remove first block of
	the region when it is not a preheader.

From-SVN: r146882
2009-04-28 14:01:52 +04:00
Uros Bizjak 7a00d767b7 re PR target/39323 (MAX_OFILE_ALIGNMENT in elfos.h is too big)
PR c/39323
	* config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h

testsuite/ChangeLog:

	PR c/39323
	* gcc.dg/pr39323-2.c: Also scan for alignment in log2 format.
	* gcc.dg/pr39323-3.c: Ditto.

From-SVN: r146881
2009-04-28 11:48:04 +02:00
Richard Guenther 448ee6624d tree.h (SSA_NAME_VALUE): Remove.
2009-04-28  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_NAME_VALUE): Remove.
	(struct tree_ssa_name): Remove value_handle member.
	* tree-vrp.c (execute_vrp): Initialize/free the value-handle
	array for jump threading.
	* tree-ssa-propagate.c (ssa_prop_init): Do not initialize
	SSA_NAME_VALUEs.
	* print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
	* tree-flow.h (threadedge_initialize_values): Declare.
	(threadedge_finalize_values): Likewise.
	* tree-ssa-threadedge.c (ssa_name_values): New global variable.
	(SSA_NAME_VALUE): Define.
	(threadedge_initialize_values): New function.
	(threadedge_finalize_values): Likewise.
	* tree-ssa-dom.c (ssa_name_values): New global variable.
	(SSA_NAME_VALUE): Define.
	(tree_ssa_dominator_optimize): Initialize/free the value-handle
	array.

From-SVN: r146877
2009-04-28 08:50:19 +00:00
Ira Rosen 8644a673d3 tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use REPORT_VECTORIZED_LOCATIONS instead REPORT_VECTORIZED_LOOPS.
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
	Use REPORT_VECTORIZED_LOCATIONS instead 
	REPORT_VECTORIZED_LOOPS.
	* tree-vectorizer.c (vect_verbosity_level): Make static.
	(vect_loop_location): Rename to vect_location.
	(vect_set_verbosity_level): Update comment.
	(vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
	and vect_location.
	(vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
	and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
	instead REPORT_UNVECTORIZED_LOOPS.
	* tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
	vect_loop_def to vect_external_def and vect_internal_def.
	(enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
        and REPORT_UNVECTORIZED_LOOPS to 
	REPORT_VECTORIZED_LOCATIONS and 
	REPORT_UNVECTORIZED_LOCATIONS.
	(enum vect_relevant): Update comment. Rename vect_unused_in_loop
	and vect_used_in_loop and to vect_unused_in_scope and 
	vect_used_in_scope.
	(STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
	(vect_verbosity_level): Remove declaration.
	(vect_analyze_operations): Likewise.
	(vect_analyze_stmt): Declare.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Use
	REPORT_UNVECTORIZED_LOCATIONS.
	(vect_get_loop_niters): Fix indentation.
	(vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
	(vect_analyze_loop_operations): New function.
	(vect_analyze_loop): Call vect_analyze_loop_operations instead of
	vect_analyze_operations.
	(vect_is_simple_reduction): Use new names.
	(vectorizable_live_operation, vect_transform_loop): Likewise.
	* tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
	specify whether the data references can be a part of interleaving chain.
	(vect_analyze_data_ref_dependence): Use new names.
	(vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
	(vect_create_addr_base_for_vector_ref): Remove redundant code.
	* tree-vect-patterns.c (widened_name_p): Use new names.
	(vect_recog_dot_prod_pattern): Likewise.
	* tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
	(process_use, vect_mark_stmts_to_be_vectorized, 
	vect_model_simple_cost, vect_model_store_cost,
	vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
	vectorizable_call, vectorizable_conversion, vectorizable_assignment,
	vectorizable_operation, vectorizable_type_demotion,
	vectorizable_type_promotion, vectorizable_store, vectorizable_load,
	vectorizable_condition): Likewise.
	(vect_analyze_operations): Split into vect_analyze_loop_operations
	and ...
	(vect_analyze_stmt): ... new function.
	(new_stmt_vec_info): Use new names.
	(vect_is_simple_use): Use new names and fix comment.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
	(vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.

From-SVN: r146875
2009-04-28 08:08:25 +00:00
Uros Bizjak b91322f2ba re PR target/39911 (The 'z' suffix doesn't work with 16bit integer insn)
PR target/39911
	* config/i386/i386.c (print_operand) ['Z']: Handle floating point
	and integer modes for x87 operands.  Do not ICE for unsupported size,
	generate error instead.  Generate error for unsupported operand types.
	['z']: Do not handle HImode memory operands specially.  Warning
	for floating-point operands.  Fallthru to 'Z' for unsupported operand
	types.  Do not ICE for unsupported size, generate error instead.
	(output_387_binary_op): Use %Z to output operands.
	(output_fp_compare): Ditto.
	(output_387_reg_move): Ditto.

testsuite/ChangeLog:

	PR target/39911
	* gcc.target/i386/pr39911.c: New test.

From-SVN: r146874
2009-04-28 08:54:02 +02:00
Ben Elliston b2ed71b61a revert: re PR c++/35652 (offset warning should be given in the front-end)
Revert:
	PR c++/35652
	2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

gcc/
	* builtins.c (c_strlen): Do not warn here.
	* c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
	* c-common.c (pointer_int_sum): Take an explicit location.
	Warn about offsets out of bounds.
	* c-common.h (pointer_int_sum): Adjust declaration.

cp/
	* typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.

testsuite/
	* gcc.dg/pr35652.C: New.
	* g++.dg/warn/pr35652.C: New.
	* gcc.dg/format/plus-1.c: Adjust message.

From-SVN: r146870
2009-04-28 14:56:47 +10:00
Eric Botcazou 1883802f28 Fix formatting
From-SVN: r146856
2009-04-27 21:09:03 +00:00
Ian Lance Taylor 81f40b7964 collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind.
./:	* collect2.c (is_ctor_dtor): Change type of ret field in struct
	names to symkind.
	* dce.c (run_fast_df_dce): Change type of old_flags to int.
	* df-core.c (df_set_flags): Change return type to int.  Change
	type of old_flags to int.
	(df_clear_flags): Likewise.
	* df-scan.c (df_def_record_1): Change 0 to VOIDmode.
	(df_get_conditional_uses): Likewise.
	* df.h (df_set_flags, df_clear_flags): Update declarations.
	* dwarf2out.c (struct indirect_string_node): Change type of form
	field to enum dwarf_form.
	(AT_string_form): Change return type to enum dwarf_form.
	* fixed-value.c (fixed_compare): Add cast to enum type.
	* fwprop.c (update_df): Change 0 to VOIDmode.
	* gensupport.c: Change 0 to UNKNOWN.
	* gimple.h (gimple_cond_code): Add cast to enum type.
	* haifa-sched.c (reemit_notes): Add cast to enum type.
	* hooks.c (hook_int_void_no_regs): Remove function.
	* hooks.h (hook_int_void_no_regs): Remove declaration.
	* optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
	* predict.c (combine_predictions_for_insn): Add casts to enum
	type.
	* real.c (real_arithmetic): Add cast to enum type.
	(real_compare): Likewise.
	* target.h (struct gcc_target): Change return type of
	branch_target_register_class to enum reg_class.
	* target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
	default_branch_target_register_class.
	* targhooks.c (default_branch_target_register_class): New
	function.
	* targhooks.h (default_branch_target_register_class): Declare.
	* tree-data-ref.c (print_direction_vector): Add cast to enum
	type.
	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
	cast to int.
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
	ERROR_MARK.
	* tree-vect-slp.c (vect_build_slp_tree): Change 0 to
	vect_uninitialized_def.  Change 0 to ERROR_MARK.
	* tree-vect-stmts.c (supportable_widening_operation): Don't
	initialize icode1 and icode2.
	* tree-vectorizer.h (enum vect_def_type): Add
	vect_uninitialized_def.
	* config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
	and to STD_C89.
	(cmn_err_flag_specs): Change 0 to STD_C89.
	(cmn_err_char_table): Likewise.
	* config/arm/arm.c (get_arm_condition_code): Change type of code
	to enum arm_cond_code.
	(IWMMXT_BUILTIN): Change 0 to UNKNOWN.
	(IWMMXT_BUILTIN2): Likewise.
	(neon_builtin_type_bits): Don't define typedef.
	(neon_builtin_datum): Change type of bits field to int.
	(arm_expand_neon_args): Add cast to enum type.
	* config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
	TLS_MODEL_NONE.
	* config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
	casts to enum type.
	* config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
	MIPS_FP_COND_f.
	* config/mips/mips.md (jal_macro): Return enum constant.
	(single_insn): Likewise.
	* config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
	CODE_FOR_nothing.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	casts to enum type.
	* config/s390/s390.c (s390_tune_flags): Change type to int.
	(s390_arch_flags): Likewise.
	(s390_handle_arch_option): Change flags field of struct pta to
	int.
	* config/s390/s390.h (s390_tune_flags): Update declaration.
	(s390_arch_flags): Likewise.
	* config/sh/sh.c (prepare_move_operands): Compare
	tls_symbolic_operand result with enum constant.
	(sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
	(sh_expand_prologue): Add cast to enum type.
	(sh_expand_epilogue): Likewise.
	(tls_symbolic_operand): Change return type to enum tls_model.
	(fpscr_set_from_mem): Add cast to enum type.
	(legitimize_pic_address): Compare tls_symbolic_operand result with
	enum constant.
	(sh_target_reg_class): Change return type to enum reg_class.
	* config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
	PROCESSOR_xxx.
	* config/sh/sh-protos.h (tls_symbolic_operand): Update
	declaration.
	* config/sparc/sparc.c (sparc_override_options): Add cast to enum
	type.
	* config/sparc/sparc.md (empty_delay_slot): Return enum constant.
	(pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
	(delayed_branch, tls_call_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	(eligible_for_return_delay): Likewise. 
	* config/spu/spu.c (expand_builtin_args): Add cast to enum type.
	(spu_expand_builtin_1): Likewise.

	* c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
	for all types of conversions.
	(output_init_element): Issue -Wc++-compat warning if needed when
	initializing a bitfield with enum type.
	* c-parser.c (c_parser_expression): Set original_type to
	original_type of right hand operand of comman operator.
cp/:
	* semantics.c (finish_omp_clauses): Change type of c_kind to enum
	omp_clause_code.
fortran/:
	* trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
	type.
	* trans-io.c (st_parameter_field): Add casts to enum type.
java/:
	* builtins.c (java_builtins): Add casts to enum type.
	* verify-impl.c (check_class_constant): Add cast to enum type.
	(check_constant, check_wide_constant): Likewise.
objc/:
	* objc-act.c (objc_gimplify_expr): Add casts to enum type.
testsuite/:
	* gcc.dg/Wcxx-compat-5.c: New testcase.
	* gcc.dg/Wcxx-compat-6.c: New testcase.

From-SVN: r146855
2009-04-27 20:25:48 +00:00
Ralf Wildenhues e4ae5e7717 c-tree.texi (Types, [...]): Fix grammar nits.
gcc/
	* doc/c-tree.texi (Types, Functions, Expression trees): Fix
	grammar nits.
	* doc/cfg.texi (Maintaining the CFG, Liveness information):
	Likewise.
	* doc/cpp.texi (Standard Predefined Macros)
	(Implementation-defined behavior): Likewise.
	* doc/extend.texi (Function Attributes, Type Attributes):
	Likewise.
	* doc/gimple.texi (GIMPLE Exception Handling)
	(@code{GIMPLE_ASSIGN}): Likewise.
	* doc/install.texi (Prerequisites, Configuration, Specific):
	Likewise.
	* doc/invoke.texi (Warning Options, Optimize Options)
	(AVR Options, Darwin Options): Likewise.
	(Optimize Options): Reformulate -fwhole-program description.
	* doc/loop.texi (Lambda): Likewise.
	* doc/md.texi (Output Template, Define Constraints)
	(Standard Names, Insn Splitting): Likewise.
	* doc/options.texi (Option properties): Likewise.
	* doc/passes.texi (Tree-SSA passes): Likewise.
	* doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
	* doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
	(File Names and DBX): Likewise.
	* doc/trouble.texi (Incompatibilities): Likewise.

From-SVN: r146854
2009-04-27 20:23:51 +00:00
Trevor Smigiel 6e37f6d40e spu.c (spu_machine_dependent_reorg): Make sure branch label on hint instruction is correct.
* spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
	instruction is correct.

From-SVN: r146852
2009-04-27 19:33:20 +00:00
Trevor Smigiel 5345cf689e Allow non-constant arguments to conversion intrinsics.
* spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
	* predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
	* spu.c (print_operand): Handle 'v' and 'w'.
	(exp2_immediate_p, spu_gen_exp2): Define.
	* spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
	spu_convtf_1): Update parameter descriptions.
	* spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu):
	Update.
	* constraints.md ('v', 'w'): New.
	* spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
	Remove.
	(i2f, I2F): New define_mode_attr.
	(floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
	floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
	fixuns_truncv4sfv4si2):  Update to use mode attribute.
	(float<mode><i2f>2_mul, float<mode><i2f>2_div,
	fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
	floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
	patterns for combine.
	* gcc.target/spu/intrinsics-3.c: Update tests.

From-SVN: r146849
2009-04-27 18:48:59 +00:00
Steven Bosscher 5f39ad476c dbgcnt.def (cprop1, [...]): Remove
* dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
	(cprop, hoist, pre, store_motion): New debug counters.
	* tree-pass.h (pass_tracer): Move to list of gimple passes, it
	is not an RTL pass anymore.
	(pass_profiling): Remove extern decl for pass removed in 2005.
	(pass_gcse, pass_jump_bypass): Remove.
	* final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
	to 0 for clean state.
	* toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
	* cse.c (gate_handle_cse_after_global_opts,
	rest_of_handle_cse_after_global_opts): New functions.
	(pass_cse_after_global_opts): New pass, does local CSE.
	* timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
	(TV_CPROP): New timevar.
	* gcse.c (flag_rerun_cse_after_global_opts): New global variable.
	(run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
	(gcse_main, recompute_all_luids): Remove.
	(compute_hash_table_work): Call max_reg_num instead of reading
	max_gcse_regno.
	(cprop_jump): Don't set run_jump_opt_after_gcse.
	(constprop_register): Always allow to alter jumps.
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise.  Return non-zero if something changed.
	(cprop): Remove function, fold interesting bits into one_cprop_pass.
	(find_implicit_sets): Add note about missed optimization opportunity.
	(one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
	pass_rtl_cprop execute function.
	Don't bother tracking the pass number, each pass gets its own dumpfile
	now anyway.
	Always allow to alter jumpsand bypass jumps.
	(bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
	will just find no suitable set.
	(pre_edge_insert): Fix dumping, this function is for PRE only.
	(one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
	pass_rtl_pre execute function.
	(hoist_code): Return non-zero if something changed.  Keep track of
	substitutions and insertions for statistics gathering similar to PRE.
	(one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
	called from the pass_rtl_hoist execute function.  Show pass statistics.
	(compute_store_table): Use max_reg_num directly instead of using the
	formerly global max_gcse_regno.
	(build_store_vectors): Likewise.
	(replace_store_insn): Fix dumping.
	(store_motion): Rename to ...
	(one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
	pass, called from the pass_rtl_store_motion execute function.  Keep
	track of substitutions and insertions for statistics gathering similar
	to PRE.
	(bypass_jumps): Remove, fold interesting bits into ...
	(one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
	from the pass_rtl_cprop execute function.
	(gate_handle_jump_bypass, rest_of_handle_jump_bypass,
	pass_jump_bypass): Remove.
	(gate_handle_gcse, rest_of_handle_gcse): Remove.
	(gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
	(gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
	(gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
	(gate_rtl_store_motion, execute_rtl_store_motion,
	pass_rtl_store_motion): New.
	* common.opt: Remove flag_cse_skip_blocks, adjust documentation to
	make it clear that -fcse-skip-blocks is a no-op for backward compat.
	* passes.c (init_optimization_passes): Remove pass_gcse and
	pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
	and cse_after_global_opts in place of pass_gcse.  Schedule cprop
	instead of pass_jump_bypass.

From-SVN: r146848
2009-04-27 17:21:27 +00:00
Richard Guenther c685de4a22 re PR c/39928 (gimplify_expr failure)
2009-04-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39928
	* gimplify.c (gimplify_expr): If we are required to create
	a temporary make sure it ends up as register.

	* gcc.c-torture/compile/pr39928-1.c: New testcase.
	* gcc.c-torture/compile/pr39928-2.c: Likewise.

From-SVN: r146846
2009-04-27 15:50:05 +00:00
H.J. Lu 72d41f296e re PR c/39903 (ICE on flexible member)
gcc/

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39903
	* config/i386/i386.c (construct_container): Don't call
	gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
	X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.

gcc/testsuite/

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39903
	* gcc.dg/torture/pr39903-1.c: New.
	* gcc.dg/torture/pr39903-2.c: Likewise.

From-SVN: r146842
2009-04-27 07:02:09 -07:00
Michael Matz e97809c61d ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
* ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
	(get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
	* tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
	(dump_replaceable_exprs): Take a bitmap.
	* cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
	array.
	(expand_gimple_basic_block): Likewise.
	* tree-ssa-ter.c (struct temp_expr_table_d): Make
	replaceable_expressions member a bitmap.
	(free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
	(mark_replaceable): Likewise.
	(find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
	* tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.

From-SVN: r146837
2009-04-27 12:16:00 +00:00
Richard Guenther 211ca15cb4 re PR java/38374 (constant pool references have wrong types in ADDR_EXPR)
2009-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
	(verify_stmts): Dispatch to gimple/type verification code.
	* tree-inline.c (remap_gimple_op_r): Work around C++ FE
	issue with call argument types.

	java/
	PR java/38374
	* constants.c (build_constants_constructor): Retain the old
	pointer type as valid TYPE_POINTER_TO after patching the
	type of the constant pool decl.

From-SVN: r146831
2009-04-27 11:18:38 +00:00
Michael Matz fca5f3d11c tree-into-ssa.c (regs_to_rename, [...]): Remove.
* tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
        (init_update_ssa, delete_update_ssa, update_ssa): Remove references
        to above.

From-SVN: r146830
2009-04-27 11:15:53 +00:00