OSDN Git Service

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