Commit Graph

31734 Commits

Author SHA1 Message Date
Aldy Hernandez eab79d78e7 jump.c: Remove prototypes for delete_computation and delete_prior_computation.
* jump.c: Remove prototypes for delete_computation and
	delete_prior_computation.

From-SVN: r122011
2007-02-15 18:29:25 +00:00
Paolo Bonzini c47277a619 jump.c (get_label_after): Delete.
2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* jump.c (get_label_after): Delete.
	(get_label_before, delete_computation, delete_jump,
	delete_prior_computation, follow_jumps): Move...
	* reorg.c (delete_computation, delete_prior_computation): ... here...
	(get_label_before, delete_jump): ... making these static ...
	(follow_jumps): ... and simplifying this since it only runs after
	reload.
	* rtl.h (get_label_after, get_label_before, delete_jump,
	follow_jumps): Delete prototypes.

From-SVN: r122003
2007-02-15 16:40:16 +00:00
Paolo Bonzini ed765125f2 caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.

From-SVN: r121998
2007-02-15 15:07:59 +00:00
Nick Clifton c1a1cc5fcb varasm.c (default_asm_output_anchor): Prepend * to . symbol in order to prevent it from being munged by the target.
* varasm.c (default_asm_output_anchor): Prepend * to . symbol in order to 
  prevent it from being munged by the target.

From-SVN: r121992
2007-02-15 10:33:59 +00:00
Uros Bizjak 62e4530bcf * config/i386/i386.md: Remove misleading comment.
From-SVN: r121991
2007-02-15 11:21:38 +01:00
Alexandre Oliva f4f81a669a frv.md (reload_incc, [...]): Remove invalid patterns.
* config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
invalid patterns.

From-SVN: r121981
2007-02-15 04:47:23 +00:00
Alexandre Oliva 45f94ec730 tree-sra.c (instantiate_missing_elements): Canonicalize bit-field types.
gcc/ChangeLog:
* tree-sra.c (instantiate_missing_elements): Canonicalize
bit-field types.
(sra_build_assignment): New.
(generate_copy_inout, generate_element_copy,
generate_element_zero, generate_one_element_init): Use it.
gcc/testsuite/ChangeLog:
* g++.dg/tree-ssa/sra-1.C: New.

From-SVN: r121980
2007-02-15 04:24:50 +00:00
Alexandre Oliva db9e0d2af6 dwarf2out.c (dwarf2out_finish): Accept namespaces as context of limbo die nodes.
gcc/ChangeLog:
* dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
limbo die nodes.
gcc/testsuite/ChangeLog:
* g++.dg/ext/interface4.C, g++.dg/ext/interface4.h: New.

From-SVN: r121979
2007-02-15 04:19:33 +00:00
Joseph Myers 07cb6e8c67 emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex types as aggregates not scalars.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
	types as aggregates not scalars.
	* function.c (assign_stack_temp_for_type): Likewise.

testsuite:
	* gcc.dg/torture/complex-alias-1.c: New test.

From-SVN: r121968
2007-02-14 23:38:01 +00:00
Zdenek Dvorak 702f9d782f tree-dump.c (dump_switch_p_1): Require exact match of the option name.
* tree-dump.c (dump_switch_p_1): Require exact match of the option
	name.

	* gcc.dg/tree-prof/update-tailcall.c: Use -fdump-tree-tailc
	instead of -fdump-tree-tailcall.

From-SVN: r121967
2007-02-14 22:06:11 +00:00
Zdenek Dvorak 3d88299026 passes.c (next_pass_1): Clear the next field of the copied pass structure.
* passes.c (next_pass_1): Clear the next field of the copied
	pass structure.

From-SVN: r121966
2007-02-14 21:54:44 +00:00
Richard Henderson 029f45bdc1 tree-sra.c (early_sra): New.
* tree-sra.c (early_sra): New.
        (decl_can_be_decomposed_p): Deny va_list if early_sra.
        (tree_sra_early, pass_sra_early): New.
        * tree-pass.h (pass_sra_early): Declare.
        * passes.c (init_optimization_passes): Use it.

From-SVN: r121953
2007-02-14 09:52:25 -08:00
Richard Biener c4e74b1aaa flags.h (issue_strict_overflow_warning): Convert to a macro.
2007-02-14  Richard Guenther  <rguenther@suse.de>

	* flags.h (issue_strict_overflow_warning): Convert to a macro.

From-SVN: r121951
2007-02-14 16:45:23 +00:00
Dorit Nuzman 932eea3d18 re PR tree-optimization/30771 (ice for legal code with -O2 -ftree-vectorize)
PR tree-optimization/30771
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
        also phi nodes.
        (vect_analyze_operations): Induction phis can now be marked as
        used_in_loop.
        (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
        Update documentation accordingly.

From-SVN: r121950
2007-02-14 14:10:57 +00:00
Nick Clifton 8225879cc7 builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at most 3 arguments are supported.
* builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at most 3 arguments are supported.
  (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.

From-SVN: r121946
2007-02-14 08:27:01 +00:00
Seongbae Park 5ce02e408d bitmap.c (bitmap_and, [...]): Ensure dst->current is valid.
2007-02-13  Seongbae Park <seongbae.park@gmail.com>

       * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
       Ensure dst->current is valid.

From-SVN: r121903
2007-02-14 05:01:14 +00:00
Paul Brook c147eacb9d config.gcc: Add arm*-*-uclinux-*eabi.
2007-02-13  Paul Brook  <paul@codesourcery.com>

	gcc/
	* config.gcc: Add arm*-*-uclinux-*eabi.
	* config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(SUBTARGET_EXTRA_LINK_SPEC): Define.
	(STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
	(LINK_GCC_C_SEQUENCE_SPEC): Undef.
	(LINK_SPEC): Define.
	(LIB_SPEC): Define.
	* config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
	register.
	* config/arm/uclinux-eabi.h: New file.
	* config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
	* config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
	based targets.

From-SVN: r121902
2007-02-14 00:29:52 +00:00
Ian Lance Taylor 6ac015100f common.opt: Add Wstrict-overflow and Wstrict-overflow=.
./:	* common.opt: Add Wstrict-overflow and Wstrict-overflow=.
	* flags.h (warn_strict_overflow): Declare.
	(enum warn_strict_overflow_code): Define.
	(issue_strict_overflow_warning): New static inline function.
	* opts.c (warn_strict_overflow): New variable.
	(common_handle_option): Handle OPT_Wstrict_overflow and
	OPT_Wstrict_overflow_.
	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
	OPT_Wall.
	* fold-const.c: Include intl.h.
	(fold_deferring_overflow_warnings): New static variable.
	(fold_deferred_overflow_warning): New static variable.
	(fold_deferred_overflow_code): New static variable.
	(fold_defer_overflow_warnings): New function.
	(fold_undefer_overflow_warnings): New function.
	(fold_undefer_and_ignore_overflow_warnings): New function.
	(fold_deferring_overflow_warnings_p): New function.
	(fold_overflow_warning): New static function.
	(make_range): Add strict_overflow_p parameter.  Change all
	callers.
	(extract_muldiv, extract_muldiv_1): Likewise.
	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
	tree_expr_nonnegative_p.
	(fold_negate_expr): Call fold_overflow_warning.
	(fold_range_test): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
	instead of tree_expr_nonnegative_p.
	(tree_expr_nonnegative_warnv_p): Rename from
	tree_expr_nonnegative_p, add strict_overflow_p parameter.
	(tree_expr_nonnegative_p): New function.
	(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
	strict_overflow_p parameter.
	(tree_expr_nonzero_p): New function.
	* passes.c (verify_interpass_invariants): New static function.
	(execute_one_pass): Call it.
	* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
	warnings.
	(number_of_iterations_exit, loop_niter_by_eval): Likewise.
	(estimate_numbers_of_iterations): Likewise.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-ccp.c: Include "toplev.h".
	(evaluate_stmt): Defer fold overflow warnings until we know we are
	going to optimize.
	(struct fold_stmt_r_data): Add stmt field.
	(fold_stmt_r): Defer fold overflow warnings until we know we
	optimized.
	(fold_stmt): Initialize stmt field of fold_stmt_r_data.
	(fold_stmt_inplace): Likewise.
	* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
	(cleanup_control_expr_graph): Defer fold overflow warnings until
	we know we are going to optimize.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
	Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* c-typeck.c (build_conditional_expr): Likewise.
	(build_binary_op): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonzero): Call
	tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
	(extract_range_from_unary_expr): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Warn when
	assuming that signed overflow does not occur.
	* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
	* tree.h (tree_expr_nonnegative_warnv_p): Declare.
	(fold_defer_overflow_warnings): Declare.
	(fold_undefer_overflow_warnings): Declare.
	(fold_undefer_and_ignore_overflow_warnings): Declare.
	(fold_deferring_overflow_warnings_p): Declare.
	(tree_expr_nonzero_warnv_p): Declare.
	* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
	of warning options.
	(Warning Options): Document -Wstrict-overflow.
	* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
	(tree-ssa-ccp.o): Likewise.
	(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
	(fold-const.o): Depend on intl.h.
testsuite/:
	* gcc.dg/Wstrict-overflow-1.c: New test.
	* gcc.dg/Wstrict-overflow-2.c: New test.
	* gcc.dg/Wstrict-overflow-3.c: New test.
	* gcc.dg/Wstrict-overflow-4.c: New test.
	* gcc.dg/Wstrict-overflow-5.c: New test.
	* gcc.dg/Wstrict-overflow-6.c: New test.
	* gcc.dg/Wstrict-overflow-7.c: New test.
	* gcc.dg/Wstrict-overflow-8.c: New test.
	* gcc.dg/Wstrict-overflow-9.c: New test.
	* gcc.dg/Wstrict-overflow-10.c: New test.

From-SVN: r121895
2007-02-13 22:34:45 +00:00
Ian Lance Taylor 30d18db484 re PR middle-end/30751 (internal compiler error: in extract_insn, at recog.c:2108)
PR middle-end/30751
	* lower-subreg.c (resolve_simple_move): Decompose subregs in
	addresses.

From-SVN: r121894
2007-02-13 22:18:26 +00:00
Stuart Hastings ce9c43a1bf * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
From-SVN: r121891
2007-02-13 19:02:57 +00:00
Richard Henderson 138ae41e4d alpha.c (alpha_stdarg_optimize_hook): Strip handled_component_p before looking for the indirect_ref.
* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
        handled_component_p before looking for the indirect_ref.

From-SVN: r121886
2007-02-13 09:29:35 -08:00
Richard Henderson 2e6834d33e i386.md (bswapsi_1): Rename from bswapsi2, remove flags clobber.
* config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
        remove flags clobber.
        (bswapsi2): New expander, emit code for !TARGET_BSWAP.
        (bswaphi_lowpart): New.
        (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
        remove TARGET_BSWAP test.  Delete expander of the same name.

        * optabs.c (widen_bswap, expand_doubleword_bswap): New.
        (expand_unop): Use them.

From-SVN: r121884
2007-02-13 08:42:12 -08:00
Uros Bizjak a23132e116 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
*cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
	*movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
	*ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
	*ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
	*ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
	*ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
	assembler dialect choice from asm templates.

From-SVN: r121883
2007-02-13 15:03:03 +01:00
Richard Henderson 174c12c748 i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
* config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
        (fixuns_trunc<SSEMODEF>si2): Use it.
        * config/i386/sse.md (vec_setv4sf_0): Export.
        * config/i386/i386.c (ix86_build_const_vector): Export.
        (ix86_split_convert_uns_si_sse): Rename from
        ix86_expand_convert_uns_si_sse and rewrite as a splitter.
        * config/i386/i386-protos.h: Update.

From-SVN: r121877
2007-02-12 17:20:02 -08:00
Manuel López-Ibáñez 2397c5750e re PR c/29521 (Confusing warning for return with expression in function returning void)
2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/29521
	* c-typeck.c (c_finish_return): Improve warning message.

testsuite/
	* gcc.dg/c90-return-1.c: Update output.
	* gcc.dg/c99-return-1.c: Likewise.

From-SVN: r121876
2007-02-13 00:29:17 +00:00
Manuel López-Ibáñez 14a32e14b1 alias.c (find_symbolic_term): Delete unused function.
2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* alias.c (find_symbolic_term): Delete unused function.

From-SVN: r121869
2007-02-13 00:13:29 +00:00
Uros Bizjak 0f7b6776a3 i386.md (paritydi2, paritysi2): New expanders.
* config/i386/i386.md (paritydi2, paritysi2): New expanders.
        (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
        (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.

testsuite/ChangeLog:

        * gcc.target/i386/parity-1.c: New test.
        * gcc.target/i386/parity-2.c: New test.

From-SVN: r121863
2007-02-12 22:08:25 +01:00
Eric Botcazou 6170a99877 tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
* tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
	* cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
	the function, temporarily point the debug interface to the null one.

From-SVN: r121861
2007-02-12 21:01:33 +00:00
Eric Botcazou d996473d67 dwarf2out.c (round_up_to_align): New static function.
* dwarf2out.c (round_up_to_align): New static function.
	(field_byte_offset): Use it to round the offset.

From-SVN: r121859
2007-02-12 20:52:37 +00:00
Richard Henderson fffef1dc7a alpha.md (bswapsi2, bswapdi2): New.
* config/alpha/alpha.md (bswapsi2, bswapdi2): New.
        (inswl_const): Export.

From-SVN: r121853
2007-02-12 10:53:22 -08:00
Richard Henderson 7ab0aca2fe calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the result mode of the libcall, convert back to outmode.
* calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
        result mode of the libcall, convert back to outmode.

From-SVN: r121852
2007-02-12 10:46:16 -08:00
Roger Sayle d8d25baea6 i386.md (*bswapdi2_rex): Renamed from bswapdi2.
* config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
	(bswapdi2): New define_expand to implement 32-bit implementation.

	* gcc.target/i386/builtin-bswap-3.c: New test case.

From-SVN: r121851
2007-02-12 18:41:08 +00:00
Nick Clifton c662432e8c invoke.texi (Overall Options): Document --help=.
* doc/invoke.texi (Overall Options): Document --help=.                                                        
* gcc.c (target_help_flag): Rename to print_subprocess_flag.                                                  
  (cc1_options): Pass --help= on to cc1.                                                                      
  (display_help): Add description of --help=.                                                                 
  (process_command): Add code to handle --help=.  Allow translated                                            
  --help and --target-help switches to be passed on to compiler sub-process.                                                                                               
  (main): Remove unused if statement.                                                                         
* opts.c (columns): Remove.                                                                                   
  (LEFT_COLUMN): Define.                                                                                      
  (wrap_help): Add columns argument.                                                                          
  (print_filtered_help): Change parameters to be an include bitmask,                                          
  an exclude bitmask, an any bitmask and the column width.  Move the                                          
  code to display the params list here.  Add code to display the                                              
  status of options rather than their descriptions if the quiet flag                                          
  is not active.                                                                                              
  (print_specific_help): Change parameters to be an include bitmask,                                          
  an exclude bitmask and an any bitmask.  Move code to look up the                                            
  column width here.  Decide upon the title for an options listing.                                           
  (common_handle_options): Add code to handle --help=.  Adapt code                                            
  for --help and --target-help to use the revised form of the                                                 
  print_specific_help function.                                                                               
  (print_help): Delete.                                                                                       
  (print_param_help): Delete.                                                                                 
  (print_switch): Delete.                                                                                     
* opts.h (cl_lang_count): Add prototype.                                                                      
 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS, CL_MAX_OPTION_CLASS): New defines.            
* optc-gen.awk: Add construction of cl_lang_count.                                                            
* c.opt: Add Warning attribute to warning options and Optimization attribute to optimization options.         
* common.opt: Likewise.                                                                                       
  Add --help=.                                                                                                
  Add -fhelp and -ftarget-help as aliases for the transformed --help and --target-help options.               
* opt-functions.awk: Add code to handle Warning and Optimization attributes.

From-SVN: r121849
2007-02-12 16:25:14 +00:00
Richard Henderson dfcbeaa576 constraints.md: New file.
* config/alpha/constraints.md: New file.
	* config/alpha/alpha.c: Include tm-constrs.h.
	(alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
	alpha_extra_constraint): Remove.
	(alpha_emit_conditional_branch): Use satisfies_constraint_*.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
	(EXTRA_CONSTRAINT): Remove.
	* config/alpha/alpha.md: Include constraints.md.
	(adddi splitter): Use satisfies_constraint_*.
	* config/alpha/predicates.md (add_operand): Likewise.
	(sext_add_operand, addition_operation): Likewise.

From-SVN: r121847
2007-02-12 08:10:15 -08:00
Dorit Nuzman 9b3ffe5f7a re PR tree-optimization/29145 (unsafe use of restrict qualifier)
PR tree-optimization/29145
        * tree-data-ref.c (base_addr_differ_p): Make us more conservative
        in our handling of restrict qualified pointers.

From-SVN: r121844
2007-02-12 13:14:52 +00:00
Manuel López-Ibáñez 27f33b1531 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* doc/invoke.texi (Wunused-value): Update description.
	(Wextra): Delete item.
	* opts.c (set_Wextra): Don't use the value of Wextra to set the
	value of Wunused-value.
	* c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
	(c_finish_stmt_expr): Don't check extra_warnings.
	(emit_side_effect_warnings): The caller is responsible to check
	warn_unused_value.
cp/
	* cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
	Check warn_unused_value just once.

From-SVN: r121843
2007-02-12 09:32:08 +00:00
Roger Sayle 2376c58f22 simplify-rtx.c (simplify_relational_operation_1): Correct typo.
* simplify-rtx.c (simplify_relational_operation_1): Correct typo.


Co-Authored-By: Matt Thomas <matt@3am-software.com>

From-SVN: r121839
2007-02-12 04:19:42 +00:00
Roger Sayle 69fce32ff9 simplify-rtx.c (simplify_relational_operation_1): Optimize comparisons of POPCOUNT against zero.
* simplify-rtx.c (simplify_relational_operation_1): Optimize
	comparisons of POPCOUNT against zero.
	(simplify_const_relational_operation): Likewise.

	* gcc.target/ia64/builtin-popcount-1.c: New test case.
	* gcc.target/ia64/builtin-popcount-2.c: Likewise.

From-SVN: r121838
2007-02-12 01:43:50 +00:00
Manuel López-Ibáñez 10c5453183 invoke.texi (Wextra): Delete outdated paragraph.
2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wextra): Delete outdated paragraph.

From-SVN: r121829
2007-02-11 22:29:27 +00:00
Manuel López-Ibáñez b04e13e8be dwarf2out.c (root_type): Delete unused function.
2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* dwarf2out.c (root_type): Delete unused function.

From-SVN: r121828
2007-02-11 22:19:49 +00:00
Manuel López-Ibáñez 807331086b genattrtab.c (contained_in_p): Delete unused function.
2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* genattrtab.c (contained_in_p): Delete unused function.
	(write_expr_attr_cache): Likewise.

From-SVN: r121827
2007-02-11 22:10:43 +00:00
Jan Hubicka 68e2e14118 ipa-inline.c (cgraph_edge_badness): Add "else" missing in the previous patch.
* ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
	previous patch.

From-SVN: r121825
2007-02-11 21:28:32 +00:00
Steven Bosscher a31830a7ca fwprop.c (try_fwprop_subst): Use set_unique_reg_note to add the REG_EQ* note.
* fwprop.c (try_fwprop_subst): Use set_unique_reg_note
	to add the REG_EQ* note.
	* see.c (see_merge_one_use_extension): Likewise.
	* local-alloc.c (update_equiv_regs): Likewise.  Also don't
	turn REG_EQUAL notes into REG_EQUIV notes if the target
	register may have more than one set.
	* function.c (assign_parm_setup_reg): Use set_unique_reg_note.
	* gcse.c (try_replace_reg): Likewise.
	* alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
	* calls.c (fixup_tail_calls): Likewise.  Abort if there is
	more than one REG_EQUIV note.
	* reload1.c (gen_reload): Use set_unique_reg_note.

From-SVN: r121821
2007-02-11 19:53:11 +00:00
Uros Bizjak 4c38b6d942 i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
* config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
        (ix86_builtin_conversion): New function.

testsuite/ChangeLog:

        * gcc.dg/vect/vect-intfloat-conversion-1.c: Loop gets vectorized
        on i?86 and x86_64.
        * gcc.dg/vect/vect-intfloat-conversion-2.c: Ditto.
        * gcc.dg/vect/vect-floatint-conversion-1.c: New.
        * gcc.dg/vect/vect-93.c: Another loop gets vectorized
        on i?86 and x86_64.
        * gcc.dg/vect/vect-113.c: Ditto.

From-SVN: r121820
2007-02-11 20:48:07 +01:00
Mark Mitchell 56fd65c7d9 re PR target/29487 (Shared libstdc++ fails to link)
PR target/29487
	* tree.h (DECL_REPLACEABLE_P): New macro.
	* except.c (set_nothrow_function_flags): Likewise.

	PR target/29487
	* decl.c (finish_function): Use DECL_REPLACEABLE.
	* tree.c (cp_cannot_inline_tree_fn): Likewise.

	PR c++/29487
	* g++.dg/eh/weak1-C: New test.
	* g++.dg/eh/weak1-a.cc: Likewise.
	* g++.dg/eh/comdat1.C: Likewise.

From-SVN: r121819
2007-02-11 18:58:05 +00:00
Tehila Meyzels f57d17f1fc tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
        * targhooks.c (default_builtin_vectorized_conversion): New.
        * targhooks.h (default_builtin_vectorized_function): New declaration.
        * target.h (struct vectorize): Add builtin_conversion field.
        * tree-vectorizer.h (type_conversion_vec_info_type): New enum
        stmt_vec_info_type value.
        (vectorizable_conversion): New declaration.
        * tree-vect-analyze.c (vect_analyze_operations): Add
        vectorizable_conversion call.
        * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
        * tree-vect-transform.c (vectorizable_conversion): New function.
        (vect_transform_stmt): Add case for type_conversion_vec_info_type.
        * tree-vect-generic.c (expand_vector_operations_1): Consider correct
        mode.
        * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
        (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
        (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX or
        ALTIVEC_BUILTIN_VCFSX.


Co-Authored-By: Dorit Nuzman <dorit@il.ibm.com>
Co-Authored-By: Ira Rosen <irar@il.ibm.com>

From-SVN: r121818
2007-02-11 11:46:07 +00:00
Uros Bizjak 3de8da2a3c ChangeLog: Whitespace fixes.
* ChangeLog: Whitespace fixes.
	* gcc/ChangeLog: Ditto.
	* gcc/testsuite/ChangeLog: Ditto.

From-SVN: r121815
2007-02-11 09:09:03 +01:00
John David Anglin 51823d478c re PR target/30634 (FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90)
PR target/30634
	* pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
	CONST_DOUBLE and operand 0 is a hard register.
	(movdi): For 64-bit target, remove code to force CONST_DOUBLE to
	memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
	is a hard floating-point register.

From-SVN: r121802
2007-02-10 19:51:40 +00:00
Richard Henderson 8893239dc4 Makefile.in (libgcc-support, [...]): Add emutls.c.
gcc/ChangeLog:
* Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
* builtin-types.def (BT_WORD): Make unsigned.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
* c-decl.c (grokdeclarator): Don't error if !have_tls.
* c-parser.c (c_parser_omp_threadprivate): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
emulated tls.
* expr.c (emutls_var_address): New.
(expand_expr_real_1): Expand emulated tls.
(expand_expr_addr_expr_1): Likewise.
* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
* output.h (emutls_finish): Declare.
* toplev.c (compile_file): Call it.
* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
address before wrapping in CONST.
* varasm.c (emutls_htab, emutls_object_type): New.
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
(get_emutls_object_name, get_emutls_object_type): New.
(get_emutls_init_templ_addr, emutls_decl): New.
(emutls_common_1, emutls_finish): New.
(assemble_variable): When emulating tls, swap decls; generate
constructor for the emutls objects.
(do_assemble_alias): When emulating tls, swap decl and target name.
(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
for emulated tls.
* varpool.c (decide_is_variable_needed): Look at force_output.
Recurse for emulated tls.
(cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
with decide_is_variable_needed.
* emutls.c: New file.
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
tls_object for real tls.
gcc/cp/ChangeLog:
* decl.c (grokvardecl): Don't error if !have_tls.
(grokdeclarator): Likewise.
* parser.c (cp_parser_omp_threadprivate): Likewise.
gcc/fortran/ChangeLog:
* f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
and __emutls_register_common.
* openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
* trans-common.c (build_common_decl): Don't check have_tls.
* trans-decl.c (gfc_finish_var_decl): Likewise.
* types.def (BT_WORD, BT_FN_PTR_PTR): New.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_tls): Redefine
to mean non-emulated tls.
* gcc.dg/tls/alias-1.c: Remove tls requirement.
* gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c,
gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c,
gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c,
gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise.

From-SVN: r121800
2007-02-10 19:19:10 +00:00
Kaz Kojima 4c9034c5e5 re PR rtl-optimization/29599 (ICE when building the kernel on SH4)
PR rtl-optimization/29599
	* reload1.c (eliminate_regs_in_insn): Take the destination
	mode into account when computing the offset.

From-SVN: r121792
2007-02-10 06:47:49 +00:00