aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2004-06-21array.c (gfc_insert_constructor): Avoid redundant call to mpz_comp.Tobias Schlüter2-3/+10
* array.c (gfc_insert_constructor): Avoid redundant call to mpz_comp. Add 2004 to copyright years. From-SVN: r83442
2004-06-21java-gimplify.c (java_gimplify_block): set TREE_USED on the new block.Andrew Haley2-0/+10
2004-06-21 Andrew Haley <aph@redhat.com> * java-gimplify.c (java_gimplify_block): set TREE_USED on the new block. From-SVN: r83441
2004-06-21arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need not imply FPA.Paul Brook2-3/+7
* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need not imply FPA. From-SVN: r83434
2004-06-21fold-const.c (operand_equal_p): Pass flags in recursive calls for binary and ↵Roger Sayle3-3/+39
relational operations. * fold-const.c (operand_equal_p): Pass flags in recursive calls for binary and relational operations. Add support for TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. From-SVN: r83433
2004-06-21rtlanal.c (may_trap_p): Mark LTGT as trapping.Paolo Bonzini2-0/+5
2004-06-21 Paolo Bonzini <bonzini@gnu.org> * rtlanal.c (may_trap_p): Mark LTGT as trapping. From-SVN: r83432
2004-06-21tree-alias-common.h (struct tree_alias_ops): Change ip and ip_partial to ↵Joseph Myers8-11/+28
unsigned int. * tree-alias-common.h (struct tree_alias_ops): Change ip and ip_partial to unsigned int. fortran: * trans.h (stmtblock_t): Change has_scope to unsigned int. java: * jcf.h (struct JCF): Change java_source, right_zip and finished to unsigned int. * lex.h (struct java_lexer): Change hit_eof, read_anything, byte_swap and use_fallback to unsigned int. * parse.h (struct _jdep): Change flag0 to unsigned int. From-SVN: r83430
2004-06-21c-common.c (verify_sequence_points): Export.Richard Henderson15-115/+239
* c-common.c (verify_sequence_points): Export. (c_expand_expr_stmt): Move to c-typeck.c. * c-common.h (c_expand_expr_stmt): Remove. (verify_sequence_points): Declare. * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. * c-parse.in (for_init_stmt, stmt): Likewise. * c-tree.h (c_finish_expr_stmt): Declare. (c_tree_expr_nonnegative_p): Remove. * c-typeck.c (c_tree_expr_nonnegative_p): Remove. (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. (emit_side_effect_warnings): New. (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. Use emit_side_effect_warnings. (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR with void initializer. (gimplify_target_expr): Handle void BIND_EXPR initializer. * tree-inline.c (estimate_num_insns_1): Fix type lookup for INIT_EXPR and MODIFY_EXPR. * objc/objc-act.c (build_module_descriptor): Use add_stmt instead of c_expand_expr_stmt. cp/ * semantics.c (finish_expr_stmt): Call verify_sequence_points. testsuite/ * gcc.dg/tree-ssa/20030714-1.c: Rename variables to avoid merging && to BIT_FIELD_REF. From-SVN: r83429
2004-06-21fold-const.c (fold_cond_expr_with_comparison): New function, extracted from ↵Paolo Bonzini2-218/+305
fold. 2004-06-21 Paolo Bonzini <bonzini@gnu.org> * fold-const.c (fold_cond_expr_with_comparison): New function, extracted from fold. (fold): Extract code to fold A op B ? A : C, use it to fold A op B ? C : A. Really optimize A & N ? N : 0 where N is a power of two. Avoid relying on canonicalization and recursion for foldings of COND_EXPR to happen. From-SVN: r83428
2004-06-21* g++.dg/opt/placeholder1.C: New test.Richard Sandiford2-0/+14
From-SVN: r83427
2004-06-21objc-act.h (get_object_reference): Rename to get_protocol_reference.David Ayers5-78/+130
2004-06-20 David Ayers <d.ayers@inode.at> * objc/objc-act.h (get_object_reference): Rename to get_protocol_reference. (super_type): Rename to objc_super_type. (selector_type): Rename to objc_selector_type. (id_type): Rename to objc_id_type. (instance_type): Rename to objc_instance_type. (protocol_type): Rename to objc_protocol_type. (IS_ID): Update reference to id_type. * objc/objc-act.c (get_object_reference): Rename to get_protocol_reference; add documentation; update references to id_type. (lookup_method_in_protocol_list): Rename class_meth to is_class; add documentation. (finish_message_expr): Rename is_class to class_tree. (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, next_sjlj_build_try_catch_finally, objc_begin_catch_clause, build_next_objc_exception_stuff, get_arg_type_list, build_objc_method_call): Update references to id_type. (synth_module_prologue, build_objc_symtab_template, build_selector_reference_decl, build_selector, build_selector_translation_table, build_typed_selector_reference, get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, synth_self_and_ucmd_args): Update references to selector_type. (build_private_template, build_ivar_reference): Update references to instance_type. (synth_module_prologue, build_protocol_reference, build_protocol_expr, start_protocol): Update references to protocol_type. (synth_module_prologue, get_arg_type_list, build_objc_method_call): Update references to super_type. * c-parse.in: (typespec_nonreserved_nonattr): Update references to get_object_reference. * objc/objc-tree.def: Add C mode identifier sequence. From-SVN: r83425
2004-06-21Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83422.2
2004-06-20loop-invariant.c: New file.Zdenek Dvorak11-4/+1101
* loop-invariant.c: New file. * Makefile.in (loop-invariant.o): New. * cfgloop.h (global_cost_for_size, init_set_costs, move_loop_invariants): Declare. * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New functions. (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New variables. * common.opt (floop-optimize2, fmove-loop-invariants): New options. * loop-init.c (loop_optimizer_init): Call init_set_costs. * passes.c (rest_of_handle_loop2): Call move_loop_invariants. (rest_of_compilation): Check flag_loop_optimize2. * toplev.c (process_options): Handle flag_loop_optimize2. * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. * doc/passes.texi (loop-invariant.c): Document. From-SVN: r83419
2004-06-20* tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.Zdenek Dvorak2-1/+10
From-SVN: r83418
2004-06-20arith.c (gfc_range_check): correct complex underflow.Steven G. Kargl2-2/+6
2004-06-20 Steven G. Kargl <kargls@comcast.net> * arith.c (gfc_range_check): correct complex underflow. From-SVN: r83417
2004-06-20stmt.c (warn_if_unused_value): Add locus argument.Richard Henderson5-18/+32
* stmt.c (warn_if_unused_value): Add locus argument. * tree.h (warn_if_unused_value): Update decl. * c-typeck.c (internal_build_compound_expr): Update call. * c-gimplify.c (gimplify_expr_stmt): Likewise. From-SVN: r83416
2004-06-20re PR middle-end/16089 (unwind-dw2.c:1311: error: insn outside basic block)Andrew Pinski5-8/+17
2004-06-20 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/16089 * builtins.c (entry_of_function): Move to ... * cfgrtl.c (entry_of_function): Here and make non-static. * integrate.c (emit_initial_value_sets): Use entry_of_function. * rtl.h (entry_of_function): Prototype. From-SVN: r83415
2004-06-20i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.Roger Sayle2-4/+8
* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when TARGET_DECOMPOSE_LEA. From-SVN: r83413
2004-06-20struct-complex-1_x.c: Add dummy symbol.Eric Botcazou5-0/+19
* gcc.dg/compat/struct-complex-1_x.c: Add dummy symbol. * gcc.dg/compat/struct-complex-1_y.c: Likewise. * gcc.dg/compat/union-m128-1_x.c: Likewise. * gcc.dg/compat/union-m128-1_y.c: Likewise. From-SVN: r83411
2004-06-20decl.c (elaborate_expression, [...]): Arguments now bool instead of int.Richard Kenner5-183/+170
* decl.c (elaborate_expression, elaborate_expression_1): Arguments now bool instead of int. (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF. * trans.c (gnu_switch_label_stack): New function. (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the elaboration of renamed entity returns. (gnat_to_gnu, case N_Case_Statement): Add branches to end label. (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE. (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt. (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and DECL_SIZE_UNIT and simplify variable-sized case. (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted. Callers changes to call gimplify_type_sizes and gimplify_one_sizepos. (gnat_stabilize_reference): Add arg to COMPONENT_REF. (build_unit_elab): Disable for now. * utils.c (mark_visited): New function. (pushdecl): Walk tree to call it for global decl. (update_pointer_to): Update all variants of pointer and ref types. Add arg to COMPONENT_REF. (convert): Likewise. Move check for converting between variants lower down. * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF. (build_allocator): Don't force type of MODIFY_EXPR. (gnat_mark_addressable, case VAR_DECL): Unconditionally call put_var_into_stack. From-SVN: r83410
2004-06-20c-common.h (add_decl_stmt): Move to cp-tree.h.Richard Henderson10-37/+69
* c-common.h (add_decl_stmt): Move to cp-tree.h. * c-decl.c (finish_decl): Don't use add_decl_stmt. * c-parse.in: Likewise. * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. cp/ * cp-tree.h (add_decl_stmt): Declare. * pt.c (tsubst_copy): Abort for CLEANUP_POINT_EXPR. * semantics.c (maybe_cleanup_point_expr): New. (add_decl_stmt, finish_expr_stmt, finish_return_stmt, finish_for_expr, finish_switch_cond): Use it. (finalize_nrv_r): Don't build an EXPR_STMT. Don't frob TREE_CHAIN. From-SVN: r83409
2004-06-20c-common.def (IF_STMT, [...]): Move to cp-tree.def.Richard Henderson17-192/+218
* c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def. * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. * c-pretty-print.c (pp_c_statement): Similarly. * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, gimplify_if_stmt): Move to cp-gimplify.c. (c_genericize, c_gimplify_expr): Don't call them. * c-semantics.c (push_cleanup): Move to cp/semantics.c. * c-typeck.c (push_cleanup): New. (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, c_finish_if_stmt): Use COND_EXPR. * tree.h (CLEANUP_EH_ONLY): Update documentation. cp/ * cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def. * cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c. (cp_gimplify_expr): Call it. (gimplify_cleanup_stmt): Move from c-gimplify.c. (cp_genericize): New. * decl.c (finish_function): Call it. * cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT. (CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h. (IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise. (cp_genericize): Declare. * cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT. * dump.c (cp_dump_tree): Likewise. * semantics.c (push_cleanup): Move from c-semantics.c. From-SVN: r83407
2004-06-20c-common.h (has_c_linkage): New interface.Zack Weinberg27-163/+351
* c-common.h (has_c_linkage): New interface. * c-cppbuiltin.c: Include target.h. (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and __PRAGMA_EXTERN_PREFIX when appropriate. * c-pragma.c: Include target.h. Document clarified semantics of symbol-renaming #pragmas. (handle_pragma_redefine_extname, handle_pragma_extern_prefix) (maybe_apply_renaming_pragma): Rewrite according to clarified semantics. Always recognize, but do not necessarily execute. (init_pragma): Unconditionally register symbol-renaming pragmas. * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME and HANDLE_PRAGMA_EXTERN_PREFIX. * target.h (struct gcc_target): Add handle_pragma_redefine_extname and handle_pragma_extern_prefix flags. * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, not HANDLE_PRAGMA_REDEFINE_EXTNAME. (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, not HANDLE_PRAGMA_EXTERN_PREFIX. (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine into one section "Symbol-Renaming Pragmas"; clarify; document adjusted semantics. * builtins.c (expand_builtin): Do not issue error for a builtin with no special case code and no DECL_ASSEMBLER_NAME; just do the library call. * c-decl.c (builtin_function): Don't call make_decl_rtl. * c-objc-common.c (has_c_linkage): Stub implementation. * cgraphunit.c (cgraph_expand_function) (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. cp: * cp-lang.c (has_c_linkage): Implement. * cp-tree.h (set_mangled_name_for_decl): Don't prototype. * decl.c (duplicate_decls): Use COPY_DECL_RTL. (builtin_function_1): Don't call make_decl_rtl. (build_cp_library_fn): Don't call set_mangled_name_for_decl. (grokvardecl): Don't call mangle_decl. * except.c (nothrow_libfn_p): Look at DECL_NAME, not DECL_ASSEMBLER_NAME. * method.c (set_mangled_name_for_decl): Delete. * name-lookup.c (pushdecl): When a local extern shadows a file-scope declaration of the same object, give both DECLs the same DECL_UID. * typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE on DECL_ASSEMBLER_NAME. testsuite: * g++.dg/expr/enum1.C, g++.dg/opt/const3.C: Declare abort with extern "C". * g++.dg/other/pragma-re-1.C: Add comments. From-SVN: r83405
2004-06-20builtins.c (fold_builtin_unordered_cmp): Take an EXP argument instead of ↵Roger Sayle2-22/+78
both an ARGLIST and a result TYPE. * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument instead of both an ARGLIST and a result TYPE. Handle these C99 comparison functions as "polymorphic" builtins. Also handle lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node. (fold_builtin_1): Update calls to fold_builtin_unordered_cmp. Move handling of BUILT_IN_ISUNORDERED from here to there. From-SVN: r83404
2004-06-20Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83401.2
2004-06-19c-common.c, c-common.h (lang_gimplify_stmt): Remove.Richard Henderson11-346/+225
* c-common.c, c-common.h (lang_gimplify_stmt): Remove. * c-gimplify.c: Remove unnecessary prototypes. (c_gimplify_stmt): Merge into ... (c_gimplify_expr): ... here. Don't play with prep_stmt. * c-semantics.c (prep_stmt): Remove. * gimplify.c (annotate_one_with_locus): Break out from ... (annotate_all_with_locus): ... here. (gimplify_expr): Add locus to expressions even if pre/post queues are not present. cp/ * cp-gimplify.c: Remove unnecessary prototypes. (cp_gimplify_stmt): Merge into ... (cp_gimplify_expr): ... here. Move to end of file. Handle stmts_are_full_exprs_p frobbing. * cp-tree.h (cp_gimplify_stmt): Remove. * pt.c (tsubst_expr): Merge prep_stmt and unify. * tree.c (init_tree): Don't set lang_gimplify_stmt. From-SVN: r83397
2004-06-19re PR target/15941 (new fails gcc.dg/compat/struct-by-value-11 and ↵Richard Henderson2-2/+26
gcc.dg/compat/struct-by-value-1) PR target/15941 * function.c (assign_parms): If not padding upward or intentionally forcing upward padding, take offset_rtx into account when determining the alignment for stack_parm. From-SVN: r83396
2004-06-19re PR target/15550 ([i386] ICE in extract_insn, at recog.c:2083)Richard Henderson2-0/+14
PR target/15550 * ifcvt.c (noce_try_move): Recognize all generated instructions. From-SVN: r83395
2004-06-19function.c (free_after_compilation): Do not free computed_goto_common*.Jan Hubicka5-33/+11
* function.c (free_after_compilation): Do not free computed_goto_common*. * function.h (struct function): Kill computed_goto_common*. * stmt.c (expand_computed_goto): Do not commonize the computed gotos. * tree-cfg.c (disband_implicit_edges): Do not forward across the commonized computed goto. From-SVN: r83393
2004-06-19invoke.texi: Remove obsolete comment regarding PA 2.0 support in binutils.John David Anglin2-4/+5
* doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support in binutils. From-SVN: r83391
2004-06-19re PR libfortran/16080 (segmentation fault when reading empty string)Bud Davis2-0/+20
2004-06-19 Bud Davis <bdavis9659@comcast.net> PR gfortran/16080 * gfortran.fortran-torture/execute/read_null_string.f90: New file. * io/list_read.c(set_value): don't copy if the string is null. From-SVN: r83388
2004-06-19crash3.C: Use __SIZE_TYPE__ instead of setting the type of size_t by hand.Andrew Pinski2-1/+7
2004-06-19 Andrew Pinski <pinskia@physics.uc.edu> * g++.dg/lookup/crash3.C: Use __SIZE_TYPE__ instead of setting the type of size_t by hand. From-SVN: r83387
2004-06-19re PR c++/15721 (template instantation omits static data members)Andrew Pinski2-3/+11
2004-06-19 Andrew Pinski <apinski@apple.com> PR c++/15721 * toplev.c (wrapup_global_declarations): Do not check TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check cgraph_varpool_node's needed field. From-SVN: r83386
2004-06-19CFG transparent RTL expansion:Jan Hubicka12-490/+1066
* Makefile.in (cfgexpand.o): New object file. (builtins.o): Add dependency on basic-block.h * builtins.c: Include basic-block.h (entry_of_function): New function. (expand_builtin_apply_args, expand_builtin_saveargs): Use it. * cfgexpand.c: New file. * expr.c (execute_expand, pass_expand): Kill. * pass.c (rest_of_compilation): Do not build CFG unless called from coverage code. * tree-cfg.c (delete_tree_cfg): Rename to.. (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself. * tree-flow.h (delete_tree_cfg_annotations): Declare. (dleete_tree_cfg): Kill. * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill. (execute_del_cfg): Rename to... (execute_free_datastructures): This one... (pass_del_cfg): Rename to... (pass_free_datastructures): ... this one; Do not kill PROP_cfg. (init_tree_optimization_passes): Make cfg build and profiling to happen unconditionally. * tree-mudflap.c (mf_decl_cache_locals): Skip labels before inserting the cache variables. * tree-mudflap.c: Include headers to make basic_block available. Move functions around such that related functions are near each other. Add prototypes for all static functions. Add comments briefly explaining what IR the mudflap1 and mudflap2 work on and what they do. (mudflap_function_decls): Rename to execute_mudflap_function_decls. (mudflap_function_ops): Rename to execute_mudflap_function_ops. (pass_mudflap_1, pass_mudflap_2): Update. (mf_decl_cache_locals): Make it work on the CFG instead of the saved function tree. (mf_build_check_statement_for): Make it work on the CFG. (mf_xform_derefs_1): Likewise. Cleanup code style. (mf_xform_derefs): Likewise. * tree-cfg.c (label_to_block): Invent the label destination for undefined labels. (cleanup_dead_labels): Update table in the case label_to_block added new label. From-SVN: r83385
2004-06-18re PR c++/16036 (Spurious "may be used uninitialized in this function" warning)Richard Henderson4-45/+41
PR c++/16036 * gimple-low.c (lower_function_body): Generate return statement for fall off the end of the function here ... * tree-cfg.c (make_edges): ... instead of here. * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING. From-SVN: r83382
2004-06-19tree-ssa.c (raise_value): Removed.Zdenek Dvorak2-88/+106
* tree-ssa.c (raise_value): Removed. (get_eq_name, check_phi_redundancy): New functions. (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm. From-SVN: r83380
2004-06-19fold-const.c (fold): Add constant folding for unordered comparison tree nodes.Roger Sayle5-14/+292
* fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add constant folding for unordered comparison tree nodes. If both operands are real constants, call fold_relational_const. If either operand is a NaN, evaluate the other for side-effects and return a constant. Optimize (double)float1 CMP (double)float2 into the equivalent float1 CMP float2. (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Call fold_relational_const for constant operands. (fold_relational_const): Add support for unordered comparison tree nodes. Don't constant fold "ordered" floating point comparisons against NaN if when flag_trapping_math is set. * gcc.dg/unordered-2.c: New test case. * gcc.dg/unordered-3.c: New test case. From-SVN: r83379
2004-06-19Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83376.2
2004-06-18re PR other/16043 ([3.4 only] gcc version not reported with ↵David Billinghurst7-6/+15
"enable-version-specific-runtime-libs" to gcc-testresults) 2004-06-19 David Billinghurst (David.Billinghurst@riotinto.com) PR other/16043 * lib/g++.exp (g++_version): Tweak regexp for version * lib/g77.exp (g77_version): Likewise * lib/gfortran.exp (gfortran_version): Likewise * lib/objc.exp (objc_version): Likewise * lib/treelang.exp (treelang_version): Likewise From-SVN: r83374
2004-06-19struct-align-2_x.c: Include <limits.h>.Jakub Jelinek3-6/+12
* gcc.dg/compat/struct-align-2_x.c: Include <limits.h>. Use INT_MAX instead of __INT_MAX__. * gcc.dg/compat/struct-align-2_y.c: Likewise. From-SVN: r83371
2004-06-19compat-common.h (CINT, CDBL): Define.Jakub Jelinek10-32/+53
* gcc.dg/compat/compat-common.h (CINT, CDBL): Define. * gcc.dg/compat/scalar-return-3_x.c: Use it. * gcc.dg/compat/scalar-return-3_y.c: Use it. * gcc.dg/compat/scalar-return-4_x.c: Use it. * gcc.dg/compat/scalar-return-4_y.c: Use it. * gcc.dg/compat/scalar-by-value-3_x.c: Use it. * gcc.dg/compat/scalar-by-value-3_y.c: Use it. * gcc.dg/compat/scalar-by-value-4_x.c: Use it. * gcc.dg/compat/scalar-by-value-4_y.c: Use it. From-SVN: r83370
2004-06-19fold-const.c (build_range_check): If !in_p and recursive call fails, exit ↵Jakub Jelinek5-7/+504
immediately. * fold-const.c (build_range_check): If !in_p and recursive call fails, exit immediately. If high - low overflows and etype is a signed type, retry with unsigned etype. (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE. * gcc.dg/range-test-1.c: New test. * g++.dg/opt/range-test-1.C: New test. From-SVN: r83369
2004-06-18re PR c++/16034 (dtor called prematurely for while-loop scoped variable)Richard Henderson5-89/+142
PR c++/16034 * c-gimplify.c (gimplify_condition): Remove. (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't call it. cp/ * semantics.c (begin_cond): New. (finish_cond): Rewrite to handle template DECL_STMTs specially. Assume that non-template decls go land before the conditional. (simplify_loop_decl_cond): Likewise. (begin_if_stmt, finish_if_stmt_cond, begin_while_stmt, finish_while_stmt_cond, finish_for_init_stmt, finish_for_cond, begin_switch_stmt, finish_switch_cond): Update to match. From-SVN: r83368
2004-06-18tree-eh.c (decide_copy_try_finally): Fix scaling of copy and switch estimates.Richard Henderson2-2/+7
* tree-eh.c (decide_copy_try_finally): Fix scaling of copy and switch estimates. From-SVN: r83367
2004-06-18darwin.h (HOT_TEXT_SECTION_NAME): Define.Andrew Pinski2-0/+14
2004-06-18 Andrew Pinski <pinskia@physics.uc.edu> * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define. (NORMAL_TEXT_SECTION_NAME): Define. (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. (SECTION_FORMAT_STRING): Define. From-SVN: r83363
2004-06-18* config/xtensa/xtensa.cSteven Bosscher3-7/+37
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. * xtensa.md: Replace the old pipeline description with a DFA model. From-SVN: r83358
2004-06-18s390.md: Remove the generic pipeline description.Steven Bosscher4-156/+40
* config/s390/s390.md: Remove the generic pipeline description. * config/s390/2064.md: Make all insn reservations apply to the z900, g5 and g6. * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. (s390_adjust_cost): Cleanup. Don't check address dependency here. (s390_first_cycle_multipass_dfa_lookahead): Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com> From-SVN: r83350
2004-06-18tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.Daniel Berlin7-131/+72
2004-06-18 Daniel Berlin <dberlin@dberlin.org> Diego Novillo <dnovillo@redhat.com> * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t. (create_stmt_ann): Ditto. (create_tree_ann): New function. (create_cst_ann): Remove. (create_expr_ann): Ditto. * tree-flow-inline.h (cst_ann): Remove. (get_cst_ann): Ditto. (get_expr_ann): Ditto. (expr_ann): Ditto. (get_tree_ann): New function. (tree_ann): Ditto. (ann_type): tree_ann -> tree_ann_t. * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed. (struct cst_ann_d): Removed. (struct expr_ann_d): Ditto. (union tree_ann_d): Removed cst and expr. (tree_ann): Renamed to tree_ann_t. * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t. * tree-ssa-pre.c (get_value_handle): Rewrite for single common annotation. (set_value_handle): Ditto. (phi_translate): Ditto. * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t. Co-Authored-By: Diego Novillo <dnovillo@redhat.com> From-SVN: r83349
2004-06-18t-linux64: New file.Kaz Kojima3-1/+7
* config/sh/t-linux64: New file. * config.gcc: Add it to tmake_file for sh64*-*-linux*. From-SVN: r83343
2004-06-18emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.Paolo Bonzini7-316/+242
2004-06-18 Paolo Bonzini <bonzini@gnu.org> * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl. (unshare_all_rtl_again): Call unshare_all_rtl_1. (unshare_all_rtl): New. * function.c (instantiate_virtual_regs): Remove parameters. * function.h (instantiate_virtual_regs): Add prototype. * rtl.h (unshare_all_rtl): Add prototype. * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove prototype. * passes.c: Remove assertions on the parameters to rest_of_handle_* functions. Remove the parameters to the functions, replacing decl with current_function_decl and insns with get_insns (). From-SVN: r83341
2004-06-18fold-const.c (constant_boolean_node): Handle boolean_type_node directly...Roger Sayle2-0/+7
* fold-const.c (constant_boolean_node): Handle boolean_type_node directly, return either boolean_true_node or boolean_false_node. From-SVN: r83338