OSDN Git Service

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