Commit Graph

87212 Commits

Author SHA1 Message Date
GCC Administrator
b0d2eb9a1a Daily bump.
From-SVN: r135132
2008-05-10 00:17:45 +00:00
Tom Tromey
4822e563a0 re PR preprocessor/22231 (-MG ignores missing headers even with -c)
gcc
	PR preprocessor/22231:
	* c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
	proceeding.
gcc/testsuite
	PR preprocessor/22231:
	* gcc.dg/pr22231.c: New file.

From-SVN: r135128
2008-05-09 22:17:00 +00:00
Richard Biener
cc7f489c20 re PR tree-optimization/36187 (Partitioning problem with SFTs (again))
2008-05-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36187
	* g++.dg/opt/pr36187.C: New testcase.

From-SVN: r135126
2008-05-09 20:04:57 +00:00
Uros Bizjak
53a8f70990 re PR tree-optimization/36129 (ICE with -fprofile-use)
PR tree-optimization/36129
        * tree-ssa-cpp.c: Include value-prof.h.
        (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
        built-in function was folded to a constant.
        * Makefile.in (tree-ssa-cpp.c): Depend on value-prof.h

From-SVN: r135123
2008-05-09 20:21:05 +02:00
Jan Sjodin
3f227a8c1c tree-scalar-evolution.c: Document instantiate_scev.
2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c: Document instantiate_scev.
	(instantiate_parameters_1): Renamed instantiate_scev_1.
	Don't use the same loop for instantiation_loop and evolution_loop.
	(instantiate_scev): New.
	(instantiate_parameters): Moved...
	(resolve_mixers): Update call to instantiate_scev_1 to pass the
	same loop twice.  Maintains the semantics for this function.
	* tree-scalar-evolution.h (instantiate_scev): Declare.
	(instantiate_parameters): ...here.  Now static inline.
	* tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
	instead of resolve_mixers.


Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com>

From-SVN: r135116
2008-05-09 16:17:47 +00:00
Maxim Kuvyrkov
a3e19be6b0 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
From-SVN: r135115
2008-05-09 15:44:15 +00:00
Tomas Bily
1043771b10 pa.c (reloc_needed): Use CASE_CONVERT.
* config/pa/pa.c (reloc_needed): Use CASE_CONVERT.

        * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.

        * tree-ssa-structalias.c (get_constraint_for): Likewise.

        * c-common.c (c_common_truthvalue_conversion): Likewise.

        * tree-object-size.c (compute_object_offset): Likewise.

        * tree-inline.c (estimate_num_insns_1): Likewise.

        * varasm.c (const_hash_1, compare_constant, copy_constant)
        (compute_reloc_for_constant, output_addressed_constants)
        (initializer_constant_valid_p): Likewise.

        * c-omp.c (check_omp_for_incr_expr): Likewise.

        * gimplify.c (gimplify_expr): Likewise.

        * c-typeck.c (c_finish_return): Likewise.

        * tree-vectorizer.c (supportable_widening_operation)
        (supportable_narrowing_operation): Likewise.

        * c-pretty-print.c (pp_c_cast_expression, pp_c_expression):
        Likewise.

        * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.

        * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.

        * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
        (descr_info_loc): Likewise.

        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.

        * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
        (fold_unary): Likewise.

        * builtins.c (get_pointer_alignment): Likewise.

        * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
        (instantiate_parameters_1): Likewise.

        * tree.c (expr_align, stabilize_reference): Likewise.

        * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.

        * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.

        * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.

        * tree-ssa-threadedge.c (simplify_control_stmt_condition):
        Likewise.

        * config/alpha/alpha.c (va_list_skip_additions): Likewise.

        * c-common.c (c_alignof_expr, check_function_arguments_recurse):
        Likewise.

        * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.

        * varasm.c (initializer_constant_valid_p, output_constant):
        Likewise.

        * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
        (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
        (forward_propagate_comparison)
        (tree_ssa_forward_propagate_single_use_vars): Likewise.

        * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.

        * emit-rtl.c (component_ref_for_mem_expr)
        (set_mem_attributes_minus_bitpos): Likewise.

        * tree-ssa-phiopt.c (conditional_replacement): Likewise.

        * gimplify.c (gimplify_conversion, goa_lhs_expr_p,
        gimplify_expr): Likewise.

        * c-typeck.c (default_function_array_conversion,
        build_indirect_ref)
        (build_function_call, pointer_diff, build_compound_expr)
        (c_finish_return): Likewise.

        * tree-vect-analyze.c (vect_determine_vectorization_factor):
        Likewise.

        * matrix-reorg.c (get_inner_of_cast_expr,
        may_flatten_matrices_1): Likewise.

        * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.

        * expr.c (is_aligning_offset): Likewise.

        * tree-ssa-alias.c (is_escape_site): Likewise.

        * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
        (check_all_va_list_escapes): Likewise.

        * tree-ssa-loop-ivopts.c (determine_base_object)
        (determine_common_wider_type): Likewise.

        * dojump.c (do_jump): Likewise.

        * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.

        * tree-gimple.c (is_gimple_cast): Likewise.

        * fold-const.c (decode_field_reference, )
        (fold_sign_changed_comparison, fold_unary, fold_comparison)
        (fold_binary): Likewise.

        * tree-ssa-alias-warnings.c (find_alias_site_helper)
        (already_warned_in_frontend_p): Likewise.

        * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.

        * tree.c (really_constant_p, get_unwidened): Likewise.

        * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.

        * tree-ssa-loop-im.c (rewrite_bittest): Likewise.

        * tree-vrp.c (register_edge_assert_for_2,
        register_edge_assert_for_1): Likewise.

        * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
        CONVERT_EXPR_P.
        (CONVERT_EXPR_P): Define.
        (CASE_CONVERT): Define.

From-SVN: r135114
2008-05-09 16:57:39 +02:00
Kenneth Zadeck
5ba5ab9bdb re PR middle-end/36177 (g++.dg/opt/pr23714.C ICEs with 135041 -> 135057)
2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR middle-end/36117
	* dce.c (deletable_insn_p): Do not delete calls if 
	df_in_progress.
	(delete_unmarked_insns): When deleting a call, call 
	delete_unreachable_blocks.
	* rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
	RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed
	doc.

From-SVN: r135113
2008-05-09 12:14:57 +00:00
Julian Brown
7afa92c5a2 Makefile.am (LTLDFLAGS): New.
libgfortran/
    * Makefile.am (LTLDFLAGS): New.
    (libgfortran_la_LDFLAGS): Use above.
    * Makefile.in: Regenerate.

    libffi/
    * Makefile.am (LTLDFLAGS): New.
    (libffi_la_LDFLAGS): Use above.
    * Makefile.in: Regenerate.

    libobjc/
    * Makefile.in (LTLDFLAGS): New.
    (libobjc$(libsuffix).la, libobjc_gc$(libsuffix).la): Use above.

From-SVN: r135112
2008-05-09 10:10:53 +00:00
Richard Guenther
1353232d3d invoke.texi (-fdump-tree-salias): Remove documentation.
2008-05-08  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fdump-tree-salias): Remove documentation.
	(-ftree-salias): Likewise.
	(salias-max-implicit-fields): Remove param documentation.
	(salias-max-array-elements): Likewise.
	* tree-pass.h (pass_create_structure_vars): Remove.
	* params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* tree-ssa-alias.c (create_structure_vars): Remove.
	(gate_structure_vars): Likewise.
	(pass_create_structure_vars): Likewise.
	(gate_build_alias): Likewise.
	(pass_build_alias): Adjust to run always and dump the function.
	* common.opt (ftree-salias): Hide.
	* passes.c (init_optimization_passes): Remove
	pass_create_structure_vars, adjust comment.
	* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* opts.c (decode_options): Do not set flag_tree_salias.
	(common_handle_option): Add OPT_ftree_salias to the backward
	compatibility section.

	* gcc.dg/tree-ssa/20040911-1.c: Adjust.
	* gcc.dg/tree-ssa/20040517-1.c: Likewise.
	* gcc.dg/tree-ssa/pr26421.c: Likewise.
	* gcc.dg/tree-ssa/pr23382.c: Likewise.
	* gcc.dg/tree-ssa/alias-15.c: Likewise.
	* gcc.dg/tree-ssa/inline_asm-1.c: Likewise.
	* gcc.dg/tree-ssa/inline_asm-2.c: Likewise.
	* gcc.dg/tree-ssa/pta-fp.c: Likewise.
	* gcc.dg/tree-ssa/20031015-1.c: Likewise.
	* gcc.dg/tree-ssa/alias-12.c: Likewise.

From-SVN: r135111
2008-05-09 09:37:36 +00:00
Richard Guenther
31de5b771a tree-flow-inline.h (var_can_have_subvars): Move ...
2008-05-08  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (var_can_have_subvars): Move ...
	* tree-ssa-structalias.c (var_can_have_subvars): ... here.
	* tree-flow.h (var_can_have_subvars): Remove.
	(push_fields_onto_fieldstack): Remove.
	(sort_fieldstack): Likewise.
	(struct fieldoff): Move ...
	* tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
	alias_set and base_for_components fields.
	(sort_fieldstack): Make static.
	(push_fields_onto_fieldstack): Likewise.  Remove code that
	handles anything but RECORD_TYPEs.  Remove alias_set and
	base_for_components handling.
	(create_variable_info_for): Adjust.

From-SVN: r135110
2008-05-09 09:32:51 +00:00
Francois-Xavier Coudert
3ee6cb3f69 re PR fortran/36162 (Non-ASCII character in module string gives ICE)
PR fortran/36162

        * module.c (quote_string, unquote_string,
        mio_allocated_wide_string): New functions.
        (mio_expr): Call mio_allocated_wide_string where needed.

	* gfortran.dg/module_widestring_1.f90: New test.

From-SVN: r135109
2008-05-09 08:02:52 +00:00
Ben Elliston
b70837af60 Formatting fix.
From-SVN: r135106
2008-05-09 12:57:20 +10:00
GCC Administrator
78a3d80d0c Daily bump.
From-SVN: r135101
2008-05-09 00:17:37 +00:00
Seongbae Park
c1a3620ad7 common.opt (Wframe-larger-than=): Shorten the help message to one line.
2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
	* common.opt (Wframe-larger-than=): Shorten the help message
	to one line.
	* doc/invoke.texi (Wframe-larger-than=): Add more description.

From-SVN: r135097
2008-05-08 22:57:55 +00:00
Rafael Avila de Espindola
04b03edb56 tree-complex.c (expand_complex_div_wide): Don't create CONDs that trap.
* tree-complex.c (expand_complex_div_wide): Don't create CONDs that
	trap.
	* tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
	trap and that both operands are gimple values.
	(canonicalize_cond_expr_cond): Use is_gimple_condexpr.
	* gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
	is a fp operation.

	* gcc/testsuite/gcc.dg/vect/vect-111.c: Rename to no-trapping-math-vect-111.c
	* gcc/testsuite/gcc.dg/vect/vect-ifcvt-11.c: Rename to no-trapping-math-vect-ifcvt-11.c
	* gcc/testsuite/gcc.dg/vect/vect-ifcvt-12.c: Rename to no-trapping-math-vect-ifcvt-12.c
	* gcc/testsuite/gcc.dg/vect/vect-ifcvt-13.c: Rename to no-trapping-math-vect-ifcvt-13.c
	* gcc/testsuite/gcc.dg/vect/vect-ifcvt-14.c: Rename to no-trapping-math-vect-ifcvt-14.c
	* gcc/testsuite/gcc.dg/vect/vect-ifcvt-15.c: Rename to no-trapping-math-vect-ifcvt-15.c

From-SVN: r135093
2008-05-08 22:16:59 +00:00
Richard Sandiford
96c92f4763 read-rtl.c (join_c_conditions): Return the first string if the two strings are equal.
gcc/
	* read-rtl.c (join_c_conditions): Return the first string if the
	two strings are equal.

From-SVN: r135091
2008-05-08 21:29:00 +00:00
Richard Sandiford
e663da80d4 gensupport.h (pred_data): Add a "num_codes" field.
gcc/
	* gensupport.h (pred_data): Add a "num_codes" field.
	(add_predicate_code): Declare.
	* gensupport.c (add_predicate_code): New function.
	(std_pred_table): Add an "allows_const_p" field.
	(std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
	Remove the (incomplete) list of such codes from the codes field.
	(init_predicate_table): Use add_predicate_code.  Add all
	RTX_CONST_OBJs if allows_const_p is true.
	* genrecog.c (process_define_predicate): Use add_predicate_code.

From-SVN: r135090
2008-05-08 21:28:27 +00:00
David Daney
977502ff84 target-supports.exp (check_effective_target_sync_int_long): Add mips*-*-*.
2008-05-08  David Daney  <ddaney@avtrex.com>

	* lib/target-supports.exp (check_effective_target_sync_int_long): Add
	mips*-*-*.
	(check_effective_target_sync_char_short): Same.


2008-05-08  David Daney  <ddaney@avtrex.com>
	    Richard Sandiford  <rsandifo@nildram.co.uk>
	
	* config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
	special case of constant zero operands.
	* config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
	old and	new values.  Special case constant zero values.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
	fails.
	(MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
	(MIPS_COMPARE_AND_SWAP_12_0): New macro.


Co-Authored-By: Richard Sandiford <rsandifo@nildram.co.uk>

From-SVN: r135088
2008-05-08 17:04:12 +00:00
Paolo Bonzini
627ab8616c re PR target/36090 (ppc64 cacoshl miscompilation)
2008-05-08  Paolo Bonzini  <bonzini@gnu.org>

        PR target/36090
        * simplify-rtx.c (simplify_plus_minus): Create CONST of
        similar RTX_CONST_OBJ before CONST_INT.

From-SVN: r135086
2008-05-08 12:35:56 -04:00
Steve Ellcey
41ccb5d1b1 * stmt.c (expand_stack_restore): Change sa mode if needed.
From-SVN: r135085
2008-05-08 16:22:27 +00:00
Sebastian Pop
a3ced85e05 patch_tester.sh (report): Do not print "Checker: ".
2008-05-08  Sebastian Pop  <sebastian.pop@amd.com>

	* patch_tester.sh (report): Do not print "Checker: ".

From-SVN: r135083
2008-05-08 15:14:47 +00:00
Uros Bizjak
d78228927a ChangeLog: Whitespace fixes.
* ChangeLog: Whitespace fixes.
	* testsuite/Changelog: Ditto.

From-SVN: r135081
2008-05-08 15:26:02 +02:00
Richard Guenther
e8d6aaee64 i386-protos.h (ix86_return_in_memory): Adjust return type to bool.
2008-05-08  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386-protos.h (ix86_return_in_memory): Adjust
	return type to bool.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.
	* config/i386/i386.c (ix86_return_in_memory): Likewise.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.

From-SVN: r135080
2008-05-08 12:25:39 +00:00
Kai Tietz
033df0b9d2 calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to fndecl argument.
2008-05-08  Kai Tietz  <kai.tietz@onevision.com>

	PR/36180
	* calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
	fndecl argument.
	(emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable
	fndecl.
	* target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't declared in front.

From-SVN: r135079
2008-05-08 13:32:55 +02:00
Andreas Schwab
a1b6607115 utils.c (handle_pure_attribute, [...]): Rename DECL_IS_PURE to DECL_PURE_P.
* utils.c (handle_pure_attribute, init_gigi_decls): Rename
DECL_IS_PURE to DECL_PURE_P.

From-SVN: r135078
2008-05-08 11:11:05 +00:00
Richard Guenther
5611cf0bf5 tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2008-05-08  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
	* tree-data-ref.h (struct dr_alias): Remove subvars field.
	(DR_SUBVARS): Remove.
	* tree-dfa.c (dump_subvars_for): Remove.
	(debug_subvars_for): Likewise.
	(dump_variable): Do not dump subvars.
	(remove_referenced_var): Do not remove subvars.
	* tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
	(lookup_subvars_for_var): Remove.
	(get_subvars_for_var): Likewise.
	(get_subvars_at): Likewise.
	(get_first_overlapping_subvar): Likewise.
	(overlap_subvar): Likewise.
	* tree-flow.h (subvar_t): Remove.
	(struct var_ann_d): Remove subvars field.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
	argument.  Remove special handling of SFTs.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(compute_call_clobbered): Likewise.
	(count_mem_refs): Likewise.
	(compute_memory_partitions): Likewise.
	(compute_flow_insensitive_aliasing): Likewise.
	(setup_pointers_and_addressables): Likewise.
	(new_type_alias): Likewise.
	(struct used_part): Remove.
	(used_portions): Likewise.
	(struct used_part_map): Likewise.
	(used_part_map_eq): Likewise.
	(used_part_map_hash): Likewise.
	(free_used_part_map): Likewise.
	(up_lookup): Likewise.
	(up_insert): Likewise.
	(get_or_create_used_part_for): Likewise.
	(create_sft): Likewise.
	(create_overlap_variables_for): Likewise.
	(find_used_portions): Likewise.
	(create_structure_vars): Likewise.
	* tree.def (STRUCT_FIELD_TAG): Remove.
	* tree.h (MTAG_P): Adjust.
	(struct tree_memory_tag): Remove base_for_components and
	unpartitionable flags.
	(struct tree_struct_field_tag): Remove.
	(SFT_PARENT_VAR): Likewise.
	(SFT_OFFSET): Likewise.
	(SFT_SIZE): Likewise.
	(SFT_NONADDRESSABLE_P): Likewise.
	(SFT_ALIAS_SET): Likewise.
	(SFT_UNPARTITIONABLE_P): Likewise.
	(SFT_BASE_FOR_COMPONENTS_P): Likewise.
	(union tree_node): Remove sft field.
	* alias.c (get_alias_set): Remove special handling of SFTs.
	* print-tree.c (print_node): Remove handling of SFTs.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-into-ssa.c (mark_sym_for_renaming): Likewise.
	* tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
	* tree-predcom.c (set_alias_info): Do not set subvars.
	* tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
	* tree-ssa-operands.c (access_can_touch_variable): Likewise.
	(add_vars_for_offset): Remove.
	(add_virtual_operand): Remove special handling of SFTs.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	(get_modify_stmt_operands): Likewise.
	(get_expr_operands): Likewise.
	(add_to_addressable_set): Likewise.
	* tree-ssa.c (verify_ssa_name): Do not handle SFTs.
	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Do not
	set subvars.
	* tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
	(tree_code_size): Remove STRUCT_FIELD_TAG handling.
	(tree_node_structure): Likewise.
	* tree-ssa-structalias.c (set_uids_in_ptset): Remove special
	handling of SFTs.
	(find_what_p_points_to): Likewise.

From-SVN: r135077
2008-05-08 09:27:29 +00:00
Kai Tietz
8e17a4cf37 pr36172.c: Replace unsigned long by __SIZE_TYPE__.
2008-05-08  Kai Tietz  <kai.tietz@onevision.com>

        * gcc.c-torture/compile/pr36172.c: Replace unsigned long by
        __SIZE_TYPE__.

From-SVN: r135076
2008-05-08 10:53:39 +02:00
Sa Liu
fb4b5171a0 fixed subti3 pattern
From-SVN: r135075
2008-05-08 08:45:15 +00:00
Sa Liu
dc4918499f test subti3
From-SVN: r135074
2008-05-08 08:42:38 +00:00
Sa Liu
f51de793f1 fixed subti3 pattern
From-SVN: r135073
2008-05-08 08:39:45 +00:00
Richard Guenther
1b674de053 re PR middle-end/36154 (internal compiler error: in get_constraint_for_component_ref, at tree-ssa-structalias.c:2727)
2008-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36154
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
	sure to create a representative for trailing arrays for PTA.

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

From-SVN: r135071
2008-05-08 08:20:45 +00:00
Richard Guenther
b13e7b6cfc re PR middle-end/36172 (ice for legal code with -O3)
2008-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36172
	* fold-const.c (operand_equal_p): Two objects which types
	differ in pointerness are not equal.

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

From-SVN: r135070
2008-05-08 08:19:16 +00:00
Kai Tietz
81464b2cd8 2008-05-07 Kai Tietz <kai,tietz@onevision.com>
* calls.c (compute_argument_block_size): Add argument tree fndecl.
	(OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
	(emit_library_call_value_1): Add new variable fndecl initialized by
	NULL_TREE. It should be the decl type of orgfun, but this information
	seems not to be available here, so it uses the default calling abi.
	* config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
	* config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
	by TARGET_RETURN_IN_MEMORY.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386elf.h: Likewise.
	* config/i386/ptx4-i.h: Likewise.
	* config/i386/sol2-10.h: Likewise.
	* config/i386/sysv4.h: Likewise.
	* config/i386/vx-common.h: Likewise.
	* config/cris/cris.h: Removed #if 0 clause.
	* config/arm/arm-protos.h (arm_return_in_memory): Add fntype
	argument.
	* config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
	argument.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): New.
	(ix86_i386interix_return_in_memory): New.
	* config/mt/mt-protos.h (mt_return_in_memory): New.
	* config/mt/mt.c: Likewise.
	* config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
	(RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
	* config/bfin/bfin.h: Likewise.
	* config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
	argument.
	* config/bfin/bfin.c: Likewise.
	* config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
	* config/alpha/unicosmk.h: Likewise.
	* config/i386/cygming.h: Likewise.
	* config/iq2000/iq2000.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mn10300/mn10300.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/score/score.h: Likewise.
	* config/spu/spu.h: Likewise.
	* config/v850/v850.h: Likewise.
	* defaults.h: Likewise.
	* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
	* expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE.
	* function.c (STACK_DYNAMIC_OFFSET): Adjust use of
	OUTGOING_REG_PARM_STACK_SPACE.
	* targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.

From-SVN: r135069
2008-05-08 09:10:49 +02:00
GCC Administrator
2fada7f3f3 Daily bump.
From-SVN: r135064
2008-05-08 00:17:37 +00:00
Jakub Jelinek
1f16b47cd0 re PR debug/35896 (gfortran TLS symbols broken with debug info)
PR debug/35896
	* dwarf2out.c (dw_expand_expr, common_check): Removed.
	(fortran_common): New function.
	(gen_variable_die): Call fortran_common instead of common_check,
	adjust for it returning tree instead of rtx.    Formatting.

From-SVN: r135060
2008-05-08 01:15:50 +02:00
Jakub Jelinek
4218dc2db0 tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT on OMP_RETURN for OMP_FOR.
* tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
	on OMP_RETURN for OMP_FOR.

From-SVN: r135059
2008-05-08 01:14:13 +02:00
Kenneth Zadeck
becfd6e57b [multiple changes]
2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>

        PATCH rtl/7335
        PATCH rtl/33826
        * see.c (see_copy_insn): Copy new pure const attributes for new
        call.
        * c-decl.c (merge_decls): Ditto.
        * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
        to RTL_CONST_OR_PURE_CALL_P.
        * tree.c (define_local_buitin): Rename DECL_IS_PURE to
        DECL_PURE_P.  Initialized DECL_LOOPING_CONST_PURE.
        (process_call_operands): Set tree_side_effects properly.
        * tree.h (TREE_READONLY_DECL_P): Removed.
        (DECL_IS_PURE): Renamed to DECL_PURE_P.
        (DECL_LOOPING_OR_CONST_P): New macro.
        (struct tree_function_decl): Added looping_const_or_pure_p.
        (ECF_*) Renumbered.
        (ECF_LOOPING_OR_CONST_P): New macro,
        * rtlanal.c (pure_const_p): Removed.
        * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
        * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
        to RTL_CONST_CALL_P.
        * ipa-pure-const.c (pure_const_state_e): Added looping field.
        (check_decl, check_tree, check_call, scan_function): Initialize
        looping.
        (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
        (static_execute): Set looping true for recursive functions.
        Undo setting state to IPA_NEITHER for recursive functions.
        * cse.c (cse_insn): 
        * ifcvt.c (noce_can_store_speculate_p): Changed
        CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
        RTL_CONST_OR_PURE_CALL_P.
        * dse.c (scan_insn): Ditto.
        * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
        * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
        RTL_CONST_OR_PURE_CALL_P.
        (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
        pure_call_p to RTL_CONST_CALL_P.
        * gimplify.c (gimplify_call_expr): Clear side effects for
        non-looping pure and constant calls.
        * calls.c (emit_call_1): Set rtl flags from ecf flags.
        (flags_from_decl_or_type): Set ecf flags from decl flags.
        (initialize_argument_information): Turn off
        ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
        Change const to pure if callee_copies is true rather than just
        turning off const.
        (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
        way of marking pure calls.
        (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
        Remove hack that was supposed to fix pr7335 and remove old
        way of marking pure calls.
        * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
        RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
        * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
        RTL_CONST_OR_PURE_CALL_P.
        * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
        * loop-invariant.c (find_exits, find_invariant_bb): Changed
        CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
        * sched-deps.c (schedule_analyze): Ditto.
        * rtl.h (struct rtx_def): Use call field, unchanging field, and
        return_val field of calls to represent pure and const function
        info.
        (CONST_OR_PURE_CALL_P): Deleted macro.
        (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
        RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
        * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
        TREE_READONLY.
        * tree-optimize.c (execute_fixup_cfg): Added test for
        ECF_LOOPING_CONST_OR_PURE.
        * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
        DECL_PURE_P.
        * tree-cfg.c (update_call_expr_flags): Do not clear tree side
        effects for looping pure or const calls.
        (verify_gimple_expr): Added verification code. 
        * config/alpha/alpha.c (alpha_legitimize_address,
        alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
        RTL_CONST_CALL_P.
        * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
        * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
        * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
        RTL_CONST_OR_PURE_CALL_P.
        * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
        and const calls to be deleted.

java:
2008-05-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* decl.c (java_init_decl_processing): Change DECL_IS_PURE to
	DECL_PURE_P.

cp:
2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>

	 * decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY,
	 DECL_LOOPING_CONST_OR_PURE_P attributes.
	 * rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to
	 DECL_PURE_P.

gfortran:
2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>

	 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
	 Rename DECL_IS_PURE to DECL_PURE_P.

From-SVN: r135053
2008-05-07 20:48:07 +00:00
Joseph Myers
d320458418 * sv.po: Update.
From-SVN: r135049
2008-05-07 21:43:26 +01:00
Uros Bizjak
3a3f9d87f6 i386.c (struct_builtin_description): Use CODE_FOR_sse_loadhps_exp.
* config/i386/i386.c (struct_builtin_description)
        [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
        [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
        [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
        [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
        [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
        [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
        [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
        [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.

From-SVN: r135047
2008-05-07 21:08:53 +02:00
Uros Bizjak
ffbaf3373c re PR target/35714 (x86 poor code with pmaddwd)
PR target/35714
	* config/i386/mmx.md (mmx_subv2sf3): New expander.
	(*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
	(*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
	(mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_paddwd): Rename from mmx_paddwd insn pattern.
	(mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
	(mmx_pmulhrwv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
	(sse2_umulv1siv1di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
	(mmx_eq<mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
	(mmx_uavgv8qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
	(mmx_uavgv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.

	* config/i386/sse.md
	(*sse_movhlps): Rename from sse_movhlps insn pattern.
	(sse_movhlps): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse_movlhps): Rename from sse_movlhps insn pattern.
	(sse_movlhps): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse_loadhps): Rename from sse_loadhps insn pattern.
	(sse_loadhps): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse_loadlps): Rename from sse_loadlps insn pattern.
	(sse_loadlps): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse2_unpckhpd): Rename from sse2_unpckhpd insn pattern.
	(sse2_unpckhpd): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_unpcklpd): Rename from sse2_unpcklpd insn pattern.
	(sse2_unpcklpd): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse_loadhpd): Rename from sse_loadhpd insn pattern.
	(sse_loadhpd): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse_loadlpd): Rename from sse_loadlpd insn pattern.
	(sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse2_<plusminus_insn><mode>3): Rename from
	sse2_<plusminus_insn><mode>3 insn pattern.
	(sse2_<plusminus_insn><mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
	(sse2_umulv2siv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
	(sse4_1_mulv2siv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
	(sse2_pmaddwd): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
	(sse2_eq<mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
	(sse4_1_eqv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
	(sse2_uavgv16qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
	(sse2_uavgv16qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
	(sse2_uavgv8hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
	(ssse3_pmulhrswv8hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
	(ssse3_pmulhrswv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.

	(<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
	(<sse>_vmmul<mode>3): Ditto.
	(divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
	(divv2df3): Ditto.
	(ssse3_pmaddubsw128): Use register_operand for operand 1.
	(ssse3_pmaddubsw): Ditto.

	* config/i386/sse.md (ix86_fixup_binary_operands): Assert that src1
	and src2 must have the same mode when swapped.
	(ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
	and ix86_binary_operator_ok.  Do not force operands in registers
	when optimizing.

testsuite/ChangeLog:

	PR target/35714
	* gcc.target/i386/pr35714.c: New test.

From-SVN: r135041
2008-05-07 15:12:02 +02:00
Johannes Singler
a273a42537 quicksort.h: (parallel_sort_qs_conquer) Explicitly request number of threads in the parallel...
2008-05-07  Johannes Singler  <singler@ira.uka.de>

       * include/parallel/quicksort.h:
       (parallel_sort_qs_conquer) Explicitly request number of threads
       in the parallel clause.
       (parallel_sort_qs) Remove setting the number of threads globally.

From-SVN: r135038
2008-05-07 11:14:05 +00:00
Jan Hubicka
9562228040 cgraph.c (dump_cgraph_node): Update.
* cgraph.c (dump_cgraph_node): Update.
	* cgraph.h (cgraph_local_info): Break out inline summary.
	* cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
	hook.
	* ipa-inline (inline_summary): New accestor function.
	(cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
	cgraph_decide_inlining, compute_inline_parameters): Update.
	* ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.

From-SVN: r135037
2008-05-07 09:44:30 +00:00
Maxim Kuvyrkov
96fcacb7d3 Cleanup ColdFire scheduling support and add V4 pipeline model.
* config/m68k/m68k.md (UNSPEC_TIE): New constant.
	(define_attr cpu): Add cfv4 value.
	(define_attr type, define_attr type1): Merge into a single 'type'
	attribute.  Update all uses.
	(define_attr opx_type, define_attr opy_type, define_attr opx_access):
	Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
	Update all uses.
	(define_attr opx_mem, define_attr opy_mem): Remove.
	(define_attr op_mem): Clean up, update comment.
	(define_attr size): Use specific values instead of general int.
	(define_attr guess, define_attr split): Remove.  Update all uses.
	(movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
	tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
	movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
	zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
	68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
	floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
	fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
	adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
	add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
	add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
	sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
	sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
	mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
	umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
	mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
	div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
	one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
	bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
	beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
	bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
	symbolic_call_value_jsr, symbolic_call_value_bsr, link):
	Update or set attributes.
	(stack_tie): New fake instruction.

	* config/m68k/m68k.h (TUNE_CFV4): New macro.
	(m68k_sched_attr_size): Update declaration.
	(m68k_sched_attr_type2): Remove.
	(m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
	Declare new bypass predicates.

	* config/m68k/m68k.c (m68k_sched_issue_rate,
	m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
	implementations.
	(TARGET_SCHED_ISSUE_RATE,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
	(override_options): Handle scheduling for ColdFire V4 core.
	(m68k_expand_prologue): Emit stack_tie.
	(enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
	'OP_TYPE_FPN'.  Update all uses.
	(sched_guess_p): Remove.
	(sched_address_type): Handle symbolic addresses.
	(sched_get_operand): New static function.
	(sched_operand_type): Merge into sched_attr_op_type.
	(sched_attr_op_type): Handle FP registers, handle quick constants,
	update.
	(m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
	(m68k_sched_attr_size): Update.  Move logic to ...
	(sched_get_attr_size_int): New static function.
	(sched_get_opxy_mem_type): New static function.
	(m68k_sched_attr_op_mem): Update.
	(m68k_sched_attr_type2): Remove.
	(sched_cfv4_bypass_data): New static variable.
	(m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
	(m68k_sched_issue_rate): Implement scheduler hook.
	(struct _sched_ib: enabled_p): New field.
	(m68k_sched_variable_issue): Update.  Handle V4.
	(SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
	sched_dump_class_func_t, sched_dump_split_class,
	sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
	sched_dump_dfa_class, m68k_sched_dump): Remove.
	(m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
	hook.
	(m68k_sched_init_global): Remove statisctics dumping, introduce
	sanity check that all instructions have pipeline reservations.  Handle
	ColdFire V4 core.
	(m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
	Handle ColdFire V4 core.
	(sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
	New static functions.
	(m68k_sched_address_bypass_p): New bypass predicate.
	(sched_get_indexed_address_scale): New static function.
	(m68k_sched_indexed_address_bypass_p): New bypass predicate.

	* cf.md: Update comments.
	(define_attr type2): Remove.  Use 'type' attribute instead.
	Update all uses.
	(cf_ib): Rename to cfv123_ib.  Update all uses.
	(cf_oep): Rename to cfv123_oep.  Update all uses.
	(cf_chr): Rename to cfv123_chr.  Update all uses.
	(cf_mem): Rename to cfv123_mem.  Update all uses.
	(cf_mac): Move to more appropriate place.
	(cfv123_guess): New automaton and cpu_unit.
	(cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
	Update uses of 'size' attribute.  Handle before reload scheduling.
	(cfv123_guess): New dummy reservation for unhandled instructions.
	(cfv4_*): Pipeline description of ColdFire V4 core.
	(ignore): New reservation to handle 'ignore' type.

From-SVN: r135033
2008-05-07 08:09:27 +00:00
Ian Lance Taylor
2ee510b422 re PR middle-end/36013 (Wrong code involving restricted pointers to non-restricted pointers)
PR middle-end/36013
	* gimplify.c (find_single_pointer_decl_1): Don't look through
	indirections.
	(find_single_pointer_decl): Adjust comments.

	* gcc.c-torture/execute/20080506-2.c: New test.

From-SVN: r135029
2008-05-07 09:45:17 +02:00
Jakub Jelinek
f61edbf65f re PR middle-end/36137 (gcc can't do math)
PR middle-end/36137
	* fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
	STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.

	* gcc.c-torture/execute/20080506-1.c: New test.

From-SVN: r135028
2008-05-07 09:40:01 +02:00
Jakub Jelinek
c18c98c0ad re PR middle-end/36106 (#pragma omp atomic issues with floating point types)
PR middle-end/36106
	* omp-low.c (expand_omp_atomic_pipeline): Load value using the
	integral type rather than floating point, then VIEW_CONVERT_EXPR
	to the floating point type.

	* testsuite/libgomp.c/atomic-5.c: New test.
	* testsuite/libgomp.c/atomic-6.c: New test.
	* testsuite/libgomp.c/autopar-1.c: New test.

From-SVN: r135027
2008-05-07 09:28:14 +02:00
Uros Bizjak
537d4fa684 i386.c (ix86_expand_copysign): Force non-zero constant TFmode op0 to register.
* config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
	TFmode op0 to register.

From-SVN: r135025
2008-05-07 09:19:01 +02:00
Jerry DeLisle
73f1509d26 re PR libfortran/34974 (null bytes when reverse-tabbing long records (regression vs. g77))
2008-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/34974
	gfortran.dg/fmt_t_7.f: XFAIL this until we get issue resolved.

From-SVN: r135017
2008-05-07 02:28:45 +00:00
Alan Modra
5f04ff8070 c-decl.c (grokdeclarator): Comment typo.
* c-decl.c (grokdeclarator): Comment typo.

From-SVN: r135016
2008-05-07 11:16:50 +09:30