OSDN Git Service

* config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
4
5 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6
7         * builtins.def (execl, execlp, execle, execv, execvp, execve,
8         fork): Change to DEF_EXT_LIB_BUILTIN.
9
10 2004-06-28  Roger Sayle  <roger@eyesopen.com>
11
12         * expmed.c (expand_smod_pow2): New function to expand signed
13         remainder by a constant power of 2, such as "x % 16".
14         (expand_divmod): Call new expand_smod_pow2 when appropriate.
15         Minor corrections to comments, e.g. wrapping long lines.
16
17 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
18
19         * Makefile.in (vec.o): Fix dependencies.
20
21 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
22
23         * Makefile.in: Fix parallel make dependency problem on vec.o.
24
25 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
26
27         PR target/14041
28         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
29
30 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
31
32         * tree.h (tree_check_failed): Make varadic.
33         (tree_not_check_failed): New prototype.
34         (tree_check2_failed, tree_check3_failed,
35         tree_check4_failed, tree_check5_failed): Remove.
36         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
37         TREE_CHECK5): Adjust.
38         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, 
39         TREE_NOT_CHECK5): New.
40         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
41         TREE_RTL_OPERAND_CHECK): Adjust.
42         * tree.c (tree_check_failed): Make varadic.
43         (tree_not_check_failed): New.
44         (tree_check2_failed, tree_check3_failed,
45         tree_check4_failed, tree_check5_failed): Remove.
46
47 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
48
49         * combine.c (can_combine_p): Do not prevent building insns that use
50         and clobber the same fixed hard register.
51         (reg_dead_at_p): Likewise.
52
53 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
54
55         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
56         changed.
57         (is_sra_candidate_complex_ref): New function.
58         (scalarize_modify_expr): Call it and check for LHS also.
59
60         * tree-pretty-print.c (dump_function_declaration): New.
61         (dump_generic_node, case FUNCTION_TYPE): Call it.
62         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
63         (dump_generic_node, case DECL_EXPR): New case.
64         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
65         (print_declaration): Handle type and function declarations.
66         
67         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
68         (convert_nonlocal_reference, convert_local_reference): Properly
69         convert nest of handled component references.
70
71 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
72
73         * vec.h, vec.c: New, type safe vector API.
74         * Makefile.in (OBJS-common): Add vec.o.
75         (vec.o): New target.
76         (gengtype-lex.o): Depend on vec.h.
77
78 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
79
80         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
81         parameter.  Use it instead of ARG00 to produce the result.
82
83 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
84
85         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
86         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
87         index is legitimate, compared with code moved from...
88         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
89         (REG_STRICT): Define, according to REG_OK_STRICT.
90         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
91         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
92         argument.
93         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
94         REGNO_STRICT_OK_FOR_INDEX_P): New.
95         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
96         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
97         RTX_OK_FOR_BASE_P): Use them.
98
99 2004-06-28  Ben Elliston  <bje@au.ibm.com>
100
101         * doc/cfg.texi (Basic Blocks): Define dominators.
102
103 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
104
105         PR c++/16205
106         * c-common.c (warn_for_collisions_1): Warn for only decls which
107         have a name.
108
109         PR c++/15145
110         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
111
112         PR c/14963
113         * c-decl.c (start_decl): Check for null types.
114
115 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
116
117         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
118         Accept TOC addresses.
119
120 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
121
122         * config/s390/s390-protos.h (s390_load_got): Update prototype.
123         * config/s390/s390.c (struct machine_function): Add member base_reg.
124         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
125         (s390_split_branches): Annotate late pool references.
126         (annotate_constant_pool_refs): New function.
127         (find_constant_pool_ref): Work on annotated pool references.
128         (replace_constant_pool_ref): Likewise.  Use explicit base.
129         (replace_ltrel_base): Use explicit base.
130         (s390_mainpool_start): Reflect main_pool pattern change.
131         (s390_mainpool_finish): Use base register from main_pool.
132         Update calls to replace_ltrel_base and replace_constant_pool_ref.
133         (s390_chunkify_start): Use base_reg from struct machine_function.
134         (s390_chunkify_finish): Remove base_reg argument.  Update calls
135         to replace_ltrel_base and replace_constant_pool_ref.
136         (s390_reorg): Don't decide upon base register.  Update calls.
137         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
138         but return sequence instead.
139         (s390_emit_prologue): Decide upon base register to use.  Annotate
140         all literal pool references.  Adapt to main_pool pattern change.
141         Update s390_load_got call; move MAYBE_DEAD handling here.
142         (s390_emit_epilogue): Annotate late literal pool references.
143         Remove barrier before register restore instruction.
144         * config/s390/s390.md (UNSPEC_LTREF): New constant.
145         ("builtin_setjmp_receiver"): Update s390_load_got call.
146         ("main_pool"): Explicitly reference base register.
147
148 2004-06-27  Roger Sayle  <roger@eyesopen.com>
149
150         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
151         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
152         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
153         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
154         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
155         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
156         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
157         is a constant.
158
159 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
160
161         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
162         * c-common.def (DECL_STMT): Remove.
163         * c-common.h (DECL_STMT_DECL): Deleted.
164         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
165         (c_safe_from_p, c_walk_subtrees): Deleted.
166         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
167         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
168         * c-gimplify.c (gimplify_decl_stmt): Deleted.
169         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
170         and gimplify_and_add.
171         (c_gimplify_expr, case DECL_EXPR): New case.
172         (c_gimplify_expr, case DECL_STMT): Deleted.
173         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
174         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
175         * expr.c (safe_from_p, case 's'): New case.
176         * gimplify.c (gimplify_decl_expr): New function.
177         (gimplify_expr, case DECL_EXPR): New case.
178         * tree-inline.c (walk_tree): Walk into all fields of a type and
179         decl only if they are in a DECL_EXPR.
180         (mark_local_for_remap_r): Minor code cleanup.
181         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
182         * tree.c (has_cleanups, case DECL_EXPR): New case.
183         * tree.def (DECL_EXPR): New code.
184         * tree.h (DECL_EXPR_DECL): New macro.
185         
186         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
187
188 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
189
190         PR 13334
191         * doc/install.texi: Document non-standard CFLAGS and bootstrap
192         failures and warnings.
193
194 2004-06-26  Andrew Haley  <aph@redhat.com>
195
196         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
197         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
198         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
199         * tree.h (TREE_THIS_NOTRAP): New.
200
201 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
202
203         * genattrtab.c (write_test_expr): Put a unsigned cast before
204         the first operand for GEU, GTU, LEU and LTU.
205
206 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
207
208         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
209         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
210         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
211         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
212         tree-tailcall.c: Fix comment typos.  Follow spelling
213         conventions.
214
215 2004-06-25  Eric Christopher  <echristo@redhat.com>
216
217         * config/mips/mips.md: Add back scheduling exclusion info.
218
219 2004-06-25  Roger Sayle  <roger@eyesopen.com>
220
221         * ifcvt.c (seq_contains_jump): Delete function.
222         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
223         inline test for a jump instruction in the existing "insn" loop.
224         (block_fallthru): Document function.
225
226 2004-06-25  Philip Blundell  <philb@gnu.org>
227
228         PR wrong-code/15089
229         * loop.c (scan_loop): Do not move user-specified register
230         assignments.
231
232 2004-06-25  DJ Delorie  <dj@redhat.com>
233
234         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
235         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
236         warn_missing_braces, warn_sign_compare, warn_long_long,
237         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
238         warn_conversion, warn_format_y2k, warn_format_extra_args,
239         warn_format_zero_length, warn_format_nonliteral,
240         warn_format_security, mesg_implicit_function_declaration,
241         warn_bad_function_cast, warn_traditional,
242         warn_declaration_after_statement, warn_strict_prototypes,
243         warn_missing_declarations, warn_nested_externs,
244         warn_sequence_point, warn_init_self, warn_div_by_zero,
245         warn_implicit_int, warn_nonnull, warn_old_style_definition,
246         warn_selector, warn_undeclared_selector, warn_protocol,
247         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
248         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
249         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
250         warn_old_style_cast, warn_nontemplate_friend,
251         warn_deprecated): Remove explicit declarations.
252         * c-common.c: Likewise, remove explicit definitions.
253         * c-opts.c: Likewise, remove explicit assignments.
254         * c.opts: Likewise, add implicit declare/define/assign.
255
256 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
257
258         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
259         (build_addr_expr_with_type): Deleted.
260         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
261         (gimplify_compound_lval): Make two passes over reference nest.
262
263         * tree-nested.c (build_addr): Merge real/imagpart with
264         handled_component_p.
265         (convert_nonlocal_reference, convert_local_reference): Process extra
266         args to COMPONENT_REF and ARRAY_REF.
267         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
268         lower bound and field offset being constant.
269
270 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
271
272         PR wrong-code/16129
273         * alias.c (get_alias_set): Adjust setting of
274         DECL_POINTER_ALIAS_SET for pointers to aggregates.
275
276 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
277
278         * tree-inline.c (remap_type): Arrange to have just one pointer type
279         for each type, mode, and 'can alias' value.
280         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
281         (estimate_num_insns_1): Minor code reformatting.
282         (inline_forbidden_p_1): Likewise; add; missing return statement.
283
284 2004-06-25  Roger Sayle  <roger@eyesopen.com>
285
286         PR middle-end/15825
287         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
288         Use get_isns and end_sequence instead of accepting a seq argument.
289         Scan the instruction sequence for unrecognizable or jump insns.
290         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
291         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
292         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
293         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
294
295 2004-06-24  Jeff Law  <law@redhat.com>
296
297         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
298         after gimplifying the innermost component.
299
300 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
301
302         PR target/16176
303         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
304         register for the destination of the lwl or ldl.
305
306 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
307
308         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
309         handled_component_p handling.
310         * tree-gimple.c (get_base_address): Likewise and fix typo that
311         caused both recursion and looping.
312
313         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
314         Properly test for nest of handled_components in LHS context.
315
316 2004-06-25  Devang Patel  <dpatel@apple.com>
317
318         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
319
320 2004-06-25  Paul Brook  <paul@codesourcery.com>
321
322         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
323         TARGET_CXX): Define.
324         (TARGET_INITIALIZER): Use TARGET_CXX.
325         * target.h (struct gcc_target): Add struct cxx.
326         * targhooks.h (default_cxx_guard_type): Add prototype.
327         * targhooks.c (default_cxx_guard_type): New function.
328         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
329         Define.
330         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
331         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
332         TARGET_CXX_GUARD_MASK_BIT.
333
334 2004-06-25  Devang Patel  <dpatel@apple.com>
335
336         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
337         * config/i386/darwin.h (CC1_SPEC): Same.
338
339 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
340
341         * dbxout.h: Add include guards
342
343 2004-06-25  Paul Brook  <paul@codesourcery.com>
344
345         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
346
347 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
348
349         * arm.c (arm_arch4t): New variable.
350         (arm_override_options): Initialize it.  If compiling for armv5 or
351         higher clear TARGET_INTERWORK.
352         (output_call): Abort if called for armv5.  Use BX if it's available.
353         (output_call_mem): Use BLX if available and ensure that all armv5
354         code is interworking safe.
355         (output_return_instruction): Always use BX in preference to MOV if
356         it's available.
357         (arm_output_epilogue): Likewise.
358         (arm_final_prescan_insn): Never conditionally call a subroutine
359         on armv5.
360         * arm.h (arm_arch4t): Declare.
361         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
362         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
363         call_value_reg respectively.
364         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
365         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
366         and call_value_indirect respectively.
367
368 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
369
370         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
371         in terms of const_float_1_operand.
372
373 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
374
375         PR target/16144
376         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
377         is 1.0; force it into a register instead.
378
379 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
380
381         * config/m68k/m68k.h: Restore valid comment removed by mistake with
382         the recent m68k comments cleanup.
383
384 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
385
386         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
387         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
388         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
389         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
390
391         PR/16131
392         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
393
394         * gimplify.c: Remove unneeded forward declarations.
395
396         * gimplify.c (append_to_compound_expr): Deleted.
397         * tree-gimple.h (append_to_compound_expr): Deleted.
398
399         * fold-const.c (fold_addr_expr_with_type): Look through all
400         valid LHS modifiers to find a base to mark addressable.
401
402         * tree.h (debug_find_tree): Add declaration.
403         * tree-inline.c (debug_find_tree): Remove extern declaration.
404
405 2004-06-24  Eric Christopher  <echristo@redhat.com>
406
407         * config/rs6000/rs6000.md: Apply change mistakenly
408         deleted with 2004-06-22 patch.
409
410 2004-06-24  Richard Henderson  <rth@redhat.com>
411
412         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
413         (c_break_label, c_cont_label): New.
414         (start_function): Update initializations.
415         (c_push_function_context): Update saves.
416         (c_pop_function_context): Update restores.
417         * c-parse.in: Update expected conflicts.
418         (stmt_count, compstmt_count): Remove.  Remove all updates.
419         (if_prefix, simple_if, do_stmt_start): Remove.
420         (lineno_labeled_stmt): Remove.
421         (lineno_labels): New.
422         (c99_block_lineno_labeled_stmt): Use it.
423         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
424         annotate_with_locus.
425         (select_or_iter_stmt): Replace by ...
426         (condition, if_statement_1, if_statement_2, if_statement,
427         start_break, start_continue, while_statement, do_statement,
428         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
429         (stmt): Split out ...
430         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
431         c_finish_goto_ptr.
432         * c-semantics.c (add_stmt): Don't add line numbers to labels.
433         * c-tree.h: Update prototypes.
434         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
435         add x_break_label, x_cont_label, x_switch_stack.
436         (c_switch_stack): Declare.
437         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
438         (c_finish_return): Return the statement.
439         (c_switch_stack): Rename from switch_stack; export.
440         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
441         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
442         c_finish_else): Remove.
443         (c_finish_if_stmt): Rewrite to perform the entire operation.
444         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
445         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
446         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
447         (c_finish_loop): New.
448         (c_finish_bc_stmt): New.
449         (c_finish_expr_stmt): Return the statement.  Split out...
450         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
451         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
452         * tree-gimple.c (is_gimple_stmt): Likewise.
453         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
454         (print_struct_decl): Delete empty compound statement.
455         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
456         * objc/objc-act.h: Update decl.
457
458 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
459
460         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
461         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
462
463 2004-06-24  Andrew Pinski  <apinski@apple.com>
464
465         * objc-act.c (build_objc_method_call): Save the lookup_object
466         so we do not call it twice.
467
468 2004-06-24  Richard Henderson  <rth@redhat.com>
469
470         * tree-ssa-dom.c (real_avail_expr_hash): New.
471         (tree_ssa_dominator_optimize): Use it in the htab.
472
473 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
474
475         * tree-mudflap.c (mx_register_decls): Add third (type) argument
476         to synthesized __mf_unregister call.
477
478 2004-06-24  Roger Sayle  <roger@eyesopen.com>
479
480         PR middle-end/15239
481         * expmed.c (expand_mult): Remove artificial restriction on the
482         maximum cost of a synthetic multiplication sequence.
483
484 2004-06-24  Eric Christopher  <echristo@redhat.com>
485
486         * combine.c (distribute_notes): Don't delete sets to
487         global register variables.
488
489 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
490
491         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
492         (ffs_rex64): New splitter.
493         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
494
495 2004-06-24  Andrew Pinski  <apinski@apple.com>
496
497         * config/darwin7.h (MATH_LIBRARY): Remove.
498         (LIB_SPEC): Define.
499         * config/darwin.h (MATH_LIBRARY): Define always to empty.
500         (LIB_SPEC): Only define if not already defined.
501
502 2004-06-24  Revital Eres  <eres@il.ibm.com>
503
504         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
505         shifts of induction variable.
506         (iv_shift): New function.
507
508 2004-06-24  Richard Henderson  <rth@redhat.com>
509
510         * gimplify.c (gimplify_body): Watch for body vanishing.
511
512 2004-06-24  Jeff Law  <law@redhat.com>
513
514         * tree-ssa-dom.c (record_dominating_conditions): New function.
515         (dom_opt_finalize_block, get_eq_expr_value): Use it.
516
517 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
518
519         * calls.c (shift_returned_value): Fix handling of non-integer
520         TYPE_MODEs.
521
522 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
523
524         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
525         * system.h (DEFAULT_MAIN_RETURN): Poison.
526         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
527
528 2004-06-24  Ben Elliston  <bje@au.ibm.com>
529
530         * doc/cfg.texi (Edges): Fix typo.
531
532 2004-06-24  Paul Brook  <paul@codesourcery.com>
533
534         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
535
536 2004-06-23  Andrew Pinski  <apinski@apple.com>
537
538         PR middle-end/15988
539         * fold-const.c (fold_convert): Types which are compatible
540         can be converted with only a NOP_EXPR.
541
542 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
543
544         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
545         pass raw n_named_args to it.
546         * targhooks.c: Formatting.
547         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
548
549 2004-06-23  Richard Henderson  <rth@redhat.com>
550
551         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
552         non-constant size check.  Gimplify the type too.  Tidy building
553         BUILT_IN_STACK_ALLOC call.
554
555 2004-06-23  Roger Sayle  <roger@eyesopen.com>
556
557         * c-common.c (expand_unordered_cmp): Delete.
558         (expand_tree_builtin): Delete.
559         * c-common.h (expand_tree_builtin): Delete function prototype.
560         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
561
562 2004-06-23  Richard Henderson  <rth@redhat.com>
563
564         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
565         COMPONENT_REF variable fields unless they're non-constant.
566
567 2004-06-23  Robert Millan  <robertmh@gnu.org>
568
569         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
570         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
571           DYNAMIC_LINKER and register names in sc_ structure.
572         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
573         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
574         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
575         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
576
577         * config/kfreebsdgnu.h: Remove.
578         * config/t-kfreebsd-gnu: Likewise.
579         * config/i386/kfreebsdgnu.h: Likewise.
580
581 2004-06-23  Eric Christopher  <echristo@redhat.com>
582
583         * fold-const.c (make_range): Cleanup type checking through function.
584         Remove orig_type. Replace with checks to exp_type and arg0_type.
585         Clarify comment when converting from unsigned to signed.
586
587 2004-06-23  Eric Christopher  <echristo@redhat.com>
588
589         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
590         * config/mips/mips.md: Remove R3000 scheduling description.
591         * config/mips/3000.md: New file.
592
593 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
594
595         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
596         (s390_emit_jump): Likewise.
597         * config/s390/s390.c (s390_emit_compare): New function.
598         (s390_emit_jump): Likewise.
599         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
600         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
601         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
602         and s390_emit_jump.
603         ("cjump"): Remove, replace by ...
604         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
605         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
606         ("trap"): Fix type attribute.
607         ("conditional_trap"): Use s390_emit_compare.
608         ("doloop_si"): Remove, replace by ...
609         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
610         Merge existing splitter into insn_and_split.  Improve length default.
611         ("doloop_di"): Merge with existing splitter into insn_and_split.
612         ("doloop"): Adapt.
613         ("jump"): Convert to expander.  Use s390_emit_jump.
614         ("*jump_64", "*jump_31"): New insns.  Improve length default.
615
616 2004-06-23  Wu Yongwei  <adah@sh163.net>
617
618         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
619         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
620         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
621         suitable function for interlocked compare-and-exchange.
622         (__gthread_mutex_trylock): Use
623         __GTHR_W32_InterlockedCompareExchange.
624         (__gthread_mutex_init_function, __gthread_mutex_lock,
625         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
626         initial counter value to work correctly under Windows 95.
627         * config/i386/gthr-win32.c: Adjust include order.
628         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
629         gthr-win32.h.
630         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
631         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
632         to match inline versions in gthr-win32.h.
633
634 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
635
636         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
637         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
638         (insvdi_rshift_rlwimi_p): New function.
639         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
640         (extendsfdf2): Convert to define_insn_and_split.
641         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
642
643 2004-06-23  Andrew Pinski  <apinski@apple.com>
644
645         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
646         type qualifiers at all.
647         If both of the type domains are null and the new element type is
648         the same as one of the, return the one which the element type.
649         matches.
650         Do not call qualify_type on the new type.
651
652 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
653
654         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
655
656 2004-06-23  Roger Sayle  <roger@eyesopen.com>
657
658         * convert.c (strip_float_extension): Skip both NOP_EXPR and
659         CONVERT_EXPR floating point extensions.
660
661 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
662
663         * Makefile.in (tree-vn.o): New.
664         (tree-ssa-pre.o): Don't depend on RTL_H.
665         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
666         * tree-flow.h (struct var_ann_d): Remove field expr_set.
667         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
668         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
669         * tree-optimize.c (execute_init_datastructures): New local function.
670         (pass_init_datastructures): New local variable.
671         (init_tree_optimization_passes): Sequence pass_init_datastructures.
672         * tree-pretty-print.c (MASK_POINTER): Remove.
673         (dump_generic_node): Handle VALUE_HANDLE.
674         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
675         Update callers to use new function names.
676         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
677         variable annotations.
678         * tree-ssa.c (init_tree_ssa): Call vn_init.
679         (delete_tree_ssa): Call vn_delete.
680         * tree-vn.c: New file.
681         * tree.c (tree_size): Handle VALUE_HANDLE.
682         (tree_node_structure): Likewise.
683         (iterative_hash_expr): Likewise.
684         * tree.def (VALUE_HANDLE): New code.
685         * tree.h (struct tree_value_handle): New.
686         (VALUE_HANDLE_ID): Define.
687         (VALUE_HANDLE_EXPR_SET): Define.
688         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
689         (union tree_node): Add struct tree_value_handle.
690
691 2004-06-23  Andrew Pinski  <apinski@apple.com>
692
693         * c-typeck.c (composite_type):
694         <case POINTER_TYPE>: Build a qualified type of
695         the new type.
696         <case ARRAY_TYPE>: Likewise.
697         <case FUNCTION_TYPE>: Likewise.
698
699 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
700
701         PR optimization/15633
702         * value-prof.c (divmod_fixed_value_transform): Compute probability
703         of taking optimal path and pass along to gen_ routine.
704         (mod_pow2_value_transform): Same.
705         (mod_subtract_transform): Same.
706         (gen_divmod_fixed_value): Add new probability parameter.
707         Add probability to newly created jump.
708         (gen_mod_pow2): Same.
709         (gen_mod_subtract): Same.
710
711 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
712
713         * PR target/15948
714         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
715         one and two.
716
717 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
718
719         PR target/15927
720         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
721         reload if CLASS is BASE_REGS.
722
723 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
724
725         * gengtype-yacc.y (option): Avoid use of non-constant struct
726         initializer.
727
728 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
729
730         * doc/extend.texi (Function Attributes): Alphabetize.
731
732 2004-06-23  Richard Henderson  <rth@redhat.com>
733
734         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
735         Use gimplify_and_add.
736         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
737         * gimplify.c (build_and_jump, gimplify_exit_expr,
738         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
739         gimplify_stmt, gimplify_expr): Likewise.
740         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
741         (gimplify_statement_list): Remove NULL entries.
742         (gimplify_to_stmt_list): Handle NULL results.
743         (gimplify_type_sizes): Add list_p argument.
744         (gimplify_one_sizepos): Don't use internal pre/post queue.
745         * tree-gimple.h (gimplify_type_sizes): Update.
746
747 2004-06-22  Eric Christopher  <echristo@redhat.com>
748
749         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
750
751 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
752
753         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
754         when redirecting back edges.
755
756         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
757         count/probability are set correctly.
758
759 2004-06-22  Richard Henderson  <rth@redhat.com>
760
761         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
762         (c_finish_stmt_expr): Likewise.
763
764         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
765         (ix86_return_in_memory): Move SSE vector return warning ...
766         (ix86_struct_value_rtx): ... here.  New.
767
768 2004-06-22  Richard Henderson  <rth@redhat.com>
769
770         * tree.def (VTABLE_REF): Remove.
771         (OBJ_TYPE_REF): New.
772         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
773         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
774         * fold-const.c (non_lvalue): Likewise.
775         * gimplify.c (gimplify_expr): Likewise.
776         (gimplify_call_expr): Use is_gimple_call_addr.
777         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
778         * langhooks.h (fold_obj_type_ref): New.
779         * tree-gimple.c (is_gimple_call_addr): New.
780         * tree-gimple.h (is_gimple_call_addr): Declare.
781         * tree-inline.c (inlinable_function_p): Fix merge error.
782         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
783         * tree-pretty-print.c (dump_generic_node): Likewise.
784         (print_call_name): Handle OBJ_TYPE_REF.
785         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
786         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
787         * tree.h (OBJ_TYPE_REF_EXPR): New.
788         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
789         * doc/c-tree.texi (VTABLE_REF): Remove.
790         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
791
792 2004-06-22  Richard Henderson  <rth@redhat.com>
793
794         PR middle-end/16026
795         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
796
797 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
798
799         * Makefile.in (distclean): Don't try to remove empty directories.
800
801 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
802
803         PR target/15869
804         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
805
806 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
807
808         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
809         operands.
810
811 2004-06-22  Dale Johannesen  <dalej@apple.com>
812
813         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
814         global, rename rs6000_legitimate_offset_address_p.
815         (rs6000_legitimate_address_p): Adjust calls to it.
816         (lmw_operation): Ditto.
817         (stmw_operation): Ditto.
818         * config/rs6000/rs6000-protos.h: Declare it.
819         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
820         instead of offsettable_memref_p.
821
822 2004-06-22  Dale Johannesen  <dalej@apple.com>
823
824         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
825         [reg+reg] mode for TFmode memory accesses.
826         (rs6000_eliminate_indexed_memrefs): New.
827         (rs6000_emit_move): Call preceding for TImode and TFmode.
828
829 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
830
831         * tree-cfg.c (pass_warn_function_return): It needs
832         CFG, not SSA.
833
834 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
835
836         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
837         (Submodel Options): Likewise.
838
839 2004-06-21  Andrew Pinski  <apinski@apple.com>
840
841         Radar #: 3701874
842         * c-decl.c (push_file_scope): Return early if we already
843         have a file scope.
844
845 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
846
847         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
848         * c-common.h (flag_pch_preprocess): Declare.
849         (c_common_pch_pragma): Likewise.
850         * c-common.c (flag_pch_preprocess): New.
851         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
852         (c_common_pch_pragma): New.
853         * c-ppoutput.c (cb_read_pch): New.
854         (init_pp_output): Support -fpch-preprocess.
855         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
856         * c.opt (fpch-preprocess): New.
857         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
858         * doc/cppopts.texi: Document -fpch-preprocess.
859         * doc/invoke.texi (Precompiled Headers): Mention that
860         -fpreprocessed is safe for PCH.  Mention that if an option is
861         listed as safe that doesn't mean it does what you expect.
862
863 2004-06-22  Ben Elliston  <bje@au.ibm.com>
864
865         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
866
867 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
868
869         * Makefile.in (gimplify.o): Add cgraph.h.
870         * alias.c (adjust_offset_for_component_ref): Use
871         component_ref_field_offset.
872         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
873         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
874         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
875         For decl, call gimplify_one_sizepos and use statement list.
876         (gimplify_compound_literal_expr): New arg PRE_P.
877         Add statement to PRE_P list and return DECL.
878         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
879         gimplify_compound_literal_expr.
880         * c-tree.h (getdecls): Deleted.
881         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
882         (build_array_ref): Add two operands for ARRAY_REF.
883         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
884         COMPOUND_LITERAL_EXPR.
885         * coverage.c (tree_coverage_counter_ref): Add new operands
886         for ARRAY_REF.
887         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
888         for COMPONENT_REF.
889         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
890         and array_ref_element_size.
891         (widen_memory_access):Use component_ref_field_offset.
892         * explow.c (update_nonlocal_goto_save_area): Add two operands
893         for ARRAY_REF.
894         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
895         (component_ref_field_offset): Likewise.
896         (get_inner_reference): Use them.
897         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
898         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
899         (fold_read_from_constant_string): Use array_ref_low_bound.
900         Verify that result is a character type.
901         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
902         * function.c (expand_function_start): Likewise.
903         * gimple-low.c (expand_var_p): Delete duplicated line.
904         * gimplify.c: Add static decls for local functions.
905         (cgraph.h): Now included.
906         (create_tmp_var): Remove check for ARRAY_TYPE.
907         (copy_if_shared_r): Look at bounds and sizes of types.
908         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
909         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
910         (gimplify_save_expr, gimple_push_cleanup): Likewise.
911         (gimplify_init_constructor): Likewise.
912         WANT_VALUE now bool.
913         If empty list with no result wanted, return GS_UNHANDLED.
914         Add additional operands for ARRAY_REF and COMPONENT_REF.
915         (canonicalize_component_ref): Convert to &array[L].
916         (gimplify_array_ref_to_plus): Use array_ref_element_size and
917         array_ref_lower_bound.
918         (build_addr_expr_with_type, build_addr_expr): New functions.
919         (gimplify_compound_lval): WANT_LVALUE now bool.
920         Major rework to allow handle_component_p and initialize and
921         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
922         COMPONENT_REF.
923         (gimplify_array_ref): Deleted.
924         (gimplify_self_mod_expr): WANT_VALUE now bool.
925         (gimplify_modify_expr): Gimplify to_p and from_p later.
926         Factor out code into gimplify_modify_expr_rhs and call twice.
927         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
928         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
929         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
930         (gimplify_expr, case ARRAY_REF): Delete special case.
931         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
932         IMAGPART, and REALPART the same way.
933         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
934         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
935         Call alloc_stmt_list instead of build_empty_stmt.
936         Deal with _REF that's volatile.
937         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
938         (unshare_body, unvisit_body): New functions.
939         (gimplify_body): Call them.
940         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
941         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
942         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
943         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
944         like ARRAY_REF.
945         (verify_expr, case ADDR_EXPR): Use handled_component_p.
946         * tree-dfa.c (get_virtual_var): Likewise.
947         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
948         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
949         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
950         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
951         and INDIRECT_REF.
952         (get_base_address): Use handled_component_p.
953         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
954         * tree-inline.c (walk_tree): Walk more things for types and decls.
955         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
956         for ARRAY_REF and COMPONENT_REF.
957         (mx_xform_derefs_1): Clean up usage of decl sizes.
958         * tree-nested.c (build_addr): Use handled_component_p.
959         (walk_stmts, case CATCH_EXPR): Add missing "break".
960         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
961         (finalize_nesting_tree_1): Likewise.
962         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
963         and process additional operands.
964         (convert_local_reference): Likewise.
965         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
966         ARRAY_RANGE_REF similarly to ARRAY_REF.
967         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
968         like RECORD_TYPE.
969         (dump_generic_node, case COMPONENT_REF): Print offset operand.
970         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
971         and print lower bound and element size for both.
972         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
973         * tree-sra.c (csc_build_component_ref): Add new operand.
974         (scalarize_call_expr): Use get_base_address.
975         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
976         (maybe_fold_offset_to_array_ref): Rework to handle input having an
977         ARRAY_REF, refine handling of lower bound, and add new operands
978         for ARRAY_REF.
979         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
980         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
981         (maybe_fold_stmt_addition): Only handle constant lower bound.
982         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
983         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
984         Look at new offset operand of COMPONENT_REF.
985         * tree-ssa.c (set_is_used): Use handled_component_p.
986         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
987         (stabilize_reference, case COMPONENT_REF): Likewise.
988         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
989         (recompute_tree_invariant_for_addr_expr): Completely rework to
990         be more precise.  Also set TREE_SIDE_EFFECTS.
991         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
992         (build2_stat, build3_stat, build4_stat): For references,
993         propagate TREE_THIS_VOLATILE.
994         (get_unwidened): Add new operand for COMPONENT_REF.
995         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
996         * tree.def (COMPONENT_REF): Add new operand.
997         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
998         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
999         (component_ref_field_offset): Likewise.
1000         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1001         (alpha_gimplify_va_arg): Likewise.
1002         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1003         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1004         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1005         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1006         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1007         Likewise.
1008         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1009         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1010         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1011         Likewise.
1012         (xstormy16_expand_builtin_va_arg): Likewise.
1013         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1014         * objc/objc-act.c (generate_static_references): Likewise.
1015         (generate_strings, build_method_prototype_list_template): Likewise.
1016         (generate_protocol_list): Likewise.
1017
1018 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1019
1020         PR rtl-optimization/14782
1021         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1022         the address checks for secondary reloads for loads from and stores
1023         to floating-point registers.
1024         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1025         in the address check.  Move work around for ELF32 targets to
1026         GO_IF_LEGITIMATE_ADDRESS.
1027         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1028         correctly aligned for DImode loads and stores.  Don't allow long
1029         SFmode displacements on ELF32.
1030
1031 2004-06-21  Richard Henderson  <rth@redhat.com>
1032
1033         PR rtl-opt/16114
1034         * cse.c (merge_equiv_classes): Also rehash in response to
1035         delete_reg_equiv changes.
1036         (rehash_using_reg): Don't exclude REGs from rehashing.
1037
1038 2004-06-21  Richard Henderson  <rth@redhat.com>
1039
1040         * c-common.def (RETURN_STMT): Remove.
1041         * c-common.h (RETURN_STMT_EXPR): Remove.
1042         (c_expand_return, build_return_stmt): Remove.
1043         (c_common_stmt_codes): Remove RETURN_STMT.
1044         * c-dump.c (dump_next_stmt): Remove.
1045         (c_dump_tree): Remove RETURN_STMT.
1046         * c-decl.c (finish_function): Use c_finish_return.
1047         * c-parse.in (stmt): Likewise.
1048         * c-gimplify.c (gimplify_return_stmt): Remove.
1049         (c_gimplify_expr): Remove RETURN_STMT.
1050         * c-pretty-print.c (pp_c_statement): Likewise.
1051         * c-semantics.c (build_return_stmt): Remove.
1052         * c-tree.h (c_finish_return): Declare.
1053         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1054         Return void.  Build RETURN_EXPR directly.
1055         * tree-dump.h (dump_next_stmt): Remove.
1056
1057 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1058
1059         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1060         look at TREE_ADDRESSABLE of symbol name.
1061
1062 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1063
1064         PR target/15551
1065         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1066         (allocate_stack_worker): Make unspec_volatile.
1067         (allocate_stack_worker_rex64):  Likewise.
1068         (allocate_stack_worker_postreload):  Likewise.
1069         (allocate_stack_worker_rex64_postreload):  Likewise.
1070
1071 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1072
1073         Fix PR optimization/15982
1074         * tree-ssa-pre.c: Update a few comments and todos to
1075         reflect constants change.
1076         (get_value_handle): Constants now value number to themselves.
1077         (lookup): Constants lookup to themselves.
1078         (add_to_value): Adjust to always be on.
1079         (set_contains_value): Adjust for constants change.
1080         (find_leader): Ditto.
1081         (phi_translate): 'r' nodes are never ANTIC right now.
1082         (valid_in_set): Ditto.
1083         (get_expr_set): New function.
1084         (find_or_generate_expression): New function, broken out from
1085         insert_aux.
1086         (create_expression_by_pieces): Ditto, plus additional
1087         machinery to handle complex values.
1088         (compute_avail): Remove dead RETURN_EXPR handling.
1089
1090 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1091
1092         * config/i386/i386.c: Include insn-codes.h
1093         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1094         define here.
1095         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1096         DIRFLAG_REG): New define_constants.  Use them everywhere.
1097
1098 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1099
1100         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1101
1102 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1103
1104         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
1105         (SUPPORT_SH4_SINGLE): Likewise.
1106         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1107         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1108         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1109         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1110         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1111         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1112         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1113         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1114         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1115         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1116         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1117         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1118         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1119         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1120         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1121         (TARGET_DEFAULT): Likewise.
1122         * config/sh/t-elf: Amend comment.
1123         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1124         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1125         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1126         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1127         * config/sh/t-mlib-sh4-single: Likewise.
1128         * config/sh/t-mlib-sh4-single-only: Likewise.
1129         * config/sh/t-mlib-sh5-32media: Likewise.
1130         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1131         * config/sh/t-mlib-sh5-64media: Likewise.
1132         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1133         * config/sh/t-mlib-sh5-compact: Likewise.
1134         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1135         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1136         (MULTILIB_CPUS): Define.
1137         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1138         (MULTILIB_MATCHES): Use some shell code to calculate it.
1139         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1140         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1141         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1142         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1143         (NO_PROFILE_COUNTERS): Define to 1.
1144         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1145         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1146         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1147         (MULTILIB_MATCHES): Don't zap.
1148         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1149         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1150         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1151         (MULTILIB_RAW_DIRNAMES): Define.
1152         (MULTILIB_DIRNAMES): Use it.
1153         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1154         (sh*linux configurations): Merge into:
1155         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1156         --with-multilib-list options.  Support sh-superh-elf configuration.
1157         (sh*-netbsd*): Use SELECT_SH* macros.
1158         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1159         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1160         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1161         * config/sh/t-monolib: Likewise.
1162
1163 2004-06-21  Paul Brook  <paul@codesourcery.com>
1164
1165         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1166         not imply FPA.
1167
1168 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1169
1170         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1171         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1172         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1173         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1174         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1175         and TRUTH_XOR_EXPR.
1176
1177 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1178
1179         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1180
1181 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1182
1183         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1184         ip_partial to unsigned int.
1185
1186 2004-06-21  Richard Henderson  <rth@redhat.com>
1187
1188         * c-common.c (verify_sequence_points): Export.
1189         (c_expand_expr_stmt): Move to c-typeck.c.
1190         * c-common.h (c_expand_expr_stmt): Remove.
1191         (verify_sequence_points): Declare.
1192         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1193         * c-parse.in (for_init_stmt, stmt): Likewise.
1194         * c-tree.h (c_finish_expr_stmt): Declare.
1195         (c_tree_expr_nonnegative_p): Remove.
1196         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1197         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1198         (emit_side_effect_warnings): New.
1199         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1200         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1201         Use emit_side_effect_warnings.
1202         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1203         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1204         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1205         with void initializer.
1206         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1207         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1208         INIT_EXPR and MODIFY_EXPR.
1209         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1210         instead of c_expand_expr_stmt.
1211
1212 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1213
1214         * fold-const.c (fold_cond_expr_with_comparison):
1215         New function, extracted from fold.
1216         (fold): Extract code to fold A op B ? A : C, use
1217         it to fold A op B ? C : A.  Really optimize
1218         A & N ? N : 0 where N is a power of two.  Avoid
1219         relying on canonicalization and recursion for
1220         foldings of COND_EXPR to happen.
1221
1222 2004-06-20  David Ayers  <d.ayers@inode.at>
1223
1224         * objc/objc-act.h (get_object_reference): Rename to
1225         get_protocol_reference.
1226         (super_type): Rename to objc_super_type.
1227         (selector_type): Rename to objc_selector_type.
1228         (id_type): Rename to objc_id_type.
1229         (instance_type): Rename to objc_instance_type.
1230         (protocol_type): Rename to objc_protocol_type.
1231         (IS_ID): Update reference to id_type.
1232         * objc/objc-act.c (get_object_reference): Rename to
1233         get_protocol_reference; add documentation; update references to
1234         id_type.
1235         (lookup_method_in_protocol_list): Rename class_meth to
1236         is_class; add documentation.
1237         (finish_message_expr): Rename is_class to class_tree.
1238         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1239         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1240         build_next_objc_exception_stuff, get_arg_type_list,
1241         build_objc_method_call): Update references to id_type.
1242         (synth_module_prologue, build_objc_symtab_template,
1243         build_selector_reference_decl, build_selector,
1244         build_selector_translation_table, build_typed_selector_reference,
1245         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1246         synth_self_and_ucmd_args): Update references to selector_type.
1247         (build_private_template, build_ivar_reference): Update references
1248         to instance_type.
1249         (synth_module_prologue, build_protocol_reference,
1250         build_protocol_expr, start_protocol): Update references to
1251         protocol_type.
1252         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1253         Update references to super_type.
1254         * c-parse.in: (typespec_nonreserved_nonattr): Update
1255         references to get_object_reference.
1256         * objc/objc-tree.def: Add C mode identifier sequence.
1257
1258 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1259
1260         * loop-invariant.c: New file.
1261         * Makefile.in (loop-invariant.o): New.
1262         * cfgloop.h (global_cost_for_size, init_set_costs,
1263         move_loop_invariants): Declare.
1264         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1265         functions.
1266         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1267         variables.
1268         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1269         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1270         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1271         (rest_of_compilation): Check flag_loop_optimize2.
1272         * toplev.c (process_options): Handle flag_loop_optimize2.
1273         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1274         * doc/passes.texi (loop-invariant.c): Document.
1275
1276 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1277
1278         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1279
1280 2004-06-20  Richard Henderson  <rth@redhat.com>
1281
1282         * stmt.c (warn_if_unused_value): Add locus argument.
1283         * tree.h (warn_if_unused_value): Update decl.
1284         * c-typeck.c (internal_build_compound_expr): Update call.
1285         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1286
1287 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1288
1289         PR middle-end/16089
1290         * builtins.c (entry_of_function): Move to ...
1291         * cfgrtl.c (entry_of_function): Here and make non-static.
1292         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1293         * rtl.h (entry_of_function): Prototype.
1294
1295 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1296
1297         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1298         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1299         TARGET_DECOMPOSE_LEA.
1300
1301 2004-06-20  Richard Henderson  <rth@redhat.com>
1302
1303         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1304         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1305         * c-parse.in: Likewise.
1306         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1307         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1308         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1309
1310 2004-06-20  Richard Henderson  <rth@redhat.com>
1311
1312         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1313         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1314         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1315         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1316         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1317         * c-pretty-print.c (pp_c_statement): Similarly.
1318         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1319         gimplify_if_stmt): Move to cp-gimplify.c.
1320         (c_genericize, c_gimplify_expr): Don't call them.
1321         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1322         * c-typeck.c (push_cleanup): New.
1323         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1324         c_finish_if_stmt): Use COND_EXPR.
1325         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1326
1327 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1328
1329         * c-common.h (has_c_linkage): New interface.
1330         * c-cppbuiltin.c: Include target.h.
1331         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1332         __PRAGMA_EXTERN_PREFIX when appropriate.
1333         * c-pragma.c: Include target.h.
1334         Document clarified semantics of symbol-renaming #pragmas.
1335         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1336         (maybe_apply_renaming_pragma): Rewrite according to clarified
1337         semantics.  Always recognize, but do not necessarily execute.
1338         (init_pragma): Unconditionally register symbol-renaming pragmas.
1339         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1340         and HANDLE_PRAGMA_EXTERN_PREFIX.
1341         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1342         and handle_pragma_extern_prefix flags.
1343         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1344         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1345         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1346         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1347         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1348         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1349         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1350         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1351         not HANDLE_PRAGMA_EXTERN_PREFIX.
1352         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1353         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1354         into one section "Symbol-Renaming Pragmas"; clarify; document
1355         adjusted semantics.
1356
1357         * builtins.c (expand_builtin): Do not issue error for a builtin
1358         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1359         library call.
1360         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1361         * c-objc-common.c (has_c_linkage): Stub implementation.
1362         * cgraphunit.c (cgraph_expand_function)
1363         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1364
1365 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1366
1367         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1368         instead of both an ARGLIST and a result TYPE.  Handle these C99
1369         comparison functions as "polymorphic" builtins.  Also handle
1370         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1371         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1372         Move handling of BUILT_IN_ISUNORDERED from here to there.
1373
1374 2004-06-19  Richard Henderson  <rth@redhat.com>
1375
1376         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1377         * c-gimplify.c: Remove unnecessary prototypes.
1378         (c_gimplify_stmt): Merge into ...
1379         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1380         * c-semantics.c (prep_stmt): Remove.
1381         * gimplify.c (annotate_one_with_locus): Break out from ...
1382         (annotate_all_with_locus): ... here.
1383         (gimplify_expr): Add locus to expressions even if pre/post queues
1384         are not present.
1385
1386 2004-06-19  Richard Henderson  <rth@redhat.com>
1387
1388         PR target/15941
1389         * function.c (assign_parms): If not padding upward or intentionally
1390         forcing upward padding, take offset_rtx into account when determining
1391         the alignment for stack_parm.
1392
1393 2004-06-19  Richard Henderson  <rth@redhat.com>
1394
1395         PR target/15550
1396         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1397
1398 2004-06-19  Jan Hubicka  <jh@suse.cz>
1399
1400         * function.c (free_after_compilation): Do not free computed_goto_common*.
1401         * function.h (struct function): Kill computed_goto_common*.
1402         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1403         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1404         commonized computed goto.
1405
1406 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1407
1408         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1409         in binutils.
1410
1411 2004-06-19  Andrew Pinski  <apinski@apple.com>
1412
1413         PR c++/15721
1414         * toplev.c (wrapup_global_declarations): Do not check
1415         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1416         cgraph_varpool_node's needed field.
1417
1418 2004-06-19  Jan Hubicka  <jh@suse.cz>
1419             Steven Bosscher  <stevenb@suse.de>
1420
1421         CFG transparent RTL expansion:
1422         * Makefile.in (cfgexpand.o): New object file.
1423         (builtins.o): Add dependency on basic-block.h
1424         * builtins.c: Include basic-block.h
1425         (entry_of_function): New function.
1426         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1427         * cfgexpand.c: New file.
1428         * expr.c (execute_expand, pass_expand): Kill.
1429         * pass.c (rest_of_compilation): Do not build CFG unless called from
1430         coverage code.
1431         * tree-cfg.c (delete_tree_cfg): Rename to..
1432         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1433         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1434         (dleete_tree_cfg): Kill.
1435         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1436         (execute_del_cfg): Rename to...
1437         (execute_free_datastructures): This one...
1438         (pass_del_cfg): Rename to...
1439         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1440         (init_tree_optimization_passes): Make cfg build and profiling to happen
1441         unconditionally.
1442
1443 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1444
1445         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1446         inserting the cache variables.
1447
1448         * tree-mudflap.c: Include headers to make basic_block available.
1449         Move functions around such that related functions are near each
1450         other.  Add prototypes for all static functions.  Add comments
1451         briefly explaining what IR the mudflap1 and mudflap2 work on and
1452         what they do.
1453         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1454         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1455         (pass_mudflap_1, pass_mudflap_2): Update.
1456         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1457         function tree.
1458         (mf_build_check_statement_for): Make it work on the CFG.
1459         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1460         (mf_xform_derefs): Likewise.
1461
1462 2004-06-19  Jan Hubicka  <jh@suse.cz>
1463
1464         * tree-cfg.c (label_to_block): Invent the label destination for
1465         undefined labels.
1466         (cleanup_dead_labels): Update table in the case label_to_block added
1467         new label.
1468
1469 2004-06-18  Richard Henderson  <rth@redhat.com>
1470
1471         PR c++/16036
1472         * gimple-low.c (lower_function_body): Generate return statement for
1473         fall off the end of the function here ...
1474         * tree-cfg.c (make_edges): ... instead of here.
1475         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1476
1477 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1478
1479         * tree-ssa.c (raise_value): Removed.
1480         (get_eq_name, check_phi_redundancy): New functions.
1481         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1482
1483 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1484
1485         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1486         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1487         constant folding for unordered comparison tree nodes.  If both
1488         operands are real constants, call fold_relational_const.  If either
1489         operand is a NaN, evaluate the other for side-effects and return a
1490         constant.  Optimize (double)float1 CMP (double)float2 into the
1491         equivalent float1 CMP float2.
1492         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1493         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1494         LTGT_EXPR>: Call fold_relational_const for constant operands.
1495         (fold_relational_const): Add support for unordered comparison tree
1496         nodes.  Don't constant fold "ordered" floating point comparisons
1497         against NaN if when flag_trapping_math is set.
1498
1499 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1500
1501         * fold-const.c (build_range_check): If !in_p and recursive call
1502         fails, exit immediately.  If high - low overflows and etype is
1503         a signed type, retry with unsigned etype.
1504         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1505         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1506
1507 2004-06-18  Richard Henderson  <rth@redhat.com>
1508
1509         * c-gimplify.c (gimplify_condition): Remove.
1510         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1511         call it.
1512
1513 2004-06-18  Richard Henderson  <rth@redhat.com>
1514
1515         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1516         switch estimates.
1517
1518 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1519
1520         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1521         (NORMAL_TEXT_SECTION_NAME): Define.
1522         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1523         (SECTION_FORMAT_STRING): Define.
1524
1525 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1526
1527         * config/xtensa/xtensa.c
1528         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1529         * xtensa.md: Replace the old pipeline description with a DFA model.
1530
1531 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1532             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1533
1534         * config/s390/s390.md: Remove the generic pipeline description.
1535         * config/s390/2064.md: Make all insn reservations apply to
1536         the z900, g5 and g6.
1537         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1538         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1539         Define to hook_int_void_1.
1540         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
1541         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1542
1543 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
1544                         Diego Novillo  <dnovillo@redhat.com>
1545
1546         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1547         (create_stmt_ann): Ditto.
1548         (create_tree_ann): New function.
1549         (create_cst_ann): Remove.
1550         (create_expr_ann): Ditto.
1551
1552         * tree-flow-inline.h (cst_ann): Remove.
1553         (get_cst_ann): Ditto.
1554         (get_expr_ann): Ditto.
1555         (expr_ann): Ditto.
1556         (get_tree_ann): New function.
1557         (tree_ann): Ditto.
1558         (ann_type): tree_ann -> tree_ann_t.
1559         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1560         (struct cst_ann_d): Removed.
1561         (struct expr_ann_d): Ditto.
1562         (union tree_ann_d): Removed cst and expr.
1563         (tree_ann): Renamed to tree_ann_t.
1564         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1565         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1566         annotation.
1567         (set_value_handle): Ditto.
1568         (phi_translate): Ditto.
1569         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1570
1571 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1572
1573         * config/sh/t-linux64: New file.
1574         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1575
1576 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
1577
1578         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1579         (unshare_all_rtl_again): Call unshare_all_rtl_1.
1580         (unshare_all_rtl): New.
1581         * function.c (instantiate_virtual_regs): Remove parameters.
1582         * function.h (instantiate_virtual_regs): Add prototype.
1583         * rtl.h (unshare_all_rtl): Add prototype.
1584         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1585         prototype.
1586         * passes.c: Remove assertions on the parameters to
1587         rest_of_handle_* functions.  Remove the parameters to
1588         the functions, replacing decl with current_function_decl
1589         and insns with get_insns ().
1590
1591 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1592
1593         * fold-const.c (constant_boolean_node): Handle boolean_type_node
1594         directly, return either boolean_true_node or boolean_false_node.
1595
1596 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
1597
1598         * opts.sh: Delete.  Break out generated code to next four files.
1599         * opt-gather.awk: New file.
1600         * optc-gen.awk: New file.
1601         * opth-gen.awk: New file.
1602         * opt-functions.awk: New common file.
1603         * Makefile.in: Update for above.
1604         * configure.ac: Update comment.
1605         * configure: Regenerate.
1606
1607 2004-06-17  Richard Henderson  <rth@redhat.com>
1608
1609         * c-common.c (flag_objc_sjlj_exceptions): New.
1610         * c-common.h (flag_objc_sjlj_exceptions): Declare.
1611         * c-opts.c (c_common_handle_option): Set it.
1612         (c_common_post_options): Handle interation of different
1613         objective-c exception and runtime switches.
1614         * c-decl.c (c_eh_initialized_p): New.
1615         (finish_decl): Use it instead of local eh_initialized_p.
1616         * c-parse.in (nested_function, notype_nested_function): Record
1617         the result of compstmt.
1618         (compstmt_or_error): Likewise.
1619         (compstmt): Don't add_stmt the result.
1620         (stmt): Don't return anything.  Rewrite objc try and sync rules.
1621         (objc_try_stmt, objc_catch_list): Remove.
1622         (objc_catch_block, objc_finally_block): Remove.
1623         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1624         (objc_try_catch_clause, objc_finally_clause): New.
1625         (objc_try_catch_stmt): Rewrite.
1626         * c-tree.h (c_eh_initialized_p): Declare.
1627         * c-opt (fobjc-sjlj-exceptions): New.
1628         * except.c (output_function_exception_table): Don't call cgraph
1629         on non-decls.
1630         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1631         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1632         catch_count_stack, exc_binding_stack, if_nesting_count,
1633         blk_nesting_count, objc_enter_block, objc_exit_block,
1634         objc_declare_variable, val_stack_push, val_stack_pop,
1635         objc_build_try_enter_fragment, objc_build_extract_expr,
1636         objc_build_try_exit_fragment, objc_build_extract_fragment,
1637         objc_build_try_prologue, objc_build_try_epilogue,
1638         objc_build_catch_stmt, objc_build_catch_epilogue,
1639         objc_build_finally_prologue, objc_build_finally_epilogue,
1640         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1641         objc_build_synchronized_epilogue): Remove.
1642         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1643         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1644         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1645         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1646         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1647         objc_begin_catch_clause, objc_finish_catch_clause,
1648         objc_build_finally_clause, objc_finish_try_stmt,
1649         objc_build_synchronized): New.
1650         (objc_is_object_id, objc_is_class_id): New.
1651         (objc_comptypes): Use them.
1652         (build_next_objc_exception_stuff): Break NeXT sjlj out from
1653         build_objc_exception_stuff.
1654         (synth_module_prologue): Update to match.
1655         (objc_build_throw_stmt): Use cur_try_context to decide if
1656         we're in a @catch.
1657         * objc/objc-act.h: Update prototypes.
1658         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1659
1660 2004-06-17  Andrew Pinski <apinski@apple.com>
1661
1662         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1663         Use TYPE_FIELDS instead of TYPE_VALUES.
1664
1665 2004-06-17  Jason Merrill  <jason@redhat.com>
1666
1667         PR c++/16015
1668         * gimplify.c (gimplify_target_expr): Handle void initializer.
1669         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
1670         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
1671         and AGGR_INIT_EXPR.
1672
1673 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1674
1675         * fold-const.c (fold_relational_const): Use constant_boolean_node.
1676
1677 2004-06-17  Jan Hubicka  <jh@suse.cz>
1678
1679         PR target/15433
1680         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
1681         operand numbering in the output template.
1682         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
1683
1684 2004-06-17  Jan Hubicka  <jh@suse.cz>
1685
1686         * except.c (can_throw_internal): Recognize RESX expresisons.
1687
1688 2004-06-17  Jan Hubicka  <jh@suse.cz>
1689
1690         * cfgbuild.c (make_edges): Do not use label_value_list.
1691         (find_basic_blocks_1): Do not collect label_value_list.
1692         (find_sub_basic_blocks): Update call of make_edges.
1693
1694 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
1695
1696         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
1697         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
1698         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
1699         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
1700         (get_v_may_def_result_ptr):  Return a def_operand_p.
1701         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
1702         (get_v_must_def_op_ptr):  Return a def_operand_p.
1703         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
1704         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
1705         (phi_element_for_edge):  Remove.
1706         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
1707         (propagate_tree_value):  Add new prototype.
1708         (phi_element_for_edge):  Remove prototype.
1709         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
1710         (prepare_operand_for_rename):  Split into two functions.
1711         (prepare_use_operand_for_rename):  Prepare use operands.
1712         (prepare_def_operand_for_rename):  Prepare def operands.
1713         (rewrite_stmt):  Use new operand types.
1714         (rewrite_operand):  Use new operand types, change parameter type.
1715         * tree-outof-ssa.c (replace_variable):  Split into two functions.
1716         (replace_use_variable):  Rewrite uses.
1717         (replace_def_variable):  Rewrite defs.
1718         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
1719         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
1720         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
1721         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
1722         (ccp_fold, replace_uses_in):  Use new operand types.
1723         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
1724         and no longer set the value, change parameter type.
1725         (replace_exp_1):  Use new operand types.
1726         (propagate_value):  Change parameter type, use new operand types.
1727         (propagate_tree_value):  Propagate_value without SSA operands.
1728         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
1729         (cprop_into_successor_phis):  Use new operand types.
1730         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
1731         (eliminate_redundant_computations):  Use new operand types.
1732         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
1733         (fix_stmt_v_may_defs):  Use new operand_types.
1734         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
1735         (build_tree_conflict_graph):  Use new operand_types.
1736         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
1737         * tree-ssa-operands.c (struct freelist_d):  Remove.
1738         (check_optype_freelist, add_optype_freelist):  Remove.
1739         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1740         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
1741         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1742         Call ggc_free instead of add_optype_freelist.
1743         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
1744         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
1745         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
1746         (struct use_optype_d):  Change underlying type.
1747         (def_operand_p, use_operand_p):  New types for pointers to operands.
1748         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
1749         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
1750         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
1751         pointer types.
1752         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
1753         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
1754         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
1755         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
1756         PHI result as an operand.
1757         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
1758         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
1759         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
1760         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
1761         PHI_ARG_DEF_FROM_EDGE.
1762         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
1763         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
1764
1765 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1766
1767         PR tree-optimization/15991
1768         * tree-cfg.c (tree_block_label): Export.
1769         * tree-flow-inline.h (bsi_after_labels): New function.
1770         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
1771         * tree-ssa.c (propagate_into_addr): New function.
1772         (replace_immediate_uses): Handle propagation of pointer constants.
1773         (raise_value): Do not restrict propagation of pointer constants.
1774         * tree-ssanames.c (duplicate_ssa_name): New function.
1775         * tree.h (duplicate_ssa_name): Declare.
1776
1777 2004-06-17  David Ayers  <d.ayers@inode.at>
1778
1779         * c-parse.in: Unify Objective-C token names.
1780
1781 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1782
1783         Bug 14610
1784         * Makefile.in (min-insn-modes.o): Correct dependencies.
1785         * real.c (encode_ieee_extended, decode_ieee_extended): Always
1786         produce/consume 12-byte little-endian Intel format.
1787         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
1788         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
1789         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
1790         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
1791         New functions which convert between 12-byte little-endian Intel
1792         format and the desired format.
1793         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
1794         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
1795         Update.
1796
1797 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1798
1799         * expmed.c (expand_mult_const): In sanity check, compare only
1800         the bits of val and val_so_far that are significant in the
1801         result mode.
1802
1803 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
1804
1805         * tree-ssa-pre.c:  Update comments.
1806         (val_expr_pair_eq): Factor code from here.
1807         (expr_pred_trans_eq): and here.
1808         (expressions_equal_p): To here.
1809         (print_value_set): Print value for expression.
1810         (phi_trans_lookup): Rename some variables.
1811         (lookup): Ditto.
1812         (value_exists_in_set_bitmap): Ditto.
1813         (value_remove_from_set_bitmap): Ditto.
1814         (value_insert_into_set_bitmap): Ditto.
1815
1816 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
1817
1818         * config/s390/s390-modes.def (CCL3mode): New machine mode.
1819         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1820         (s390_alc_comparison, s390_slb_comparison): Likewise.
1821         (s390_branch_condition_mask): Likewise.
1822         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1823         ("*subsi3_cc2", "*subsi3_cconly2"): New.
1824
1825         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1826         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1827         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1828         Handle SIGN_EXTEND and ZERO_EXTEND.
1829
1830         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1831         * config/s390/s390.c (s390_expand_addcc): New function.
1832         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1833         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1834         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1835
1836 2004-06-17  Ben Elliston  <bje@au.ibm.com>
1837
1838         * tree-alias-common.c: Add whitespace.
1839         * tree-inline.c: Correct comment about this file's purpose.
1840         * tree-optimize.c: Likewise.
1841         * tree-tailcall.c: Likewise.
1842
1843         * tree-alias-ander.h: Add standard top-of-file comment.
1844         * tree-alias-common.h: Likewise.
1845         * tree-alias-type.h: Likewise.
1846
1847 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1848
1849         * tree-ssa-pre.c (compute_avail): Value number uses as well.
1850         Strip useless type conversions.
1851         Casts have to be treated slightly different than normal unaries.
1852
1853 2004-06-16  Richard Henderson  <rth@redhat.com>
1854
1855         * c-common.def (COMPOUND_STMT): Remove.
1856         * c-common.c (finish_fname_decls): Don't look through it.
1857         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1858         * c-common.h (COMPOUND_BODY): Remove.
1859         (c_common_stmt_codes): Remove COMPOUND_STMT.
1860         * c-dump.c (c_dump_tree): Likewise.
1861         * c-gimplify.c (c_gimplify_stmt): Likewise.
1862         * c-pretty-print.c (pp_c_statement): Likewise.
1863         * tree.h (DECL_SAVED_TREE): Update commentary.
1864         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1865         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1866         (GOTO_EXPR): Rename from GOTO_STMT.
1867         (GOTO_FAKE_P): Remove.
1868         (COMPOUND_STMT): Remove.
1869         (HANDLER): Update wrt COMPOUND_STMT.
1870         (STMT_EXPR): Likewise.
1871         (LABEL_EXPR): Rename from LABEL_STMT.
1872         (SCOPE_STMT): Remove.
1873         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1874         through COMPOUND_STMT.
1875
1876 2004-06-16  Richard Henderson  <rth@redhat.com>
1877
1878         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1879         c_finish_while_stmt_cond): Remove decls.
1880         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1881         * c-typeck.c (c_begin_if_stmt): Return void.
1882         (c_begin_else): Tidy.  Save stmt_count.
1883         * c-tree.h (c_begin_if_stmt): Update decl.
1884
1885         * objc/objc-act.c (objc_build_try_enter_fragment,
1886         objc_build_extract_fragment, objc_build_try_epilogue,
1887         objc_build_catch_stmt, objc_build_catch_epilogue,
1888         objc_build_finally_prologue, objc_build_finally_epilogue): Update
1889         for if builder function changes.
1890
1891 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
1892
1893         * config/s390/s390.c (struct machine_function):  New member
1894         last_restore_gpr.
1895         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1896         Do not modify machine->save_return_addr_p or regs_ever_live.
1897         Fill in machine->last_restore_gpr.
1898         (s390_optimize_prolog): Use s390_frame_info to compute registers
1899         to save/restore, remove duplicated code.
1900         (s390_arg_frame_offset): Use s390_frame_info to compute frame
1901         size, remove duplicated code.
1902         (s390_emit_prologue): Adapt s390_frame_info call.  Update
1903         machine->save_return_addr_p and regs_ever_live.
1904         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1905         machine->last_save_gpr.
1906
1907 2004-06-16  Richard Henderson  <rth@redhat.com>
1908
1909         * c-parse.in (if_stmt_locus): Remove.
1910         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1911         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1912         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
1913         empty_locus.  Add stmt_count, saw_else.
1914         (c_begin_if_stmt): Push if_stack here.
1915         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
1916         (c_finish_then, c_finish_else): Record empty_locus.
1917         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
1918         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
1919         if or else body.
1920         * c-tree.h: Update prototypes.
1921
1922 2004-06-16  Steven Bosscher  <stevenb@suse.de>
1923
1924         * tree.h (PHI_CHAIN): New.
1925         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1926         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1927         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1928         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1929         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1930         when traversing a list of PHI_NODEs.
1931
1932 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
1933
1934         PR target/13292
1935         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1936         on -msoft-float.
1937         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1938         68040 and soft-float.
1939         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1940         in the TARGET_68040_ONLY case.
1941
1942 2004-06-16 Peter Barada  <peter@the-baradas.com>
1943
1944         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1945         (movsi_cf): Make named, don't match TARGET_CFV4.
1946         (pushexthisi_const): Use mov3q if possible.
1947         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1948         to special case mvz.w for ColdFire V4.
1949         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1950         to special case mvz.b for ColdFire V4.
1951         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1952         divide.
1953         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1954         * config/m68k/m68k.c(valid_mov3q_const):  New function.
1955         (const_method): SWAP is valid for ColdFire.
1956         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1957         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1958
1959 2004-06-16  Richard Henderson  <rth@redhat.com>
1960
1961         * c-common.def (CASE_LABEL): Remove.
1962         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1963         (match_case_to_enum_1): Likewise.
1964         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1965         * c-dump.c (c_dump_tree): Likewise.
1966         * c-gimplify.c (c_gimplify_stmt): Likewise.
1967         * c-pretty-print.c (pp_c_statement): Likewise.
1968         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1969         * tree.h (CASE_LOW): Update commentary.
1970
1971 2004-06-16  Richard Henderson  <rth@redhat.com>
1972
1973         * c-common.def (ASM_STMT): Remove.
1974         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1975         * c-dump.c (c_dump_tree): Likewise.
1976         * c-gimplify.c (c_gimplify_stmt): Likewise.
1977         * c-pretty-print.c (pp_c_statement): Likewise.
1978         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1979         * tree.h: Fix commentary.
1980
1981 2004-06-16  Richard Henderson  <rth@redhat.com>
1982
1983         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1984         * c-common.c (c_add_case_label): Use LABEL_EXPR.
1985         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1986         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1987         * c-dump.c (c_dump_tree): Likewise.
1988         * c-gimplify.c (c_gimplify_stmt): Likewise.
1989         * c-pretty-print.c (pp_c_statement): Likewise.
1990         * c-parse.in (stmt): Use GOTO_EXPR.
1991         (label): Use LABEL_EXPR.
1992         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1993         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1994
1995 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1996
1997         * cfgcleanup.c (try_simplify_condjump): Update test to make
1998         sure we have a conditional branch around am unconditional branch.
1999
2000 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2001
2002         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2003
2004 2004-06-16  Dale Johannesen  <dalej@apple.com>
2005
2006         * loop.c (loop_givs_reduce): Avoid miscompilation of
2007         loops entered at bottom.
2008
2009 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2010
2011         * cfglayout.c (fixup_reorder_chain): Handle case where the
2012         destination of E_FALL is EXIT_BLOCK_PTR.
2013
2014 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2015
2016         PR target/15653
2017         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2018         after shifts before asm.
2019
2020 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2021
2022         PR tree-optimization/15993
2023         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2024         destination is unchanged.
2025
2026 2004-06-16  Andreas Jaeger  <aj@suse.de>
2027
2028         * doc/install.texi (Configuration): Update description for
2029         --enable-version-specific-runtime-libs.
2030
2031 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2032
2033         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2034
2035 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2036
2037         * toplev.h (rest_of_compilation): Adjust prototype.
2038
2039 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2040
2041         * coverage.c: Remove argument to rest_of_compilation.
2042         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2043         * passes.c (rest_of_compilation): Remove argument.
2044         (pass_rest_of_compilation): New.
2045         (rest_of_handle_final, rest_of_handle_delay_slots,
2046         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2047         rest_of_handle_machine_reorg, rest_of_handle_regrename
2048         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2049         rest_of_handle_regmove, rest_of_handle_tracer
2050         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2051         rest_of_handle_web, rest_of_handle_branch_prob
2052         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2053         rest_of_handle_addressof, rest_of_handle_jump_bypass
2054         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2055         Check that the two arguments are actually superfluous.
2056         * tree-optimize.c (register_dump_files): Add properties argument.
2057         Track validity of passes.  Only initialize dump files for
2058         tree-based passes.  Store the full set of provided passes in
2059         the pass.
2060         (init_tree_optimization_passes): Register pass_expand and
2061         pass_rest_of_compilation.
2062         (execute_one_pass): Do not track the presence of required properties
2063         here.  Set in_gimple_form.  Do not update current_properties.
2064         (current_properties): Remove.
2065         (set_save_expr_context): Remove.
2066         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2067         expand to RTL here, and do not call rest_of_compilation.  Push
2068         GGC context even before gimplification.
2069         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2070         (pass_expand, pass_rest_of_compilation): Declare.
2071
2072 2004-06-15  Jeff Law  <law@redhat.com>
2073
2074         * fold-const.c (swap_tree_comparison): No longer static.
2075         (tree_swap_operands_p): Similarly.  Return true if both operands
2076         are SSA_NAMEs and the first operand has a higher version number than
2077         the second operand.
2078         * tree.h (swap_tree_comparison): Prototype.
2079         (tree_swap_operands_p): Prototype.
2080         * tree-ssa-operands.c (get_expr_operands): For commutative
2081         operators and relational comparisons, canonicalize the
2082         order of the operands.
2083
2084 2004-06-15  Richard Henderson  <rth@redhat.com>
2085
2086         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2087         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2088         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2089         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2090         (finish_fname_decls, fname_decl): Use statement_lists.
2091         (c_expand_expr_stmt): Don't set last_expr_type.
2092         (c_type_hash): Fix indentation.
2093         (c_safe_from_p): Don't follow TREE_CHAIN.
2094         (c_tree_chain_matters_p): Remove.
2095         * c-common.def (SCOPE_STMT): Remove.
2096         (CLEANUP_STMT): Redefine to contain its own body.
2097         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2098         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2099         Add x_cur_stmt_list.
2100         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2101         (cur_stmt_list): New.
2102         (STATEMENT_LIST_STMT_EXPR): New.
2103         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2104         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2105         (CLEANUP_BODY): New.
2106         (CLEANUP_DECL): Move to operand 2.
2107         (c_common_stmt_codes): Remove SCOPE_STMT.
2108         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2109         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2110         (c_push_function_context, c_pop_function_context): Don't save it.
2111         (finish_decl): Set TREE_USED on the decl for a cleanup.
2112         Use push_cleanup.
2113         (store_parm_decls): Use statement lists.
2114         (finish_function): Remove compstmt rule workaround.  Use statement
2115         lists.  Call finish_fname_decls after finalizing the body.
2116         (c_begin_compound_stmt): Move to c-typeck.c.
2117         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2118         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2119         (c_genericize): Invoke them.
2120         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2121         (c_build_bind_expr): Export.
2122         (gimplify_block, gimplify_cleanup): Remove.
2123         (gimplify_condition): Use gimplify_stmt.
2124         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2125         (gimplify_if_stmt): Remove recursion hack.
2126         (c_gimplify_expr): Remove STMT_EXPR handling.
2127         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2128         (is_last_stmt_of_scope): Remove.
2129         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2130         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2131         c_end_compound_stmt.
2132         * c-objc-common.c (build_cdtor): Likewise.
2133         * c-parse.in (primary): Use c_finish_stmt_expr.
2134         (push_scope, pop_scope): Remove.
2135         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2136         (c99_block_end, compstmt): Use c_end_compound_stmt.
2137         (c99_block_lineno_labeled_stmt): Likewise.
2138         (compstmt_primary_start): Use c_begin_stmt_expr.
2139         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2140         (do_stmt_start): Fill in body directly.
2141         (lineno_stmt): Avoid setting lineno on constants.
2142         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2143         Remove SCOPE_STMT.
2144         * c-semantics.c (begin_stmt_tree): Remove.
2145         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2146         (add_stmt): Use statement lists.
2147         (add_scope_stmt, finish_stmt_tree): Remove.
2148         (push_cleanup): New.
2149         * c-tree.h: Move some decls from c-common.h.
2150         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2151         (do_case, c_finish_case): Likewise.
2152         (c_finish_then): Take body for then as argument.
2153         (c_finish_else): Similarly.
2154         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2155         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2156         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2157         (c_begin_compound_stmt): Do scope management.
2158         (c_end_compound_stmt): New.
2159         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2160         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2161         Look through exception handling constructs.
2162         (gimplify_bind_expr): Accept temporary argument.
2163         (gimplify_target_expr): Special case BIND_EXPR bodies.
2164         (gimplify_expr): Handle fallback == fb_none like a statement.
2165         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2166         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2167         * langhooks.h (tree_chain_matters_p): Remove.
2168         * stub-objc.c (objc_clear_super_receiver): New.
2169         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2170         (append_to_statement_list, append_to_statement_list_force): Move
2171         to tree-iterator.h.
2172         * tree-inline.c (expand_call_inline): Update call.
2173         (clone_body): Use statement lists.
2174         (walk_tree): Don't check tree_chain_matters_p.
2175         (copy_tree_r): Likewise.
2176         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2177         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2178         * tree-iterator.h (append_to_statement_list,
2179         append_to_statement_list_force): Moved from tree-gimple.h.
2180         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2181         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2182         (objc_enter_block): Likewise.
2183         (objc_exit_block): Use c_end_compound_stmt.
2184         (objc_build_try_enter_fragment): Add #error and comment for
2185         rewriting for OBJCPLUS.
2186         (objc_build_extract_fragment, objc_build_try_epilogue,
2187         objc_build_catch_stmt, objc_build_finally_prologue,
2188         objc_build_finally_epilogue): Update for C statement builders.
2189         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2190         Remove.
2191
2192 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2193
2194         * df.c (df_reg_clobber_gen): Removed.
2195         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2196         Make more effective for hard regs.
2197         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2198
2199 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2200
2201         * c-pragma.h (c_lex_string_translate): Change type to int.
2202         * c-parse.in: Change all assignments of c_lex_string_translate
2203         to true and false to 1 and 0.
2204         * c-lex.c (c_lex_string_translate): Likewise.
2205         (lex_string): Convert string without translation in the -1
2206         case.
2207
2208 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2209
2210         * convert.h: Add include guards
2211
2212 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2213
2214         * tree-flow-inline.h: Document all functions.
2215
2216 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2217
2218         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2219         * tree-dfa.c (create_stmt_ann): Ditto.
2220         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2221         * tree-inline.c (estimate_num_insns_1): Ditto.
2222         * tree.c (tree_size): Ditto.
2223         (make_node_stat): Ditto.
2224         (tree_node_structure): Ditto.
2225         (ephi_node_elt_check_failed): Remove.
2226         (is_essa_node): Ditto.
2227         * tree.def (EPHI_NODE): Ditto.
2228         (EEXIT_NODE): Ditto.
2229         (EUSE_NODE): Ditto.
2230         (EKILL_NODE): Ditto.
2231         * tree.h (EREF_NODE_CHECK): Remove.
2232         (EPHI_NODE_ELT_CHECK): Ditto.
2233         (struct tree_eref_common): Ditto.
2234         (struct tree_euse_node): Ditto.
2235         (struct ephi_arg_d): Ditto.
2236         (struct tree_ephi_node): Ditto.
2237         (ephi_node_elt_check_failed): Remove prototype.
2238         (is_essa_node): Ditto.
2239         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2240         (union tree_node): Remove E*_NODE uses.
2241
2242 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2243
2244         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2245         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2246         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2247         Likewise.
2248         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2249         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2250         expand_builtin_strcmp, expand_builtin_strncmp,
2251         expand_builtin_frame_address): Likewise.
2252         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2253         insert_one_insn): Likewise.
2254         * calls.c (prepare_call_address, precompute_register_parameters,
2255         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2256         * cfganal.c (flow_active_insn_p): Likewise.
2257         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2258         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2259         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2260         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2261         simplify_comparison, record_dead_and_set_regs_1,
2262         record_dead_and_set_regs, record_promoted_value,
2263         check_promoted_subreg, get_last_value_validate, get_last_value,
2264         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2265         unmentioned_reg_p_1): Likewise.
2266         * conflict.c (mark_reg): Likewise.
2267         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2268         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2269         merge_equiv_classes, flush_hash_table, invalidate,
2270         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2271         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2272         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2273         record_jump_cond, cse_insn, addr_affects_sp_p,
2274         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2275         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2276         cse_cc_succs, cse_condition_code_reg): Likewise.
2277         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2278         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2279         cselib_record_set, cselib_record_sets): Likewise.
2280         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2281         dbxout_block): Likewise.
2282         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2283         * dojump.c (do_jump): Likewise.
2284         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2285         is_based_loc, rtl_for_decl_location): Likewise.
2286         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2287         set_decl_incoming_rtl, mark_user_reg): Likewise.
2288         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2289         copy_to_suggested_reg, allocate_dynamic_stack_space,
2290         probe_stack_range, hard_function_value): Likewise.
2291         * expmed.c (store_bit_field, store_fixed_bit_field,
2292         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2293         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2294         Likewise.
2295         * expr.c (convert_move, convert_modes,
2296         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2297         use_group_regs, emit_move_insn, emit_move_insn_1,
2298         compress_float_constant, push_block, emit_single_push_insn,
2299         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2300         store_constructor, store_field, force_operand, safe_from_p,
2301         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2302         Likewise.
2303         * final.c (profile_function, final_scan_insn, alter_subreg,
2304         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2305         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2306         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2307         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2308         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2309         attempt_auto_inc, find_auto_inc, mark_used_regs,
2310         count_or_remove_death_notes_bb): Likewise.
2311         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2312         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2313         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2314         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2315         purge_single_hard_subreg_set, instantiate_decl,
2316         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2317         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2318         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2319         expand_function_start, diddle_return_value, clobber_return_register,
2320         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2321         update_epilogue_consts): Likewise.
2322         * genemit.c (gen_exp, gen_insn): Likewise.
2323         * genrecog.c (make_insn_sequence): Likewise.
2324         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2325         mark_reg_conflicts, set_preference, reg_becomes_live,
2326         build_insn_chain, mark_reg_change): Likewise.
2327         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2328         Likewise.
2329         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2330         Likewise.
2331         * integrate.c (copy_rtx_and_substitute, try_constants,
2332         subst_constants, mark_stores, allocate_initial_values): Likewise.
2333         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2334         delete_computation, rtx_renumbered_equal_p, true_regnum,
2335         reg_or_subregno): Likewise.
2336         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2337         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2338         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2339         wipe_dead_reg, no_conflict_p): Likewise.
2340         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2341         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2342         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2343         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2344         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2345         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2346         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2347         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2348         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2349         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2350         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2351         try_swap_copy_prop): Likewise.
2352         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2353         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2354         Likewise.
2355         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2356         reload_cse_simplify_operands, reload_combine,
2357         reload_combine_note_store, reload_combine_note_use,
2358         reload_cse_move2add, move2add_note_store): Likewise.
2359         * print-rtl.c (print_rtx): Likewise.
2360         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2361         contains_pseudo, handle_asm_insn): Likewise.
2362         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2363         dump_static_insn_cost): Likewise.
2364         * ra-rewrite.c (slots_overlap_p, emit_colors,
2365         remove_suspicious_death_notes): Likewise.
2366         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2367         register_operand, scratch_operand, nonmemory_operand,
2368         constrain_operands): Likewise.
2369         * reg-stack (check_asm_stack_operands, remove_regno_note,
2370         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2371         subst_asm_stack_regs): Likewise.
2372         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2373         record_address_regs, reg_scan_mark_refs): Likewise.
2374         * regmove.c (discover_flags_reg, replacement_quality,
2375         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2376         fixup_match_1): Likewise.
2377         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2378         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2379         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2380         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2381         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2382         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2383         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2384         find_reloads_subreg_address, find_replacement,
2385         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2386         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2387         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2388         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2389         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2390         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2391         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2392         do_output_reload, emit_reload_insns, gen_reload,
2393         delete_address_reloads_1, inc_for_reload): Likewise.
2394         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2395         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2396         * resource.c (update_live_status, mark_referenced_resources,
2397         mark_set_resources, mark_target_live_regs): Likewise.
2398         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2399         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2400         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2401         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2402         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2403         parms_set, find_first_parameter_load, keep_with_call_p,
2404         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2405         num_sign_bit_copies1): Likewise.
2406         * rtlhooks.c (gen_lowpart_general): Likewise.
2407         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2408         sched_analyze): Likewise.
2409         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2410         Likewise.
2411         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2412         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2413         simplify_binary_operation, simplify_const_relational_operation,
2414         simplify_subreg): Likewise.
2415         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2416         expand_end_stmt_expr, expand_return, expand_decl,
2417         expand_anon_union_decl): Likewise.
2418         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2419         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2420         loop_iterations): Likewise.
2421         * var-tracking.c (variable_union, variable_part_different_p,
2422         variable_different_p, count_uses, add_uses, add_stores,
2423         compute_bb_dataflow, set_variable_part, delete_variable_part,
2424         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2425         Likewise.
2426         * varasm.c (assemble_variable): Likewise.
2427
2428 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2429
2430         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2431         definition.
2432         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2433         #undef and #if 0'd definition.
2434
2435 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2436
2437         * combine.c (distribute_notes): Comment typo fix.
2438
2439 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2440
2441         * expmed.c (synth_mult): Mask bits of the multiplier to the
2442         machine mode of the multiplication.  Don't consider shifts
2443         by more than (or equal to) the width of the operation's mode.
2444
2445 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2446
2447         * doc/install.texi: Yet another update for autoconf
2448         and automake versions.
2449
2450 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2451
2452         * function.h (struct function): Remove cannot_inline field.
2453         (current_function_cannot_inline): Remove.
2454         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2455         Simplify conditionals to ignore warn_return_type.
2456         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2457         DECL_DEFER_OUTPUT.
2458         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2459         Do not set current_function_cannot_inline.
2460
2461 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2462
2463         * cfglayout.c (fixup_reorder_chain): Handle case where the
2464         destination of E_TAKEN is EXIT_BLOCK_PTR.
2465
2466 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2467
2468         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2469
2470 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2471
2472         * fold-const.c (operand_equal_p): Update comment.
2473
2474 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2475
2476         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2477         (INCOMING_RETURN_ADDR_RTX): Define.
2478         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2479         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2480         __builtin_return_address(0).
2481         (m32r_return_addr): Added for __builtin_return_address(0).
2482         (m32r_reload_lr): Ditto.
2483
2484         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2485
2486 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2487
2488         * doc/install.texi (Prerequisites): Update libbanshee,
2489         fastjar, libcpp, libjava/libltdl entries to
2490         automake 1.8.5.
2491
2492 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2493             Olivier Hainque  <hainque@act-europe.fr>
2494
2495         * function.c (fixup_var_refs): Also adjust the start of sequence
2496         after fixing up the insns.
2497
2498 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2499
2500         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2501
2502 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2503
2504         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2505         automake 1.8.5.
2506
2507 2004-06-14  Eric Christopher  <echristo@redhat.com>
2508
2509         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2510         to -mtpf-trace (-mno-tpf-trace).
2511         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2512         documentation.
2513
2514 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2515
2516         * real.c: Fix bit count in head comment.
2517
2518 2004-06-14  Jeff Law  <law@redhat.com>
2519
2520         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2521         PHIs where the destination or an argument is marked with
2522         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2523
2524 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2525
2526         PR middle-end/15945
2527         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2528         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2529
2530 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2531
2532         * opts.sh (var_args): Fix regexp.
2533
2534 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2535
2536         PR target/15178
2537         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2538
2539 2004-06-14  Paul Brook  <paul@codesourcery.com>
2540
2541         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2542
2543 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2544
2545         * Makefile.in (FLAGS_H): New.
2546         (flags.h): Replace by FLAGS_H.
2547         * c.opt: Document Var, VarExists, Init and Report attributes.
2548         * common.opt: Fill the values of the attributes.
2549         * diagnostic.c (flag_fatal_errors): Do not define.
2550         * except.c (flag_non_call_exceptions): Do not define.
2551         * flags.h: Include options.h.  Remove declarations conflicting with
2552         the automatically defined ones.
2553         * opts.c: Remove automatically defined variables.
2554         (handle_option): Perform default initialization.
2555         (common_handle_option): Do not handle options covered by the
2556         default initialization.
2557         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2558         fields.
2559         (CL_REPORT): New.
2560         * opts.sh: Generate variable declarations, handle CL_REPORT.
2561         * toplev.c: Remove automatically defined variables.
2562         (f_options): Removed.
2563         (print_switch_values): Use cl_options instead of f_options.
2564         * toplev.h (version_flag): Declaration removed.
2565
2566 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
2567
2568         * config/sparc/sparc.h: Correct comment about availability of
2569         little endian option.
2570
2571         * config.gcc: Remove sparc64-*-aout*.
2572         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2573         * config/sparc/sp64-aout.h: Remove.
2574         * config/sparc/aout.h: Remove.
2575
2576 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2577
2578         * config/s390/s390.c: Include "tree-gimple.h".
2579         (s390_gimplify_va_arg): New function.
2580         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2581         (s390_va_arg): Remove.
2582         * config/s390/s390-protos.h (s390_va_arg): Remove.
2583         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2584
2585 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
2586
2587         * basic-block.h (could_fall_through): Declare.
2588         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2589         Fail if the source already has a fallthrough edge to the exit
2590         block pointer.
2591         (could_fall_through): New function.
2592         * cfgbuild.c (make_edges): Check if we already have a fallthrough
2593         edge to the exit block pointer.
2594         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2595         not called before reload has completed.
2596         Handle special case of first block having a fall-through exit edge.
2597         (cfg_layout_finalize): Don't call it before reload or if we have
2598         rtl epilogues.
2599         (fixup_reorder_chain): A fall through to the exit block does not
2600         require the block to come last.  Add sanity checks.
2601         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2602         edges to the exit block.
2603         * function.c (cfglayout.h): #include.
2604         (thread_prologue_and_epilogue_insns): If we have neither return nor
2605         epilogue, but a fall through to the exit block from mid-function,
2606         force a non-fall-through exit.
2607         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2608
2609 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
2610
2611         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2612         for power5 and rs64a.  Correct condition for default.  Correct power3,
2613         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
2614
2615 2004-06-13  Steven Bosscher <stevenb@suse.de>
2616
2617         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2618         Revert previous change, don't use CALL_P.
2619
2620 2004-06-13  Jason Merrill  <jason@redhat.com>
2621
2622         * tree.h: Move std_gimplify_va_arg_expr protoype here.
2623         * tree-gimple.h: From here.
2624
2625 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2626
2627         Fix PR tree-optimization/15979
2628         Fix PR tree-optimization/15981
2629         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2630         try to insert values undefined along some path.
2631
2632 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2633
2634         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2635         are available everywhere too.
2636
2637 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
2638
2639         * fold-const.c (fold_checksum_tree <case 't'>): Only
2640         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2641         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2642         EXPR is an INTEGERAL_TYPE or a scalar float type.
2643
2644 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
2645
2646         * tree-sra.c (tree_sra): Update documentation.
2647
2648 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
2649
2650         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2651         function_types_compatible_p, type_lists_compatible_p): Remove
2652         flags parameter.
2653         * c-tree.h (comptypes): Likewise.
2654         (COMPARE_STRICT): Remove.
2655         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2656         callers changed.
2657
2658 2004-06-13  Eric Christopher  <echristo@redhat.com>
2659
2660         * c-decl.c (diagnose_mismatched_decls): Improve error message.
2661         Remove unused code.
2662         * c-typeck.c (comptypes): Add location in standard we're checking.
2663
2664 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2665
2666         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
2667         version 3.3.4.
2668
2669 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2670
2671         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
2672         index by machine mode.
2673         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
2674         tables inside the loop over machine modes.
2675         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
2676         expand_divmod): Index shift*_cost by the appropriate machine mode.
2677
2678 2004-06-12  Eric Christopher  <echristo@redhat.com>
2679
2680         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
2681         * config/s390/s390.md: Ditto.
2682         * config/s390/s390.c: Ditto.
2683         (s390_frame_info): Conditionalize frame and setup info on
2684         TARGET_TPF_PROFILING.
2685         (s390_arg_frame_offset): Ditto.
2686
2687 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2688
2689         * fold-const.c (omit_two_operands): New function.
2690         * tree.h (omit_two_operands): Prototype here.
2691         * builtins.c (fold_builtin_unordered_cmp): New function to lower
2692         C99 unordered comparison builtins to the appropriate tree nodes.
2693         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
2694         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2695         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
2696         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
2697         (simplify_builtin_memcmp, simplify_builtin_strncmp,
2698         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
2699         omit_two_operands function to build the required COMPOUND_EXPRs.
2700
2701 2004-06-12  Steven Bosscher <stevenb@suse.de>,
2702             Andreas Jaeger  <aj@suse.de>
2703
2704         * gcse.c (record_set_info): Use predicates like REG_P.
2705         (mems_conflict_for_gcse_p): Likewise.
2706         (load_killed_in_block_p): Likewise.
2707         (hash_expr_1): Likewise.
2708         (insert_set_in_table): Likewise.
2709         (gcse_constant_p): Likewise.
2710         (hash_scan_set): Likewise.
2711         (hash_scan_insn): Likewise.
2712         (canon_list_insert): Likewise.
2713         (record_last_mem_set_info): Likewise.
2714         (record_last_set_info): Likewise.
2715         (compute_hash_table_work): Likewise.
2716         (mark_set): Likewise.
2717         (mark_clobber): Likewise.
2718         (mark_oprs_set): Likewise.
2719         (compute_transp): Likewise.
2720         (find_avail_set): Likewise.
2721         (cprop_insn): Likewise.
2722         (do_local_cprop): Likewise.
2723         (cprop): Likewise.
2724         (find_implicit_sets): Likewise.
2725         (find_bypass_set): Likewise.
2726         (bypass_conditional_jumps): Likewise.
2727         (insert_insn_end_bb): Likewise.
2728         (pre_insert_copy_insn): Likewise.
2729         (compute_transpout): Likewise.
2730         (next_ls_expr): Likewise.
2731         (invalidate_any_buried_refs): Likewise.
2732         (compute_ld_motion_mems): Likewise.
2733         (reg_set_info): Likewise.
2734         (reg_clear_last_set): Likewise.
2735         (find_moveable_store): Likewise.
2736         (compute_store_table): Likewise.
2737         (find_loads): Likewise.
2738         (store_killed_in_insn): Likewise.
2739         (insert_insn_start_bb): Likewise.
2740         (reg_set_between_after_reload_p): Likewise.
2741         (reg_used_between_after_reload_p): Likewise.
2742         (is_jump_table_basic_block): Likewise.
2743         (gcse_after_reload): Likewise.
2744         (hash_scan_set_after_reload): Likewise.
2745         (compute_hash_table_after_reload): Likewise.
2746
2747 2004-06-12  Steven Bosscher  <stevenb@suse.de>
2748
2749         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
2750         (INSN_P): Don't look at the rtx code class, just explicitly
2751         check for one of the tree RTX_INSN codes.
2752
2753 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2754
2755         * c-typeck.c (default_function_array_conversion): Use
2756         build_pointer_type not TYPE_POINTER_TO.
2757
2758 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2759
2760         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2761         * configure, config.in: Regenerate.
2762         * system.h: Unconditionally define bool as unsigned char,
2763         BOOL_BITFIELD as unsigned int.
2764         * domwalk.h: Use BOOL_BITFIELD.
2765
2766 2004-06-12  Andreas Jaeger  <aj@suse.de>
2767
2768         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
2769         * libgcc-darwin.ver: Likewise.
2770
2771 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
2772
2773         * reload.c (find_reloads): Force reload for pseudo registers on big
2774         endian machines.
2775
2776 2004-06-11  Steven Bosscher <stevenb@suse.de>
2777
2778         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
2779         Don't try to mark anything control dependent on the entry or
2780         exit blocks.
2781
2782 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
2783
2784         Fix Bug 15899
2785         Fix Bug 15460
2786         * tree.h (SSA_NAME_VALUE): New macro.
2787         (struct tree_ssa_name): Add value_handle member.
2788         * tree-ssa-pre.c: Replaced.
2789         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
2790         (struct cst_ann_d): New.
2791         (struct expr_ann_d): New.
2792         (union tree_ann_d): Add cst_ann, expr_ann.
2793         * tree-dfa.c (create_cst_ann): New function.
2794         (create_expr_ann): Ditto.
2795         * tree-flow-inline.h (cst_ann): New function.
2796         (expr_ann): Ditto.
2797         (get_cst_ann): Ditto.
2798         (get_expr_ann): Ditto..
2799
2800 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2801
2802         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2803         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2804         _U_Qfcmp library function.
2805         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2806         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2807
2808         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2809         unspec used for loading address from DLT.
2810         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2811         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2812         Don't use short code sequence when loading the address of a nonlocal
2813         label.
2814         (nonlocal_goto): New expander.
2815         (indirect_goto): New jump pattern for nonlocal gotos.
2816         (short_jump): Remove extra whitespace.
2817         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
2818         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2819         pattern.
2820
2821 2004-06-11  Roger Sayle  <roger@eyesopen.com>
2822
2823         * expmed.c (synth_mult): Add an additional MODE argument for the
2824         machine mode of the multiplication.  Update recursive calls.  Use
2825         mode instead of word_mode for determining operation costs.
2826         (choose_mult_variant): Update calls to synth_mult with "mode".
2827
2828 2004-06-11  Richard Henderson  <rth@redhat.com>
2829
2830         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2831         and makes_aliased_stores.
2832
2833 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2834
2835         * doc/install.text (--enable-shared): Fix typo.
2836
2837 2004-06-11  Richard Henderson  <rth@redhat.com>
2838
2839         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2840         argument.  Use internal post for call to gimplify_expr.  Tidy
2841         rounded type size computation.
2842         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2843         get_initialized_tmp_var.
2844
2845 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2846
2847         * doc/install.texi (--enable-shared): Update libobjc's shared library
2848         status.  Remove reference to libf2c.
2849
2850 2004-06-11  Jason Merrill  <jason@redhat.com>
2851
2852         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2853         * config/i386/i386.c (ix86_va_arg): Remove.
2854         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2855         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2856         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2857         * config/alpha/alpha.c (alpha_va_arg): Remove.
2858         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2859         * config/sparc/sparc.c (sparc_va_arg): Remove.
2860
2861         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2862         assignment might throw.
2863         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2864         expressions.
2865
2866 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
2867
2868         PR 15886:
2869         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2870
2871 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2872
2873         * doc/install.texi (Prerequisites): Update documentation of
2874         required versions of autoconf and automake.  Remove mention of
2875         libf2c.
2876
2877 2004-06-11  Jason Merrill  <jason@redhat.com>
2878
2879         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2880         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2881
2882 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
2883
2884         * typeclass.h: Add GPL plus exception license.  Add include
2885         guard.
2886
2887 2004-06-10  Jason Merrill  <jason@redhat.com>
2888
2889         * gimplify.c (gimplify_modify_expr): Don't force a temporary
2890         of an aggregate_value_p type.
2891
2892 2004-06-10  Jeff Law  <law@redhat.com>
2893
2894         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2895         code when we are in gimple form.
2896
2897 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
2898
2899         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2900         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2901         (highest_ssa_version): Remove.
2902         * tree-outof-ssa.c (new_temp_expr_table): Replace
2903         highest_ssa_version with num_ssa_names.
2904         (dump_replaceable_exprs): Likewise.
2905         (rewrite_vars_out_of_ssa): Likewise.
2906         * tree-ssa-ccp.c (initialize): Likewise
2907         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2908         * tree-ssa-dce.c (tree_dce_init): Likewise.
2909         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2910         * tree-ssa-live.c (create_ssa_var_map): Likewise.
2911         (dump_var_map): Likewise.
2912         * tree-ssa.c (verify_ssa): Likewise.
2913         (kill_redundant_phi_nodes): Likewise.
2914         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
2915         * tree-ssanames.c: Include tree-flow.h
2916         (ssa_names): New varray.
2917         (init_ssa_names): Initialize ssa_names.
2918         Reserve the first slot of the ssa_names table.
2919         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2920         Assign version numbers using num_ssa_names.
2921
2922 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2923
2924         * doc/sourcebuild.texi (Front End): Add details of more
2925         installation documentation required.
2926
2927 2004-06-10  Brian Booth  <bbooth@redhat.com>
2928
2929         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2930         of V_MAY_DEF and V_MUST_DEF.
2931         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2932         num_vdefs to num_v_may_defs.
2933         (compute_immediate_uses_for_stmt): Rename occurences of vdef
2934         to v_may_def.
2935         (redirect_immediate_uses): Ditto.
2936         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2937         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2938         Also add code to sum up the number of v_must_defs.
2939         (vdefs_disappeared_p): Replace with...
2940         (v_may_defs_disappeared_p): This.
2941         (v_must_defs_disappeared_p): New function.
2942         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2943         Also add code to mark new variables found in V_MUST_DEFs for
2944         renameing.
2945         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2946         vdef_ops to v_may_def_ops.
2947         (get_vdef_ops): Replace with...
2948         (get_v_may_def_ops): This.
2949         * tree-flow-inline.h (get_vdef_ops): Replace with...
2950         (get_v_may_def_ops): This.
2951         (get_v_must_def_ops): New function.
2952         (get_vdef_result_ptr): Replace with...
2953         (get_v_may_def_result_ptr): This.
2954         (get_vdef_op_ptr): Ditto with...
2955         (get_v_may_def_op_ptr); This.
2956         (get_v_must_def_op_ptr): New function.
2957         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2958         to v_may_def. Also add code to mark statements with
2959         V_MUST_DEFs as definition sites.
2960         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2961         add code to register new V_MUST_DEFs made by the statement.
2962         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2963         (check_replaceable): Rename occurences of vdef to v_may_def. Also
2964         add check for V_MUST_DEFs.
2965         (find_replaceable_in_bb): Ditto.
2966         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2967         to v_may_def. Also add code to dump V_MUST_DEFs.
2968         * tree-sra.c (mark_all_vdefs): Replace with...
2969         (mark_all_v_may_defs): This.
2970         (mark_all_v_must_defs): New function.
2971         (create_scalar_copies): Replace call to mark_all_vdefs with
2972         calls to mark_all_v_may_defs and mark_all_v_must_defs.
2973         (scalarize_structures): Rename occurences of vdef to v_may_def.
2974         Also add a check for V_MUST_DEFs.
2975         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2976         * tree-ssa-alias.c (global_var): Update comment.
2977         (compute_may_aliases): Ditto.
2978         (compute_points_to_and_addr_escape): Rename occurences of vdef
2979         to v_may_def. Also add code to mark variables in V_MUST_DEF
2980         operands as being written to.
2981         (group_aliases): Update comment.
2982         (maybe_create_global_var): Ditto.
2983         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2984         Also add a check for V_MUST_DEFs on GIMPLE registers.
2985         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2986         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2987         to v_may_def. Also add code to mark all V_MUST_DEF operands
2988         VARYING.
2989         (initialize): Ditto.
2990         (set_rhs): Rename occurences of vdef to v_may_def. Also add
2991         code to update SSA_NAMEs in V_MUST_DEFs.
2992         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2993         to v_may_def.
2994         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2995         occurences of vdef to v_may_def. Also add code to mark statements
2996         with V_MUST_DEFs as necessary.
2997         (propagate_necessity): Rename occurences of vdef to v_may_def.
2998         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2999         occurences of vdef to v_may_def. Also add code to mark operands
3000         in V_MUST_DEFs for renaming.
3001         (eliminate_redundant_computations): Rename occurences of vdef
3002         to v_may_def.
3003         (record_equivalences_from_stmt): Rename occurences of vdef
3004         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3005         (optimize_stmt): Remove unnesessary variable vdefs. Update
3006         comment.
3007         (register_definitions_for_stmt): Rename occurences of vdef
3008         to v_may_def. Also add code to register definitions made with
3009         V_MUST_DEFs.
3010         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3011         (fix_stmt_v_may_defs): This.
3012         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3013         (dse_optimize_stmt): Ditto.
3014         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3015         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3016         used in virtual operators.
3017         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3018         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3019         renaming.
3020         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3021         definitions.
3022         (build_vdefs): Renamed to...
3023         (build_v_may_defs): This.
3024         (build_v_must_defs): New variable.
3025         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3026         v_may_def_ops.
3027         (append_vdef): Replace with...
3028         (append_v_may_def): This.
3029         (append_v_must_def): New function.
3030         (NUM_FREE): Increment for V_MUST_DEF
3031         (optype_freelist): Increment its size for V_MUST_DEF
3032         (allocate_vdef_optype): Replace with...
3033         (allocate_v_may_def_optype): This.
3034         (allocate_v_must_def_optype): New function.
3035         (free_vdefs): Replace with...
3036         (free_v_may_defs): This.
3037         (free_v_must_defs): New function.
3038         (remove_vdefs): Replace with...
3039         (remove_v_may_defs): This.
3040         (remove_v_must_defs): New function.
3041         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3042         add code to initialize build_v_must_defs.
3043         (finalize_ssa_vdefs): Replace with...
3044         (finalize_ssa_v_may_defs): This.
3045         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3046         (finalize_ssa_v_must_defs): New function.
3047         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3048         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3049         (verify_start_operands): Rename occurences of vdef to v_may_def.
3050         Also add check for build_v_must_defs.
3051         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3052         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3053         killing definitions.
3054         (get_expr_operands): Update comment and use opf_kill_def for
3055         killing definitions.
3056         (add_stmt_operand): Replace code that appends VDEFs with code
3057         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3058         otherwise.
3059         (add_call_clobber_ops): Update comments.
3060         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3061         (v_may_def_optype_d): This.
3062         (v_must_def_optype_d): New structure.
3063         (VDEF_OPS): Replace with...
3064         (V_MAY_DEF_OPS): This.
3065         (STMT_VDEF_OPS): Same with...
3066         (STMT_V_MAY_DEF_OPS): This.
3067         (NUM_VDEFS): And...
3068         (NUM_V_MAY_DEFS): This.
3069         (VDEF_RESULT_PTR): As well as...
3070         (V_MAY_DEF_RESULT_PTR): This.
3071         (VDEF_RESULT): Same goes for...
3072         (V_MAY_DEF_RESULT): This.
3073         (VDEF_OP_PTR): And...
3074         (V_MAY_DEF_OP_PTR): This.
3075         (VDEF_OP): And...
3076         (V_MAY_DEF_OP): This.
3077         (V_MUST_DEF_OPS): New macro.
3078         (STMT_V_MUST_DEF_OPS): Ditto.
3079         (NUM_V_MUST_DEFS): Ditto.
3080         (V_MUST_DEF_OP_PTR): Ditto.
3081         (V_MUST_DEF_OP): Ditto.
3082         (remove_vdefs): Replace signature with...
3083         (remove_v_may_defs): This.
3084         (remove_v_must_defs): New function signature.
3085         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3086         with calls to remove_v_may_defs and remove_v_must_defs.
3087         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3088         Also add code that marks left occurences of operands in V_MUST_DEFs.
3089         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3090         to v_may_def. Also add check for V_MUST_DEFs.
3091         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3092
3093 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3094
3095         PR target/15653
3096         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3097         insn.
3098
3099 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3100
3101         PR web/15263
3102         * doc/install.texi: Remove superfluous linebreak.
3103
3104 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3105
3106         * builtins.c (expand_builtin): Fall back to library function call for
3107         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3108         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3109         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3110         IMAGPART_EXPR respectively.
3111
3112 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3113
3114         * sh.c (dump_table): New argument start.  Changed caller.
3115         (fixup_mova): New function.
3116         (find_barrier): Use it.
3117         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3118         If the label a mova refers to is above the mova itself, change
3119         the mova into a load.
3120         * sh.md (*casesi_worker): Rename to:
3121         (casesi_worker_1).
3122         (casesi_worker_2): New insn.
3123
3124 2004-06-10  Jason Merrill  <jason@redhat.com>
3125
3126         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3127         hook signature.
3128         * tree-gimple.h: Adjust.
3129         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3130         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3131         Use fold_convert.
3132         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3133         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3134         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3135         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3136         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3137         Gimplify valist rather than calling stabilize_va_list.
3138
3139 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3140
3141         * Makefile.in (df.o): Remove fibheap dependency.
3142         * df.h: Do not include sbitmap.h.
3143         (struct ref): New field "data".
3144         (DF_REF_DATA): New accessor macro.
3145         (struct df): Field "dom" removed.
3146         (df_analyze_subcfg): New function.
3147         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3148         (transfer_function): ... new type.
3149         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3150         (iterative_dataflow): ... new function.
3151         (enum set_representation, struct dataflow): New.
3152         * df.c: Do not include fibheap.h.
3153
3154         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3155         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3156         prune_to_subcfg, df_bb_modify): New functions.
3157         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3158         df_refs_update, df_reg_table_realloc, df_ref_create,
3159         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3160         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3161         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3162
3163         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3164         (df_rd_transfer_function, df_ru_transfer_function,
3165         df_lr_transfer_function): Type of bitmaps changed to void *.
3166         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3167         (hybrid_search): ... new function.
3168         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3169         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3170         a worklist.  Do not process basic blocks unnecessarily.
3171
3172 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3173
3174         * fold-const.c (fold_abs_const): Make extern.
3175         * tree.h (fold_abs_const): Prototype here.
3176         * builtins.c (fold_builtin_fabs): New function to transform
3177         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3178         (fold_builtin_abs): New function to transform abs, labs, llabs
3179         and imaxabs builtins into ABS_EXPR tree nodes.
3180         (expand_builtin): Fall back to a function call for abs, labs,
3181         llabs and imaxabs builtins that survive constant folding.
3182         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3183         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3184
3185 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3186
3187         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3188         leaf function without unwind info at RP 0.
3189
3190 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3191
3192         PR c++/14791
3193         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3194         (fileptr_type_node): Define.
3195         * tree.c (build_common_tree_nodes_2): Initialize
3196         fileptr_type_node to ptr_type_node.
3197         * c-common.c (c_common_nodes_and_builtins): For C++, make
3198         fileptr_type_node a distinct type copy.
3199         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3200         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3201         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3202         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3203         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3204         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3205         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3206         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3207         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3208         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3209         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3210         the above *FILEPTR* types instead of *PTR*.
3211
3212 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3213
3214         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3215         match.
3216
3217 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3218
3219         * fold-const.c (fold_not_const): New function.
3220         (fold) <ABS_EXPR>: Don't bother testing wins.
3221         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3222         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3223
3224 2004-06-09  Richard Henderson  <rth@redhat.com>
3225
3226         PR middle-end/15228
3227         * function.c (assign_parms): Always set_mem_align with the computed
3228         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3229
3230 2004-06-09  Richard Henderson  <rth@redhat.com>
3231
3232         PR opt/15108
3233         * tree-tailcall.c (find_tail_calls): Don't check early for
3234         tail_recursion failure.
3235
3236 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3237
3238         Move SSA_NAME annotations into tree_ssa_name.
3239
3240         * tree-dfa.c (create_ssa_name_ann): Remove.
3241         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3242         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3243         (struct ssa_name_ann_d): Remove.
3244         (union tree_ann_d): Update.
3245         (ssa_name_ann_t): Remove.
3246         * tree-ssa-alias.c: (get_ptr_info): New local function.
3247         Replace references to ssa_name_ann_t with struct ptr_info_def.
3248         * tree-ssa-operands.c (get_expr_operands): Likewise.
3249         * tree.h (SSA_NAME_PTR_INFO): Define.
3250         (struct ptr_info_def): Declare.
3251         (struct tree_ssa_name): Add field 'ptr_info'.
3252
3253 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3254
3255         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3256         misplaced ')'.
3257
3258 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3259
3260         * config/i386/k6.md: Rewrite using the DFA model.
3261         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3262         cost of load-operation insns for the K6.
3263         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3264         (ia32_multipass_dfa_lookahead): Likewise.
3265
3266 2004-06-09  Richard Henderson  <rth@redhat.com>
3267
3268         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3269         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3270
3271 2004-06-09  Richard Henderson  <rth@redhat.com>
3272
3273         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3274
3275 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3276
3277         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3278         (CPP_ID_DATA_H): New.
3279         (gtype-desc.o): Update dependencies.
3280         (GTFILES): Use CPP_ID_DATA_H.
3281
3282 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3283
3284         Revert:
3285         PR c++/15815
3286         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3287         * doc/extend.texi: Deprecate #pragma interface and #pragma
3288         implementation.
3289
3290 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3291
3292         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3293
3294 2004-06-09  Richard Henderson  <rth@redhat.com>
3295
3296         * basic-block.h (struct edge_def): Add goto_locus.
3297         * tree-cfg.c (make_goto_expr_edges): Set it.
3298         (disband_implicit_edges): Use it.
3299         * tree-pretty-print.c (dump_implicit_edges): Print it.
3300
3301 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3302
3303         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3304
3305 2004-06-08  Jason Merrill  <jason@redhat.com>
3306
3307         Gimplify VA_ARG_EXPR into simpler forms.
3308         * target.h: Add gimplify_va_arg_expr hook.
3309         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3310         * fold-const.c (build_fold_addr_expr)
3311         (build_fold_addr_expr_with_type): Move from gimplify.c.
3312         * tree.h: Declare them.
3313         * gimplify.c (gimplify_and_add): New fn.
3314         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3315         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3316         (gimplify_expr): Use build_fold_*.
3317         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3318         don't know how to gimplify it.
3319         * builtins.c (std_gimplify_va_arg_expr): New fn.
3320         (dummy_object): New static fn.
3321         (gimplify_va_arg_expr): New fn.
3322         (stabilize_va_list): Use build_fold_*.
3323         * tree-gimple.h: Declare new fns.
3324         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3325         (ix86_gimplify_va_arg): New fn.
3326         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3327         (ia64_gimplify_va_arg): New fn.
3328         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3329         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3330         * alias.c (get_varargs_alias_set): Just return 0 for now.
3331
3332         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3333
3334 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3335
3336         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3337         of convert.
3338         * tree-inline.c (setup_one_parameter): Likewise.
3339         * tree-sra.c (csc_build_component_ref): Likewise.
3340         * tree-ssa-ccp.c (ccp_fold): Likewise.
3341         * tree-ssa-copy.c (cprop_operand): Likewise.
3342         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3343         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3344
3345 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3346
3347         PR rtl-optimization/15521:
3348         * sched-int.h (in_post_call_group_p): Change type to enum.
3349         * sched-deps.c (sched_analyze_insn):
3350         (sched_analyze): When in_post_call_group_p is post_call_initial,
3351         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3352         and also reset in_post_call_group_p to post_call.
3353         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3354         initialize in_post_call_group_p as post_call_initial.
3355         (init_deps): initialize in_post_call_group_p to not_post_call.
3356
3357 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3358
3359         PR ada/6637
3360         * doc/install.texi: List ada, libada as options to --enable-shared
3361
3362 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3363
3364         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3365         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3366         config.in entries.
3367         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3368         if hard links are not available.