* config/s390/s390.c (struct machine_function): New member
last_restore_gpr.
(s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
Do not modify machine->save_return_addr_p or regs_ever_live.
Fill in machine->last_restore_gpr.
(s390_optimize_prolog): Use s390_frame_info to compute registers
to save/restore, remove duplicated code.
(s390_arg_frame_offset): Use s390_frame_info to compute frame
size, remove duplicated code.
(s390_emit_prologue): Adapt s390_frame_info call. Update
machine->save_return_addr_p and regs_ever_live.
(s390_emit_epilogue): Use machine->last_restore_gpr instead of
machine->last_save_gpr.
From-SVN: r83275
* c-parse.in (if_stmt_locus): Remove.
(if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
(select_or_iter_stmt): Move empty if warnings to c-typeck.c.
* c-typeck.c (if_elt): Sort by expected size. Rename locus to
empty_locus. Add stmt_count, saw_else.
(c_begin_if_stmt): Push if_stack here.
(c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
(c_finish_then, c_finish_else): Record empty_locus.
(c_begin_else): Rename from c_expand_start_else. Record stmt_count.
(c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
if or else body.
* c-tree.h: Update prototypes.
testsuite/
* gcc.dg/20001116-1.c: Move expected warning line.
From-SVN: r83274
* config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
(movsi_cf): Make named, don't match TARGET_CFV4.
(pushexthisi_const): Use mov3q if possible.
(extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
to special case mvz.w for ColdFire V4.
(extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
to special case mvz.b for ColdFire V4.
(udivmodhi4, divmodhi4): Use mvz to zero extend arg for
divide.
(iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
* config/m68k/m68k.c(valid_mov3q_const): New function.
(const_method): SWAP is valid for ColdFire.
(MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
* config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
From-SVN: r83266
2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
PR target/15653
* config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
after shifts before asm.
From-SVN: r83243
PR tree-optimization/15993
* tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
destination is unchanged.
[[Split portion of a mixed commit.]]
From-SVN: r83241.2
boehm-gc/ChangeLog:
2005-06-16 Paolo Bonzini <bonzini@gnu.org>
* boehm-gc/configure.ac: New name of configure.in.
Remove useless multilib stuff. Change uses of
INCLUDES and CXXINCLUDES to AM_CPPFLAGS.
* boehm-gc/configure.in: New name of configure.in.
* boehm-gc/Makefile.am: Update for automake 1.8.5.
* boehm-gc/acinclude.m4: Include ../config/acx.m4.
* boehm-gc/aclocal.m4: Regenerate.
* boehm-gc/configure: Regenerate.
contrib/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* gcc_update (boehm-gc/configure): Depend on
boehm-gc/configure.ac instead of boehm-gc/configure.in
gcc/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* doc/install.texi: boehm-gc now uses automake 1.8.5.
From-SVN: r83227
gcc/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* coverage.c: Remove argument to rest_of_compilation.
* expr.c (execute_expand, set_save_expr_context, pass_expand): New.
* passes.c (rest_of_compilation): Remove argument.
(pass_rest_of_compilation): New.
(rest_of_handle_final, rest_of_handle_delay_slots,
rest_of_handle_stack_regs, rest_of_handle_variable_tracking
rest_of_handle_machine_reorg, rest_of_handle_regrename
rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
rest_of_handle_regmove, rest_of_handle_tracer
rest_of_handle_if_conversion, rest_of_handle_if_after_combine
rest_of_handle_web, rest_of_handle_branch_prob
rest_of_handle_value_profile_transformations, rest_of_handle_cfg
rest_of_handle_addressof, rest_of_handle_jump_bypass
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
Check that the two arguments are actually superfluous.
* toplev.h (rest_of_compilation): Adjust prototype.
* tree-optimize.c (register_dump_files): Add properties argument.
Track validity of passes. Only initialize dump files for
tree-based passes. Store the full set of provided passes in
the pass.
(init_tree_optimization_passes): Register pass_expand and
pass_rest_of_compilation.
(execute_one_pass): Do not track the presence of required properties
here. Set in_gimple_form. Do not update current_properties.
(current_properties): Remove.
(set_save_expr_context): Remove.
(tree_rest_of_compilation): Do not set in_gimple_form. Do not
expand to RTL here, and do not call rest_of_compilation. Push
GGC context even before gimplification.
* tree-pass.h (PROP_rtl, PROP_trees): New flags.
(pass_expand, pass_rest_of_compilation): Declare.
gcc/java/ChangeLog:
2004-06-16 Paolo Bonzini <bonzini@gnu.org>
* java/class.c (emit_register_classes): Remove argument to
rest_of_compilation.
* java/resource.c (write_resource_constructor): Likewise.
From-SVN: r83225
* fold-const.c (swap_tree_comparison): No longer static.
(tree_swap_operands_p): Similarly. Return true if both operands
are SSA_NAMEs and the first operand has a higher version number than
the second operand.
* tree.h (swap_tree_comparison): Prototype.
(tree_swap_operands_p): Prototype.
* tree-ssa-operands.c (get_expr_operands): For commutative
operators and relational comparisons, canonicalize the
order of the operands.
* gcc.dg/tree-ssa/20040615-1.c: New test.
* gcc.dg/tree-ssa/20030824-1.c: Update expected output to
be less sensitive to operand ordering.
* gcc.dg/tree-ssa/20030824-2.c: Likewise.
From-SVN: r83224
* df.c (df_reg_clobber_gen): Removed.
(df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
Make more effective for hard regs.
* ra-build.c (livethrough_conflicts_bb): Check contains_call.
From-SVN: r83204
fortran/
PR fortran/15962
* match.c (match_case_selector): Call gfc_match_init_expr
instead of gfc_match_expr.
* resolve.c (validate_case_label_expr): No need to check for
constant, since it wouldn't have been matched with the fix to
match.c.
testsuite/
PR fortran/15962
* gfortran.fortran-torture/execute/select_1.f90: New test.
From-SVN: r83202
gcc/ChangeLog:
* c-pragma.h (c_lex_string_translate): Change type to int.
* c-parse.in: Change all assignments of c_lex_string_translate
to true and false to 1 and 0.
* c-lex.c (c_lex_string_translate): Likewise.
(lex_string): Convert string without translation in the -1
case.
gcc/cp/ChangeLog:
* parser.c: Change all assignments of c_lex_string_translate
to true and false to 1 and 0.
(cp_lexer_read_token): Convert type of the translated string.
(cp_parser_skip_to_closing_parentheses): Preserve original
value of c_lex_string_translate, and set it to -1 while
running.
(cp_parser_cache_group): Likewise.
(cp_parser_cache_group_1): Renamed.
(cp_parser_asm_operand_list): Remove redundant setting of
c_lex_string_translate.
(cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]:
Handle chained strings.
From-SVN: r83201
2004-06-12 Andrew Pinski <apinski@apple.com>
PR c++/14639
Revert:
2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
* cp-tree.h: Fix typo.
* cp-tree.h: Include cgraph.h
(DECL_NEEDED_P): Use cgraph_*node on the decl instead of
TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.
From-SVN: r83199
* expmed.c (synth_mult): Mask bits of the multiplier to the
machine mode of the multiplication. Don't consider shifts
by more than (or equal to) the width of the operation's mode.
From-SVN: r83187
2004-06-14 Paolo Bonzini <bonzini@gnu.org>
* gcc_update (libmudflap/configure): Depend on
libmudflap/configure.ac instead of libmudflap/configure.in
From-SVN: r83186