Commit Graph

31832 Commits

Author SHA1 Message Date
Mark Mitchell 57a4c089e2 c-decl.c (static_ctors): Move to c-common.c.
* c-decl.c (static_ctors): Move to c-common.c.
	(static_dtors): Likewise.
	(finish_function): Use c_record_cdtor_fn.
	(build_cdtor): Move to c-common.c.
	(c_write_global_declarations): Use c_build_cdtor_fns.
	* c-common.h (static_ctors): Declare.
	(static_dtors): Likewise.
	(c_record_cdtor_fn): Likewise.
	(c_build_cdtor_fns): Likewise.
	* c-common.c (static_ctors): New variable.
	(static_dtors): Likewise.
	(c_record_cdtor_fn): New function.
	(build_cdtor): Move from c-decl.c
	(c_build_cdtor_fns): New function.

	* semantics.c (expand_or_defer_fn): Call c_record_cdtor_fn.
	* decl2.c (cp_write_gloabl_declarations): Call c_build_cdtor_fns.

From-SVN: r122341
2007-02-26 21:14:24 +00:00
Mark Mitchell b2f4bed837 output.h (assemble_addr_to_section): Declare.
* output.h (assemble_addr_to_section): Declare.
	(get_cdtor_priority_section): Likewise.
	* varasm.c (assemble_addr_to_section): New function.
	(get_cdtor_priority_section): Likewise.
	(default_named_section_asm_out_destructor): Use them.
	(destor_dtor_section_asm_out_destructor): Likewise.
	(default_named_section_asm_out_constructor): Likewise.
	(default_ctor_section_asm_out_constructor): Likewise.
	* config.gcc (*-*-vxworks*): Include vxworks.o.
	* config/t-vxworks (vxworks.o): New target.
	* config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
	(TARGET_ASM_CONSTRUCTOR): Define.
	(TARGET_ASM_DESTRUCTOR): Likewise.
	(vxworks_asm_out_constructor): Declare.
	(vxworks_asm_out_destructor): Likewise.

	* c-common.c (get_priority): Check that we have not just an
	INTEGER_CST, but an integer constant with integeral type.

	* gcc.dg/vxworks/vxworks.exp: New file.
	* gcc.dg/vxworks/initpri1.c: Likewise.
	* gcc.dg/vxworks/initpri2.c: Likewise.
	* gcc.dg/initpri2.c: Add more tests.
	* g++.dg/special/initpri2.C: Likewise.

From-SVN: r122335
2007-02-26 15:53:51 +00:00
Uros Bizjak c4a4d1a076 re PR tree-optimization/30938 (Bootstrap fails on x86_64 for -ftree-vectorize)
PR tree-optimization/30938
        * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
        use &dt[nargs-1] instead of &dt[nargs] in the call to
        vect_is_simple_use().

From-SVN: r122323
2007-02-26 00:18:45 +01:00
Ulrich Weigand b098aaf2ae reload.c (find_reloads_address_1): Handle PLUS expressions resulting from register elimination as PRE_MODIFY /...
* reload.c (find_reloads_address_1): Handle PLUS expressions resulting
	from register elimination as PRE_MODIFY / POST_MODIFY increments.
	Do not attempt to handle MEM inside auto-inc expressions.
	* reload1.c (eliminate_regs_1): Do not attempt to handle elimination
	of a register modified by an auto-inc expression.  However, do handle
	elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
	(elimination_effects): Prohibit elimination of a register modified
	by an auto-inc expression.  Disable register elimination rules whose
	target register is modified by an auto-inc expression with variable
	increment.

From-SVN: r122318
2007-02-25 20:56:46 +00:00
Zdenek Dvorak 4839cb59b3 tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix off-by-one error.
* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
	off-by-one error.
	(array_at_struct_end_p): New function.
	(idx_infer_loop_bounds): Use it.
	(estimate_numbers_of_iterations_loop): Export.
	* predict.c (predict_loops): Use estimated_loop_iterations_int.
	Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
	(tree_estimate_probability): Call record_loop_exits.
	* tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
	(estimated_loop_iterations, estimated_loop_iterations_int,
	estimated_loop_iterations_tree): New functions.
	(analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_1_2,
	analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
	(analyze_miv_subscript): Use estimated_loop_iterations_tree.
	* predict.def (PRED_LOOP_ITERATIONS): Update comment.
	(PRED_LOOP_ITERATIONS_GUESSED): New.
	* cfgloop.c (record_loop_exits): Do nothing if there are no loops.
	* cfgloop.h (estimate_numbers_of_iterations_loop,
	estimated_loop_iterations_int): Declare.

From-SVN: r122316
2007-02-25 19:49:22 +00:00
Mark Mitchell fc8600f9c1 extend.texi: Document optional priority argument to constructors and destructors.
* doc/extend.texi: Document optional priority argument to
	constructors and destructors.
	* tree.c (init_priority_for_decl): Adjust GTY markers.
	(init_ttree): Use priority-info hash functions for
	init_priority_for_decl.
	(tree_map_eq): Rename to ...
	(tree_map_base_eq): ... this.
	(tree_map_marked_p): Rename to ...
	(tree_map_base_marked_p): ... this.
	(tree_map_base_hash): New function.
	(decl_init_priority_lookup): Rework.
	(decl_fini_priority_lookup): New function.
	(decl_priority_info): New function.
	(decl_init_priority_insert): Use it.
	(decl_fini_priority_insert): Likewise.
	(decl_restrict_base_lookup): Adjust for refactoring of tree_map
	hierarchy.
	(decl_restrict_base_insert): Likewise.
	(decl_debug_expr_insert): Likewise.
	(decl_value_expr_lookup): Likewise.
	(decl_value_expr_insert): Likewise.
	* tree.h (priority_type): New type.
	(decl_init_priority_lookup): Use priority_type.
	(decl_fini_priority_lookup): New function.
	(decl_init_priority_insert): Use priority_type.
	(decl_fini_priority_insert): New function.
	(DECL_HAS_INIT_PRIORITY): Tweak comments.
	(DECL_INIT_PRIORITY): Likewise.
	(SET_DECL_INIT_PRIORITY): Add comment.
	(DECL_FINI_PRIORITY): New macro.
	(SET_DECL_FINI_PRIORITY): Likewise.
	(DEFAULT_INIT_PRIORITY): Document.
	(MAX_INIT_PRIORITY): Likewise.
	(MAX_RESERVED_INIT_PRIORITY): Likewise.
	(tree_map_base): New type.
	(tree_map_base_eq): New function.
	(tree_map_base_hash): Likewise.
	(tree_map_base_marked_p): Likewise.
	(tree_map): Inherit from tree_map_base.
	(tree_map_eq): Make it a macro.
	(tree_map_marked_p): Likewise.
	(tree_int_map): Inherit from tree_map_base.
	(tree_int_map_eq): Make it a macro.
	(tree_int_map_hash): Likewise.
	(tree_int_map_marked_p): Likewise.
	(tree_priority_map): New type.
	(tree_priority_map_eq): New macro.
	(tree_priority_map_hash): Likewise.
	(tree_priority_map_marked_p): Likewise.
	* varasm.c (emults_decl): Adjust for refactoring of tree_map
	hierarchy.
	(emutls_common_1): Likewise.
	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
	* tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
	of tree_map hierarchy.
	* tree-cfg.c (move_stmt_r): Likewise.
	(new_label_mapper): Likewise.
	* c-tree.h (c_expand_body): Move to ...
	* c-common.h (c_expand_body): ... here.
	* c-decl.c (c_expand_body): Move to ...
	* c-common.c (c_expand_body): ... here.
	(c_common_attribute_table): Allow 1 argument for the constructor
	and destructor attributes.
	(get_priority): New function.
	(handle_constructor_attribute): Set DECL_INIT_PRIORITY.
	(handle_destructor_attribute): Set DECL_FINI_PRIORITY.

	* cp-tree.h (static_ctors): Remove.
	* cp-tree.h (static_dtors): Likewise.
	* cp-objcp-common.c (decl_shadowed_for_var_lookup): Adjust for
	refactoring of tree_map hierarchy.
	(decl_shadowed_for_var_insert): Likewise.
	* semantics.c (expand_body): Use c_expand_body.
	(expand_or_defer_fn): Don't update static_ctors or static_dtors.
	* decl2.c (static_ctors): Remove.
	(static_dtors): Likewise.
	(generate_ctor_or_dtor_function): Pass NULL_TREE to
	objc_generate_static_init_call.  Do not call static_[cd]tors.
	(generate_ctor_and_dtor_functions_for_priority): Do not check for
	static_[cd]tors.
	(cp_write_global_declarations): Likewise.

	* decl.c (annotate_value): Adjust for refactoring of tree_map
	hierarchy.

	* gcc.dg/initpri1.c: New test.
	* gcc.dg/initpri2.c: Likewise.
	* g++.dg/special/initpri1.C: New test.
	* g++.dg/special/initpri2.C: Likewise.
	* g++.dg/special/conpr-1.C: Use init_priority effective target.
	* g++.dg/special/conpr-2.C: Likewise.
	* g++.dg/special/conpr-3.C: Likewise.
	* g++.dg/special/conpr-4.C: Likewise.
	* g++.dg/special/initp1.C: Likewise.
	* g++.dg/special/ecos.exp: Remove code to detect availability of
	constructor priorities.
	* lib/target-support.exp (target_init_priority): New function.

From-SVN: r122315
2007-02-25 18:47:05 +00:00
Jan Hubicka 2a025b54f6 re PR middle-end/30509 (ice for legal code with -O3)
PR middle-end/30509
	* tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.

From-SVN: r122314
2007-02-25 18:11:20 +00:00
Jan Hubicka bd8d4d1917 re PR target/30778 (invalid code generation for memset() with -mtune=k8)
PR target/30778
	* i386.c (counter_mode): New function.
	(expand_set_or_movmem_via_loop): Use it.
	(expand_movmem_epilogue): Likewise; fix pasto.
	(ix86_expand_movmem): Do emit guard even for constant counts.
	(ix86_expand_setmem): Likewise.

From-SVN: r122313
2007-02-25 17:37:37 +00:00
Nick Clifton e133c867ea frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
* config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
   (JUMP_TABLES_IN_TEXT_SECTION): Define.

From-SVN: r122311
2007-02-25 07:47:49 +00:00
Uros Bizjak 730130547b re PR target/30770 (BOOT_CFLAGS="-O2 -g -mtune=nocona" miscompiled the stage 3 compiler)
PR target/30770
        * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
        count argument with 0x10, not with 0x16.
        (expand_setmem_epilogue): Ditto.

From-SVN: r122301
2007-02-25 00:29:30 +01:00
Mike Stump 320ce1d3a3 i386.c (output_pic_addr_const): Stubify optimized symbols.
* config/i386/i386.c (output_pic_addr_const): Stubify optimized
	symbols.

From-SVN: r122297
2007-02-24 22:27:26 +00:00
Richard Guenther a31498d293 re PR middle-end/30951 (Does not fold x + CST == x and x + CST != x)
2007-02-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30951
	* fold-const.c (fold_binary): Fold x +- CST op x for
	EQ_EXPR and NE_EXPR.

	* gcc.dg/pr30951.c: New testcase.

From-SVN: r122295
2007-02-24 19:55:47 +00:00
John David Anglin 1e6e2c303b pa.md (muldi3): Force subregs to registers in 64-bit expander.
* pa.md (muldi3): Force subregs to registers in 64-bit expander.

From-SVN: r122294
2007-02-24 19:16:45 +00:00
Jan Hubicka a1d3118773 cgraphunit.c (decide_is_function_needed): Honor -fkeep-inline-functions.
* cgraphunit.c (decide_is_function_needed): Honor
	-fkeep-inline-functions.

From-SVN: r122293
2007-02-24 19:02:40 +00:00
Kaveh R. Ghazi 3d577eafa1 builtins.c (fold_builtin_modf): New.
* builtins.c (fold_builtin_modf): New.
	(fold_builtin_2): Use it.

testsuite:
	* gcc.dg/torture/builtin-modf-1.c: New test.

From-SVN: r122292
2007-02-24 18:11:33 +00:00
Bernd Schmidt 00c73ae637 loop-iv.c (simplify_using_initial_values): Return if the expression becomes invalid due to altered regs.
* loop-iv.c (simplify_using_initial_values): Return if the
	expression becomes invalid due to altered regs.

From-SVN: r122291
2007-02-24 16:30:51 +00:00
Bernd Schmidt 606830199c loop-iv.c (implies_p): Detect additional cases where A implies B.
* loop-iv.c (implies_p): Detect additional cases where A implies B.
	(determine_max_iter): Take additional LOOP arg; all callers changed.
	Lose broken logic dealing with PLUS.  Try to limit the upper bound by
	one using simplifications.

From-SVN: r122288
2007-02-24 13:40:54 +00:00
DJ Delorie c4f46fdee9 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
From-SVN: r122285
2007-02-23 20:28:22 -05:00
Mike Stump 196bea21f1 tlink.c (scan_linker_output): Parse linker messages from darwin9's linker better.
* tlink.c (scan_linker_output): Parse linker messages from
	darwin9's linker better.

From-SVN: r122283
2007-02-24 00:30:30 +00:00
Steve Ellcey a615f803e4 re PR debug/29614 (DWARF information for function static variable is missing after unrelated code addition)
PR debug/29614
	* varpool.c (varpool_assemble_pending_decls):  Set
	varpool_last_needed_node to null.

From-SVN: r122277
2007-02-24 00:11:39 +00:00
DJ Delorie bf69f9d223 i386.c (ix86_data_alignment): Don't specify an alignment bigger than the object file can handle.
* config/i386/i386.c (ix86_data_alignment): Don't specify an
alignment bigger than the object file can handle.

From-SVN: r122275
2007-02-23 18:16:47 -05:00
Uros Bizjak 4afb77911f re PR target/30825 (current mainline fails to bootstrap when -msse is used)
PR target/30825
        * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
        zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
        (*movsf_1): Penalize MMX moves.

From-SVN: r122268
2007-02-23 19:19:07 +01:00
Bernd Schmidt c67dc1a321 loop-iv.c (determine_max_iter): Moved in front of its sole user.
* loop-iv.c (determine_max_iter): Moved in front of its sole user.

From-SVN: r122264
2007-02-23 18:03:56 +00:00
Bernd Schmidt 0a8f8c4572 bfin.md (doloop_end): Fail for loops that can iterate 2^32-1 or more times unless...
* config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
	2^32-1 or more times unless flag_unsafe_loop_optimizations.

From-SVN: r122262
2007-02-23 15:52:27 +00:00
Kaveh R. Ghazi 6351a719ff builtins.c (fold_builtin_logb, [...]): New.
* builtins.c (fold_builtin_logb, fold_builtin_significand): New.
	(fold_builtin_1): Use them.
	* fold-const.c (tree_expr_nonnegative_warnv_p): Handle
	BUILT_IN_SIGNIFICAND.

testsuite:
	* gcc.dg/torture/builtin-logb-1.c: New test.
	* gcc.dg/torture/builtin-math-2.c: Test logb/ilogb.
	* gcc.dg/torture/builtin-nonneg-1.c: Test significand.
	* gcc.dg/torture/builtin-frexp-1.c: Use -fno-finite-math-only on
	sh* targets.

From-SVN: r122257
2007-02-23 14:27:50 +00:00
H.J. Lu 95764a8f6e i386.c (bdesc_1arg): Initialize IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with...
2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_1arg): Initialize
	IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
	"__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
	(ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
	and IX86_BUILTIN_MOVSLDUP.

From-SVN: r122254
2007-02-23 01:34:34 -08:00
Paolo Bonzini c0729306a6 re PR rtl-optimization/30841 (Missed optimizations for sbi/cbi instructions)
2007-02-22  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/30841
        * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.

From-SVN: r122253
2007-02-23 07:45:34 +00:00
Kaveh R. Ghazi 7a2a25ab4f builtins.c (fold_builtin_frexp): New.
* builtins.c (fold_builtin_frexp): New.
	(fold_builtin_2): Use it.

testsuite:
	* gcc.dg/torture/builtin-frexp-1.c: New test.

From-SVN: r122249
2007-02-23 04:49:21 +00:00
Mark Mitchell 03d12b648e * doc/invoke.texi (Spec Files): Document getenv spec function.
From-SVN: r122248
2007-02-23 03:00:26 +00:00
Mark Mitchell 30d8946bae gcc.c (getenv_spec_function): New function.
* gcc.c (getenv_spec_function): New function.
	(static_spec_functions): Add it.
	* config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
	(VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
	header files.

From-SVN: r122240
2007-02-22 23:49:15 +00:00
Michael Matz a0ad3539f4 dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
* dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
        (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.

        * cp-tree.h (TFF_NO_OUTER_SCOPE): New formatting flag.
        * error.c (dump_aggr_type, dump_simple_decl, dump_decl,
        dump_function_decl): Guard emitting outer scopes by new flag.
        * cp-lang.c (cxx_dwarf_name): New function.
        (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name.
        * pt.c (classtype_mangled_name, mangle_class_name_for_template):
        Remove functions.
        (push_template_decl_real, lookup_template_class): Remove calls
        to above functions.

From-SVN: r122230
2007-02-22 17:03:48 +00:00
Ian Lance Taylor 0c5c188f07 re PR debug/30898 (ICE with anonymous union and -g)
./:	PR debug/30898
	* dwarf2out.c (concatn_mem_loc_descriptor): New static function.
	(mem_loc_descriptor): Call it.
testsuite/:
	* g++.dg/debug/pr30898.C: New test.

From-SVN: r122228
2007-02-22 14:55:09 +00:00
Ira Rosen 021a93e31e * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
From-SVN: r122226
2007-02-22 13:10:49 +00:00
Ira Rosen 8fca6de564 re PR tree-optimization/30843 (ice for legal code with -ftree-vectorize -O2)
PR tree-optimization/30843
	* tree-vect-transform.c (vect_transform_loop): Remove strided scalar
	stores only after all the group is vectorized.

From-SVN: r122225
2007-02-22 12:30:12 +00:00
Dorit Nuzman b3832a9f88 re PR tree-optimization/30858 (ice for legal code with -O2 -ftree-vectorize)
PR tree-optimization/30858
        * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
        in the reduction cycle have a single use in the loop.
        * tree-vectorizer.h (relevant): Add documentation.

From-SVN: r122220
2007-02-22 08:16:18 +00:00
Mike Stump ba7da42a75 configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
* configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
	* configure: Regenerate.

From-SVN: r122211
2007-02-21 23:58:22 +00:00
Trevor Smigiel 73701e2736 Change the defaults of some parameters and options.
2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	Change the defaults of some parameters and options.
	* config/spu/spu-protos.h (spu_optimization_options): Declare.
	* config/spu/spu.c (spu_optimization_options): Add.
	(spu_override_options): Change params in spu_optimization_options.
	* config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.

	Register 127 is only 16 byte aligned when used as a frame pointer.
	* config/spu/spu-protos.h (spu_init_expanders): Declare.
	* config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
	HARD_FRAME_POINTER_REGNUM.
	(spu_legitimate_address):  Use regno_aligned_for_reload.
	(regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
	aligned when frame_pointer_needed is true.
	(spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
	to 8 bits.
	* config/spu/spu.h (INIT_EXPANDERS): Define.

	Make sure shift and rotate instructions have valid immediate operands.
	* config/spu/predicates.md (spu_shift_operand): Remove.
	* config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
	* config/spu/constraints.md (W, O): Extend range. 
	* config/spu/spu.md (umask, nmask): Define.
	(ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
	lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
	rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
	rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
	spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
	(lshr<mode>3_reg):  Fix rtl description.

	Make sure mulhisi immediate operands are valid.
	* config/spu/predicates.md (imm_K_operand): Add.
	* config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.

	Generate constants using fsmbi and andi.
	* config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
	(print_operand, spu_split_immediate, classify_immediate,
	fsmbi_const_p): Handle IC_FSMBI2.

	Correctly handle a CONST_VECTOR containing symbols.
	* config/spu/spu.c (print_operand): Handle HIGH correctly.
	(spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
	(immediate_load_p): Allow symbols that use 2 instructions to create.
	(classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
	with symbols when flag_pic is set.
	(const_vector_immediate_p): New.
	(logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
	accept a CONST_VECTOR with symbols.
	(spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
	accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
	correctly.
	* config/spu/spu.md (high, low): Delete.
	(low_<mode>): Define.

	Remove INTRmode and INTR_REGNUM, which didn't work.
	* config/spu/spu.c (spu_conditional_register_usage): Remove reference
	of INTR_REGNUM.
	* config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
	set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
	peephole2 pattern): Don't use INTR or 131.
	(movintrcc): Delete.
	* config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
	CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
	* config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
	(UNSPEC_SET_INTR): Add.
	* config/spu/spu-modes.def (INTR): Remove.

	More accurate warnings about run-time relocations.
	* config/spu/spu.c (reloc_diagnostic): Test in_section.

	Correctly warn about immediate arguments to specific intrinsics.
	* config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
	(spu_expand_builtin_1): Call spu_check_builtin_parm before checking
	the instruction predicate.

	Fix tree check errors with latest update.
	* config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
	CALL_EXPR_ARG.
	(spu_expand_builtin): Use CALL_EXPR_FN.

	Add missing specific intrinsics.
	* config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
	si_bislede.
	* config/spu/spu_internals.h: Ditto.

	Fix incorrect operand modifiers.
	* config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
	* config/spu/spu.md (xor<mode>3):  Change %S to %J.

	Optimize one case of zero_extend of a vec_select.
	* config/spu/spu.md (_vec_extractv8hi_ze):  Add.

	Accept any immediate for hbr.
	* config/spu/spu.md (hbr):  Change s constraints to i.

From-SVN: r122210
2007-02-21 23:28:46 +00:00
Paul Brook 5b0202af18 arm.c (thumb2_final_prescan_insn): Don't incrememnt condexec_count when skipping USE and CLOBBER.
2007-02-21  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
	condexec_count when skipping USE and CLOBBER.

From-SVN: r122205
2007-02-21 21:30:43 +00:00
Nick Clifton 21af5cdfe2 common.opt (Warray-bounds): Add Warning attribute.
* common.opt (Warray-bounds): Add Warning attribute.
  (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch): Likewise.
  (fsized-zeroes): Add Optimization attribute.
  (fsplit-wide-types, ftree-scev-cprop): Likewise.
* c.opt (Wc++0x-compat): Add Warning attribute.

From-SVN: r122200
2007-02-21 15:40:29 +00:00
Ulrich Weigand 551d69292f re PR middle-end/30761 (Error: unsupported relocation against sfp)
PR middle-end/30761
	* reload1.c (eliminate_regs_in_insn): In the single_set special
	case, attempt to re-recognize the insn before falling back to
	having reload fix it up.

From-SVN: r122199
2007-02-21 15:05:01 +00:00
Eric Christopher 2396bce1bb frv.c (frv_read_argument): Take a tree and int argument.
2007-02-20  Eric Christopher  <echristo@gmail.com>

        * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
        Rewrite accordingly.
        (frv_read_iacc_argument): Ditto.
        (frv_expand_set_builtin): Take a call instead of arglist, update for
        above changes.
        (frv_expand_unop_builtin): Ditto.
        (frv_expand_binop_builtin): Ditto.
        (frv_expand_cut_builtin): Ditto.
        (frv_expand_binopimm_builtin): Ditto.
        (frv_expand_voidbinop_builtin): Ditto.
        (frv_expand_int_void2arg): Ditto.
        (frv_expand_prefetches): Ditto.
        (frv_expand_voidtriop_builtin): Ditto.
        (frv_expand_voidaccop_builtin): Ditto.
        (frv_expand_load_builtin): Ditto.
        (frv_expand_store_builtin): Ditto.
        (frv_expand_mdpackh_builtin): Ditto.
        (frv_expand_mclracc_builtin): Ditto.
        (frv_expand_mrdacc_builtin): Ditto.
        (frv_expand_mwtacc_builtin): Ditto.
        (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
        calls for above.

From-SVN: r122182
2007-02-21 00:02:48 +00:00
Janis Johnson b639c3c245 invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
	* configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
	cmpb instruction.
	(HAVE_GAS_DFP): Check for assembler support of decimal floating
	point instructions.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/rs6000.opt (mcmpb, mdfp): New.
	* config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
	masks to power6 and power6x and to POWERPC_MASKS.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	_ARCH_PWR6.
	* config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
	* config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
	Access PROTOTYPE as variable, not mask.

From-SVN: r122179
2007-02-20 23:11:43 +00:00
Steven Bosscher 7cd689bcf0 rtl.h (remove_reg_equal_equiv_notes): New prototype.
* rtl.h (remove_reg_equal_equiv_notes): New prototype.
	* rtlanal.c (remove_reg_equal_equiv_notes): New function.
	* combine.c (adjust_for_new_dest): Use it.
	* postreload.c (reload_combine): Likewise.

From-SVN: r122178
2007-02-20 22:14:41 +00:00
Steven Bosscher ea8f106d4c rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ* notes on an insn with multiple sets...
* rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
	notes on an insn with multiple sets, even if single_set returns
	non-NULL for that insn.

From-SVN: r122177
2007-02-20 22:11:52 +00:00
Kaveh R. Ghazi 8df79ac594 fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, scalbn and scalbln.
* fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
	scalbn and scalbln.

testsuite:
	* gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn
	and scalbln.

From-SVN: r122169
2007-02-20 19:29:48 +00:00
Geoffrey Keating 32ec65429c Index: gcc/ChangeLog
2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
	if user didn't pass it.
	* config/i386/darwin.h (CC1_SPEC): Likewise.
	* config/rs6000/darwin.h (CC1_SPEC): Likewise.
	(DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
	-mmacosx-version-min.

Index: gcc/testsuite/ChangeLog
2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/darwin-minversion-1.c: New.
	* gcc.dg/darwin-minversion-2.c: New.

From-SVN: r122166
2007-02-20 16:45:38 +00:00
Kaveh R. Ghazi 0c0d910d23 optabs.h (enum optab_index): Add new OTI_scalb.
* optabs.h (enum optab_index): Add new OTI_scalb.
	(scalb_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize scalb_optab.
	* genopinit.c (optabs): Implement scalb_optab using scalb?f3
	patterns.
	* builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
	BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
	(expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
	and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
	flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
	to implement scalbf, scalb and scalbl built-ins as inline x87
	intrinsics.

testsuite/ChangeLog

	* gcc.dg/builtins-34.c: Add scalb/scalbn/scalbln cases.

From-SVN: r122162
2007-02-20 14:33:51 +01:00
Manuel López-Ibáñez 4e2bae26bf re PR other/30824 (-Werror -Wfatal-errors should stop after the first warning)
2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
            DJ Delorie <dj@redhat.com>

	PR other/30824
	* diagnostic.c (diagnostic_count_diagnostic): Move -Werror
	logic to...
	(diagnostic_report_diagnostic): ... here, and turn them into
	real errors. If warnings are inhibited, no need to do
	anything.

testsuite/
	* gcc.dg/Wfatal.c: New.
	* gcc.dg/Wfatal-2.c: New.
	* gcc.dg/Werror-1.c: Adjust expectations.
	* gcc.dg/Werror-5.c: Likewise.
	* gcc.dg/Werror-7.c: Likewise.
	* gcc.dg/Werror-10.c: Likewise.
	* gcc.dg/Werror-11.c: Likewise.

Co-Authored-By: DJ Delorie <dj@redhat.com>

From-SVN: r122159
2007-02-20 10:18:58 +00:00
Uros Bizjak 6bdcc60c75 i386.md (expm1xf2): Reorder insn sequence for better code generation.
* config/i386/i386.md (expm1xf2): Reorder insn sequence for
	better code generation.

From-SVN: r122158
2007-02-20 10:39:25 +01:00
Ben Elliston 9e4bd0ea12 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
From-SVN: r122152
2007-02-20 14:38:39 +11:00