OSDN Git Service

PR rtl-opt/17186
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-12  Richard Henderson  <rth@redhat.com>
2
3         PR rtl-opt/17186
4         * reg-stack.c (move_nan_for_stack_reg): New.
5         (subst_stack_regs_pat): Use it.
6         (move_for_stack_reg): Handle source register not live with a nan.
7
8 2004-12-12  Richard Henderson  <rth@redhat.com>
9
10         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
11         errors across operations.
12
13 2004-12-12  Di-an Jan  <dianj@freeshell.org>  
14
15         * doc/passes.texi (Pass Manager): Correct list of source files.
16
17 2004-12-12  Richard Henderson  <rth@redhat.com>
18
19         * expr.c (emit_move_change_mode): New.
20         (emit_move_via_alt_mode): Use it.
21
22 2004-12-12  Nathanael Nerode  <neroden@gcc.gnu.org>
23             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24
25         PR middle-end/17564
26         * dojump.c (do_compare_and_jump): Only canonicalize function pointers
27         in a comparison if both sides are function pointers.
28
29 2004-12-12  Richard Henderson  <rth@redhat.com>
30
31         PR target/18932
32         * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
33         and compare_operator to propagate the input CC mode to the output.
34         * config/i386/predicates.md (compare_operator): New.
35
36 2004-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
37
38         PR tree-opt/18040
39         * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
40         CONVERT_EXPR cases.
41         (handled_component_p): Likewise.
42
43 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
44
45         * reg-stack.c (convert_regs_2): Free stack.
46
47         * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
48         comment typos.
49
50 2004-12-12  Daniel Berlin  <dberlin@dberlin.org>
51
52         * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
53         * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
54         inner loop.
55
56 2004-12-12  Diego Novillo  <dnovillo@redhat.com>
57
58         * tree-gimple.c (get_base_address): Update documentation.
59
60 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
61
62         * lcm.c (optimize_mode_switching): Free ptr even when mode_set
63         is NULL_RTX.
64
65 2004-12-12  Roger Sayle  <roger@eyesopen.com>
66
67         * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
68         its correct location during popping if we need to permute the stack
69         afterwards.  Attempt to preserve the original stack ordering.
70
71 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
72
73         * lcm.c (optimize_mode_switching): Free insert and delete in
74         the "for" loop.
75
76 2004-12-11  David Edelsohn  <edelsohn@gnu.org>
77             Ulrich Weigand  <uweigand@de.ibm.com>
78
79         PR target/18641
80         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
81         constants into all register classes intersecting with FLOAT_REGS
82         via memory.
83         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
84         * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
85         choosing register preferences.
86         (movdi_internal64): Same.
87
88 2004-12-11  Kazu Hirata  <kazu@cs.umass.edu>
89
90         * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
91         before we release an SSA_NAME.
92
93 2004-12-11  Roger Sayle  <roger@eyesopen.com>
94
95         PR middle-end/18921
96         * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
97         instead of constant_boolean_node as arg0 may have side-effects.
98
99 2004-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
100
101         * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
102         file to anonymous private map.
103
104 2004-12-10  Roger Sayle  <roger@eyesopen.com>
105
106         PR target/18002
107         PR middle-end/18424
108         * dojump.c (do_jump): When attempting to reverse the effects of
109         fold_single_bit_test, we need to STRIP_NOPS and narrowing type
110         conversions, and handle BIT_XOR_EXPR that's used to invert the
111         sense of the single bit test.
112
113 2004-12-10  Devang Patel  <dpatel@apple.com>
114
115         PR 18732
116         * gcc.c (main): Do not break out of loop when error is reported while
117         processing one source file.
118         
119 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
120
121         * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
122         (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
123         don't need any operands rewritten.
124         (rewrite_stmt): Ignore statements that don't need to be
125         rewritten.
126         (rewrite_operand): Validate that an existing SSA_NAME is
127         identical to the current reaching definition of the operand.
128
129 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
130
131         * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
132         * tree-vectorizer.c (vectorizable_load): Call it.
133         * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
134         * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
135
136 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
137
138         * regmove.c (combine_stack_adjustments_for_block): Free
139         memlist if it hasn't been freed.
140
141 2004-12-10  Ziemowit Laski  <zlaski@apple.com>
142
143         * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
144         pointer field is set before dereferencing it.
145
146 2004-12-10  Andrew Pinski  <pinskia@physics.uc.edu>
147
148         PR middle-end/18903
149         * tree-cfg.c (remove_bb): Put the moved label at the beginning
150         of the basic block.
151
152 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
153
154         * tree-data-ref.c (free_data_refs): Free each data_reference
155         object.
156
157         * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
158         call to is_gimple_min_invariant if we know the result.
159
160 2004-12-10  Jeff Law  <law@redhat.com>
161
162         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
163         redundant test of v_ann->mem_tag_kind.
164
165         * tree-ssa-operands.c (get_indirect_ref_operands): Remove
166         redundant conditional clearing opf_kill_def.
167
168 2004-12-10  Richard Sandiford  <rsandifo@redhat.com>
169
170         * config/frv/frv-modes.def: Fix comment typos.
171         (CC_NZ): Define new mode.
172         * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
173         (condexec_intop_cmp_operator): Delete.
174         * config/frv/frv.c (comparison_string): New function.
175         (frv_print_operand): Use it to handle 'c' and 'C'.
176         (relational_operator): Redefine in terms of integer_relational_operator
177         and float_relational_operator.
178         (signed_relational_operator, unsigned_relational_operator): Delete.
179         (integer_relational_operator): New predicate, combining the above.
180         Check the mode of the first operand but leave frv.md to check the rest.
181         (float_relational_operator): Just check the mode of the first operand
182         and leave frv.md to check the rest.
183         (intop_compare_operator): Assume the result is compared with zero
184         in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
185         the operand predicates.
186         (condexec_intop_cmp_operator): Delete.
187         (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
188         (frv_hard_regno_mode_ok): Handle CC_NZmode.
189         (frv_select_cc_mode): New function.
190         * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
191         (REVERSIBLE_CC_MODE): Include CC_NZmode.
192         (PREDICATE_CODES): Replace entries for signed_relational_operand and
193         unsigned_relational_operator with one for integer_relational_operator.
194         Delete entry for condexec_intop_cmp_operator.
195         * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
196         (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
197         (*combo_intop_compare2, *combo_intop_compare4): Delete.
198         (*combo_intop_compare1): Change mode to CC_NZ.
199         (*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
200         (branch_{un,}signed_true, branch_{un,}signed_false)
201         (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
202         (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
203         (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
204         (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
205         (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
206         (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
207         pattern pairs.  Use integer_relational_operator.  Remove mode from
208         icc_operand.
209
210 2004-12-10  Mark Dettinger  <dettinge@de.ibm.com>
211
212         * config/s390/s390.c (struct processor_costs): New fields ml,
213         sqdbr, sqebr.
214         (s390_rtx_costs): Added the missing handling of multiply & add,
215         square root, and umulsidi.
216
217 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
218
219         * expmed.c (synth_mult): Initialize new_limit.latency before
220         making a recursive call.
221
222 2004-12-10  Nick Clifton  <nickc@redhat.com>
223
224         * config/mn10300/mn10300.c (legitimate_address_p): Reject address
225         whose index is itself the sum of two other parts.
226
227 2004-12-10  Alan Modra  <amodra@bigpond.net.au>
228
229         * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
230
231 2004-12-10  Uros Bizjak  <uros@kss-loka.si>
232
233         * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
234
235 2004-12-09  Richard Henderson  <rth@redhat.com>
236
237         PR c/18282
238         * attribs.c (decl_attributes): Use relayout_decl.
239         * c-common.c (handle_mode_attribute): Copy all relevant type
240         parameters from the new underlying integral type.
241
242 2004-12-09  Richard Henderson  <rth@redhat.com>
243
244         * c-common.c (shorten_compare): Don't special-case min/maxval
245         for C enumerations.
246
247 2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
248
249         * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
250         the request subreg is entirely contained in the requested component.
251         (simplify_gen_subreg): Return null for CONCATs that are rejected
252         by simplify_subreg.
253         * expmed.c (store_bit_field): Create a temporary when changing the
254         value to an integer mode.
255
256 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
257
258         * real.c (ibm_extended): Correct comment.
259
260 2004-12-09  Stan Shebs  <shebs@apple.com>
261
262         * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
263         formerly in darwin-tramp.asm.
264         * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
265         * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
266         * config/rs6000/t-darwin: Add dependencies.
267
268 2004-12-09  Richard Henderson  <rth@redhat.com>
269
270         PR target/17025
271         * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
272         (test_qi_1, andqi_2): Do not promote to simode.
273
274 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
275
276         PR tree-opt/18904
277         * tree-chrec.c (chrec_convert): Use fold_convert
278         instead of convert.
279
280 2004-12-09  Matt Rice  <ratmice@yahoo.com>
281
282         PR preprocessor/18102
283         * c-incpath.c (remove_duplicates): Check for construct
284         equality.
285
286 2004-12-09  Dorit Naishlos  <dorit@il.ibm.com>
287
288         * genopinit.c (vec_realign_store_optab): Initialization removed.
289         * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
290         * optabs.h (optab_index): OTI_vec_realign_store Removed.
291         (vec_realign_store_optab): Removed.
292         * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
293         * target.h (builtin_mask_for_store): Removed.
294         * tree.def (REALIGN_STORE_EXPR): Removed.
295         * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
296         (altivec_builtin_mask_for_store): Removed.
297         (altivec_init_builtins): Removed initialization of
298         altivec_builtin_mask_for_store.
299
300         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
301         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
302
303 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
304
305         * tree.def (SET_TYPE): Remove.
306         (CONSTRUCTOR): Update description.
307         * builtins.c (type_to_class) Remove SET_TYPE case.
308         * dbxout.c (dbxout_type): Likewise.
309         * dwarf2out.c (is_base_type): Likewise.
310         (gen_set_type_die): Remove.
311         (gen_type_die): Remove SET_TYPE case.
312         * expr.c (count_type_elements): Likewise.
313         (mostly_zeroes_p): Likewise.
314         (store_constructor): Likewise.
315         * print_tree.c (print_node): Likewise.
316         * stor-layout.c (layout_type): Likewise.
317         * tree-browser.c (browse_tree): Likewise.
318         * tree-inline.c (remap_type): Likewise.
319         * tree-pretty-print.c (dump_generic_node): Likewise.
320         * tree.c (type_contains_plaeholder_1, type_hash_eq,
321         variably_modified_type_p, initializer_zerop): Likewise.
322         * tree.h (SET_OR_ARRAY_CHECK): Remove.
323         (AGGREGATE_TYPE_P): Remove SET_TYPE check.
324         (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
325         * typeclass.h (enum type_class): Remove set_type_class.
326         * varasm.c (const_hash_1): Remove SET_TYPE case.
327         (compare_constant, copy_constant, output_constant): Likewise.
328         * config/i386/i386.c (classify_argument): Likewise.
329         * config/ia64/ia64.c (hfa_element_mode): Likewise.
330         * config/sparc/sparc.c (sparc_type_code): Likewise.
331
332         PR c++/16681
333         * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
334
335 2004-12-08  Richard Henderson  <rth@redhat.com>
336
337         * config/i386/i386.md: Use FLAGS_REG everywhere.
338
339 2004-12-08  Eric Christopher  <echristo@redhat.com>
340
341         * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
342         to avoid call to default function.
343
344 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
345
346         PR 17982
347         * varasm.c (pending_assemble_externals): New static.
348         (assemble_external_real): Meat of assemble_external split out
349         to this new function.
350         (process_pending_assemble_externals): New function.
351         (assemble_external): Use gcc_assert.  If flag_unit_at_a_time
352         is true and the basic test passes, merely cons the decl onto
353         the pending list to be handled later.
354         * tree.h: Declare process_pending_assemble_externals.
355         * cgraphunit.c (cgraph_optimize): Call it.
356
357         * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
358
359 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
360
361         * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
362         and simplifying FOR_EACH_EDGE.
363
364 2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
365
366         * config/frv/frv.c (frv_sort_insn_group): Always initialize
367         packet_group->nop.
368
369 2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
370
371         PR c++/18672
372         * gimplify.c (canonicalize_addr_expr): Cope with array of
373         incomplete type.
374         (gimplify_conversion): Remove redundant checks.
375
376         * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
377
378 2004-12-08  Uros Bizjak  <uros@kss-loka.si>
379
380         * config/i386/i386.c (output_387_binary_op,
381         ix86_prepare_fp_compare_args): Fix is_sse condition.
382
383 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
384
385         * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
386         argument.
387
388         * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
389         Use EFLAGS_P only when fcomi insn should be used. Fix handling
390         of eflags_p variable. Change alt table accordingly. For non-fcomi
391         compare insn always use trailing fnstsw insn. Fix intmode
392         calculation for ficom insn.
393         (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
394         ix86_free_from_memory when "pushed" is specified.
395         (ix86_expand_branch): Change call to ix86_split_fp_branch.
396
397         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
398         Change eflags_p parameter in call to output_fp_compare.
399         (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
400         (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
401         *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
402         parameter in call to output_fp_compare.
403         (*cmpfp_2_u): Remove.
404         (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
405         in call to output_fp_compare.
406         (*ficom_1): Remove insn definition and corresponding define_split.
407         (*cmpfp_si): New insn definition.
408         (*fp_jcc_8): New insn definition. Add new splitters for
409         "memory_operand" and "register_operand".
410         (define_split): Add new parameter in call to ix86_split_fp_branch.
411
412         config/i386/predicates.md (float_operator): New predicate.
413
414 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
415
416         * c-common.c (verify_tree): Don't check code length if we know
417         we are handling tcc_unary.
418         * print_tree.c (print_node): Remove code to handle RTL
419         appearing as a part of a tree node.
420         * tree-gimple.c (recalculate_side_effects): Rename fro as len.
421         * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
422         (PROCESS_ARG): Don't refer to fro.
423         (build2_stat, build3_stat, build4_stat): Don't compute fro.
424
425 2004-12-07  Roger Sayle  <roger@eyesopen.com>
426
427         PR middle-end/18293
428         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
429         (expand_mult): Special case powers of two to avoid synth_mult.
430         * loop.c (product_cheap_p): Handle case where expand_mult does
431         require/generate any instructions (i.e. multiplication by zero).
432
433 2004-12-07  Richard Henderson  <rth@redhat.com>
434
435         * tree-pretty-print.c (dump_array_domain): Split out from
436         dump_generic_node; fix off-by-one error on zero-based array bounds.
437         (dump_generic_node): Use it.
438         (print_declaration): Likewise.
439
440 2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
441
442         * doc/invoke.texi: Adjust default values for
443         large-function-growth and inline-unit-growth to match
444         params.def.  Clarify used algorithm.
445
446 2004-12-07  David Mosberger  <davidm@hpl.hp.com>
447
448         PR target/18443
449         * config/ia64/ia64.c (ia64_assemble_integer): Add support for
450         emitting unaligned pointer-sized integers.
451
452 2004-12-07  Steven Bosscher  <stevenb@suse.de>
453
454         PR c/18867
455         * c-typeck.c (c_start_case): Set orig_type to error_mark_node
456         when the type of the controlling expression is not a valid type.
457
458 2004-12-07  Steven Bosscher  <stevenb@suse.de>
459
460         PR tree-optimization/17340
461         * tree-ssa-pre.c (compute_antic): Fix comment.
462         (compute_avail): Do not recurse, instead do a DFS using a stack
463         and a loop.
464         (execute_pre): Adjust.
465
466 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
467
468         * c-tree.h (struct lang_type): Rename 'objc_protocols' field
469         to 'objc_info'.
470
471 2004-12-07  Eric Christopher  <echristo@redhat.com>
472
473         PR target/16317
474         * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
475
476 2004-12-07  Eric Christopher  <echristo@redhat.com>
477
478         * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
479         prototype...
480         * config/mips/mips.c: ... here. Make static.
481
482 2004-12-07  Eric Christopher  <echristo@redhat.com>
483
484         PR target/18442
485         * config/mips/mips.c (mips_vector_mode_supported_p): New function.
486         (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
487
488 2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>
489
490         * c-common.c, expr.c, fold-const.c, print-tree.c,
491         tree-gimple.c, tree-inline.c, tree-pretty-print.c,
492         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
493         first_rtl_op with TREE_CODE_LENGTH.
494         * tree.c (first_rtl_op): Remove.
495         Replace uses of first_rtl_op with TREE_CODE_LENGTH.
496         * tree.h: Remove the prototype for first_rtl_op.
497
498 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
499
500         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
501         Revert 2004-12-01 change.
502
503 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
504
505         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
506
507 2004-12-06  DJ Delorie  <dj@redhat.com>
508
509         * reload.c (find_valid_class): Fix logic to test inner mode as well.
510         (push_reload): Pass inner mode.
511
512 2004-12-06  Eric Christopher  <echristo@redhat.com>
513
514         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
515
516 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
517
518         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
519
520 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
521             Kazu Hirata  <kazu@cs.umass.edu>
522
523         PR tree-optimization/18601
524         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
525         (tree_forwarder_block_p): Do not consider blocks that are its own
526         successors forwarders.
527         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
528         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
529         thread_jumps.
530         * tree-flow.h (bb_ann_d): Remove forwardable.
531
532 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
533
534         * expr.c (expand_expr_real_1): Remove an "if" whose condition
535         is always false.
536
537 2004-12-06  Roger Sayle  <roger@eyesopen.com>
538
539         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
540         for loops whose conditions are known at compile-time.
541         * gimplify.c (append_to_statement_list_1): Remove side_effects
542         parameter, this function should never be called if its false.
543         (append_to_statement_list): Only call append_to_statement_list_1
544         if t is non-NULL tree with side-effects.
545         (append_to_statement_list_force):  Likewise, if t is not NULL.
546
547 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
548
549         * bt-load.c (btr_def_s): New member own_end;
550         (add_btr_to_live_range): Add second parameter.  Changed caller.
551         (clear_btr_from_live_range): Clear btrs_live_at_end bit
552         for the register its definition basic block if own_end is set.
553         (augment_live_range): Also take btrs_live_at_end into account.
554         (combine_btr_defs): Don't bother with
555         other_def->other_btr_uses_after_use if it pertains to a different
556         register.
557         (move_btr_def): Set def->other_btr_uses_before_def after
558         calling combine_btr_defs."
559
560         * bt-load.c (augment_live_range): New argument full_range.
561         Changed all callers.
562
563         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
564         taking new btr assignment into account.
565
566 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
567
568         * tree-ssa-alias.c (create_global_var): Use void_type_node,
569         not size_type_node.
570
571 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
572
573         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
574         VOID_TYPE.
575
576 2004-12-05  Richard Henderson  <rth@redhat.com>
577
578         PR target/18841
579         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
580         (builtin_setjmp_receiver_er_sl_1): Use it.
581         (builtin_setjmp_receiver_er_1): Likewise.
582         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
583         (builtin_setjmp_receiver): Don't split for explicit relocs until
584         after reload.
585         (exception_receiver): Likewise.
586
587 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
588
589         * mklibgcc.in (vis_hide): Add the prototype for the test.
590
591 2004-12-05  Roger Sayle  <roger@eyesopen.com>
592
593         * c-typeck.c (c_finish_loop): Improve initial implementations
594         for loops whose conditions are known at compile-time.
595
596 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
597
598         * builtins.c: Fix comment typos.
599
600 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
601
602         PR middle-end/18730
603         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
604         the first/last insn is a sequence, return the first/last insn of the
605         sequence.
606
607         PR bootstrap/18804
608         * mklibgcc.in (vis_hide): Use implementation instead of declaration
609         for test function.
610
611 2004-12-04  Richard Henderson  <rth@redhat.com>
612
613         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
614         use ofs in BWX two byte special case.
615         (alpha_expand_unaligned_store): Likewise.
616
617 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
618
619         * gcse.c (gcse_main): Add a comment.
620
621 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
622
623         PR middle-end/17909
624         * builtins.c (fold_builtin_next_arg): Export and return true
625         when there is a warning or an error.
626         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
627         return const0_rtx.
628         (expand_builtin): Likewise.
629         * gimplify.c (gimplify_call_expr): Error out if there is not
630         enough arguments to va_start. Call fold_builtin_next_arg also
631         on the second argument.
632         * tree.h (fold_builtin_next_arg): Prototype.
633
634 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
635
636         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
637         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
638         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
639         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
640         shlib_dir and shlib_so_name.
641         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
642         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
643         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
644         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
645         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
646         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
647
648 2004-12-03  Roger Sayle  <roger@eyesopen.com>
649
650         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
651
652 2004-12-03  Richard Henderson  <rth@redhat.com>
653
654         * alias.c (component_uses_parent_alias_set): Rename from
655         can_address_p.  Return bool.  Reverse the sense of the result.
656         Reinstate the check for alias set zero.
657         (get_alias_set): Update to match.
658         * alias.h (component_uses_parent_alias_set): Likewise.
659         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
660         * expr.c (expand_assignment): Likewise.
661         * expr.h: Remove commented out prototypes that were moved to alias.h.
662
663 2004-12-03  Richard Henderson  <rth@redhat.com>
664
665         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
666         (TARGET_CANNOT_FORCE_CONST_MEM): New.
667
668 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
669
670         PR middle end/18718
671         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
672         in pairs.
673         * sched-ebb.c (schedule_ebb): Likewise.
674
675 2004-12-03  Andreas Schwab  <schwab@suse.de>
676
677         * Makefile.in (HOSTHOOKS_DEF_H): Define.
678         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
679         (host-default.o): Likewise.
680
681 2004-12-03  Eric Christopher  <echristo@redhat.com>
682
683         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
684         pophi): Add number of arguments to name so that the
685         pattern is recognized as a named pattern.
686
687 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
688
689         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
690
691 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
692
693         * config/rs6000/rs6000.c (rs6000_override_options): Protect
694         darwin_one_byte_bool with #if.
695
696 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
697
698         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
699
700 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
701
702         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
703
704 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
705
706         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
707         Set libstdcxx_incdir directly.
708         * configure: Regenerate.
709
710 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
711
712         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
713         "if" whose condition is always true.
714
715         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
716         INSN_P.
717
718 2004-12-02  Stan Shebs  <shebs@apple.com>
719
720         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
721         Darwin default to one-byte bools.
722
723 2004-12-02  Richard Henderson  <rth@redhat.com>
724
725         PR 18774
726         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
727
728 2004-12-03  Ben Elliston  <bje@au.ibm.com>
729
730         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
731         type and its methods.
732
733 2004-12-02  Richard Henderson  <rth@redhat.com>
734
735         * expr.c (write_complex_part): Use simplify_gen_subreg when the
736         submode is at least as large as a word.
737         (read_complex_part): Likewise.
738
739 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
740
741         PR bootstrap/18532
742         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
743         multilib at a time. Don't build the default set. Don't add
744         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
745         filter for shared libunwind and libgcc.
746
747 2004-12-02  Roger Sayle  <roger@eyesopen.com>
748
749         PR target/18759
750         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
751         already been specified, ignore the -momit-leaf-frame-pointer option.
752
753 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
754
755         * varasm.c (make_decl_rtl): Add the missing `;'.
756
757 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
758
759         * tree.c (is_attribute_p): Split out to ..
760         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
761         of strlen and compare the string lengths before calling strcmp.
762         (lookup_attribute): Call is_attribute_with_length_p instead of
763         is_attribute_p.
764
765 2004-12-02  Devang Patel  <dpatel@apple.com>
766
767         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
768         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
769         * config/i386/darwin.h (CC1_SPEC): Same.
770
771 2004-12-02  Richard Henderson  <rth@redhat.com>
772
773         * optabs.c (lowpart_subreg_maybe_copy): New.
774         (expand_unop, expand_abs_nojump): Use it.
775
776 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
777
778         * sh.md (extv, extzv): Add pattern predicate.
779
780 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
781
782         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
783         is not null.
784
785         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
786         is not null.
787
788         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
789
790 2004-12-02  Jeff Law  <law@redhat.com>
791
792         * tree-eh.c: Revert yesterday's change.
793
794 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
795
796         * varasm.c (decode_reg_name): Revert change to check for zero
797         length strings.
798         (make_decl_rtl): Make sure that we call decode_reg_name only
799         when needed.
800
801 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
802
803         PR tree-opt/18716
804         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
805         then and else labels.
806
807 2004-12-02  Andreas Schwab  <schwab@suse.de>
808
809         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
810         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
811         (STAGE2_FLAGS_TO_PASS): Likewise.
812
813         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
814
815 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
816
817         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
818         now-redundant AC_SUBSTs.
819         * aclocal.m4: Include ../config/gcc-version.m4.
820         * configure: Regenerate.
821
822 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
823
824         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
825         #ifdef RELOCATABLE_NEEDS_FIXUP.
826
827 2004-12-01  Roger Sayle  <roger@eyesopen.com>
828
829         PR target/9908
830         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
831         Intel assembler syntax by using %A1 instead of %*%1.
832
833 2004-12-01  Richard Henderson  <rth@redhat.com>
834
835         * expr.c (expand_assignment): Handle CONCAT both as a final
836         destination and as a middle point.
837
838 2004-12-01  Jeff Law  <law@redhat.com>
839
840         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
841         (honor_protect_cleanup_actions): Only create save_eptr and
842         save_filt if they do not already exist.
843         (lower_eh_constructs): Wipe all knowledge of save_eptr and
844         save_filt before returning.
845
846 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
847
848         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
849
850 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
851
852         PR target/16952
853         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
854         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
855         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
856         of target_flags_explicit.
857         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
858         case.  Define as 0 for non-biarch.
859
860 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
861
862         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
863         Change temporary file tag from a prefix to an infix.
864
865 2004-12-02  Andreas Schwab  <schwab@suse.de>
866
867         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
868
869 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
870
871         PR tree-opt/18763
872         PR tree-opt/18746
873         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
874         the statements if aliases_computed_p is true.
875
876 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
877
878         * Makefile.in (WERROR): New variable.
879         (STRICT2_WARN): Use it.
880         (STAGE2_FLAGS_TO_PASS): Likewise.
881         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
882
883 2004-12-01  Richard Henderson  <rth@redhat.com>
884
885         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
886         offsetting.
887
888 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
889
890         PR tree-optimization/18291
891         * tree-ssa-copy.c (merge_alias_info): Fix merging of
892         flow-sensitive alias information.  If the new pointer has no
893         name tag, copy it from the original pointer.  Otherwise, make
894         sure that the pointed-to sets have a common intersection.
895
896 2004-12-01  Richard Henderson  <rth@redhat.com>
897
898         PR rtl-opt/15289
899         * emit-rtl.c (gen_complex_constant_part): Remove.
900         (gen_realpart, gen_imagpart): Remove.
901         * rtl.h (gen_realpart, gen_imagpart): Remove.
902         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
903         gen_realpart/gen_imagpart.
904         * expr.c (write_complex_part, read_complex_part): New.
905         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
906         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
907         emit_move_multi_word): Split out from ...
908         (emit_move_insn_1): ... here.
909         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
910         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
911         * function.c (assign_parm_setup_reg): Hard-code transformations
912         instead of using gen_realpart/gen_imagpart.
913
914         * expr.c (optimize_bitfield_assignment_op): Split out from ...
915         (expand_assignment): ... here.  Use handled_component_p to gate
916         get_inner_reference code.  Simplify MEM handling.  Special case
917         CONCAT destinations.
918
919         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
920         of gen_rtx_SUBREG directly.
921
922 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
923             Nathan Sidwell  <nathan@codesourcery.com>
924
925         PR target/17107
926         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
927         (sgt): Same.
928         (sle): Same.
929         (slt): Same.
930
931 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
932
933         PR middle-end/18667
934         * params.c (set_param_value): Add range check.
935         * params.def: Add min and max values. Reformat long strings.
936         * params.h (struct param_info): Add min and max fields.
937         (enum compiler_param): Adjust DEFPARAM.
938         * toplev.c (lang_independent_params): Likewise.
939
940 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
941
942         PR target/12817
943         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
944
945 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
946
947         * doc/standards.texi: Update for C99 TC2.
948
949 2004-11-30  Jeff Law  <law@redhat.com>
950
951         * sbitmap.c (sbitmap_any_common_bits): New function.
952         * sbitmap.h (sbitmap_any_common_bits): Prototype.
953         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
954         No longer allocate/free "psp", "pss" sbitmaps.
955         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
956         the "res" sbitmap.
957         (group_aliases): Similarly.
958
959 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
960
961         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
962         uninitialized variable.
963
964 2004-11-30  Eric Christopher  <echristo@redhat.com>
965
966         * fold-const.c (fold_widened_comparison): Make sure that we're
967         passing an INTEGER_TYPE to int_fits_type_p.
968         (fold): Clean up comment.
969
970 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
971
972         * mklibgcc.in: Correct calculation of libgcc_s_soname and
973         libunwind_soname.  Use $out, not $outS, in commands for
974         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
975         library build rules, make $libunwind_so and $libgcc_s_so
976         depend on them in the normal fashion, and filter those objects
977         out of @shlib_objs@.
978
979 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
980
981         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
982
983 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
984
985         PR tree-opt/18298
986         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
987         pass right after fold builtins.
988
989 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
990
991         * config/s390/s390-modes.def: Added cc modes documentation.
992         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
993         s390_expand_addcc): Added cc mode comments.
994         * config/s390/s390.md: Removed old cc mode documentation.
995
996 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
997
998         * config/s390/s390.c (struct processor_costs): New data type.
999         (s390_cost, z900_cost, z990_cost): New global variables.
1000         (override_options): Initialize s390_cost.
1001         (s390_rtx_costs): Reimplement.
1002
1003 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
1004
1005         Fix PR tree-optimization/18673
1006
1007         * tree-ssa-pre.c: Remove splay-tree.h include.
1008         (bitmap_value_replace_in_set): Fix to add if it does not exist.
1009         (find_or_generate_expression): Remove now-wrong condition.
1010         (create_expression_by_pieces): Fix condition and comment reason
1011         for it.
1012         (insert_aux): Fix condition and comment reasons for it.
1013         Factor insertion code from here.
1014         (insert_into_preds_of_block): To here.  Fix conditions in factored
1015         function and comment reasons for them.
1016
1017 2004-11-30  Ira Rosen  <irar@il.ibm.com>
1018
1019         PR tree-opt/18607
1020         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
1021         variable for data_reference when looking for memtag.
1022
1023 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
1024
1025         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
1026         deps_seen.
1027
1028 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
1029
1030         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
1031         tree_low_cst instead of TREE_INT_CST_LOW.
1032
1033 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
1034
1035         PR target/18173
1036         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
1037         decls that are assembled before vectorization takes place.
1038         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
1039
1040 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
1041
1042         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
1043         if local_alloc modified jumps.
1044
1045 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
1046
1047         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
1048         on TLS symbols.
1049         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
1050         check.
1051
1052 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
1053
1054         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
1055         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
1056
1057         * mklibgcc.in: Drastic restructure for comprehensibility.
1058         Remove the old hidden-directive hack.
1059         Eliminate support for .txt files in LIB2ADD etc (never used).
1060         Eliminate support for assembly source files in LIB2ADDEH* and
1061         LIBUNWIND (also never used).
1062         Build up dependency lists for libraries incrementally.
1063         If we have SHLIB_LINK, compile each file twice, once for the
1064         static and once for the shared library; also probe for
1065         -fvisibility=hidden in the generated libgcc.mk.  If found,
1066         pass that and -DHIDE_EXPORTS to the compilation of every C
1067         source file going into the static library.  If found, generate
1068         hidden-directive lists for every assembly source file going
1069         into the static library, but incorporate them with -include
1070         instead of ld -r.
1071         Write comments into generated libgcc.mk to facilitate debugging.
1072         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
1073         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
1074
1075         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
1076         -Zdynamiclib case.
1077
1078 2004-11-29  Richard Henderson  <rth@redhat.com>
1079
1080         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
1081         (handled_component_p): Likewise.
1082         * alias.c (can_address_p): Reformat and simplify.  Handle
1083         REAL/IMAGPART_EXPR.  Do not disable addressability based on
1084         alias set zero.
1085         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
1086         check for REAL/IMAGPART_EXPR.
1087         * gimplify.c (gimplify_compound_lval): Likewise.
1088         * tree-cfg.c (verify_expr): Likewise.
1089         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
1090         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
1091         (convert_local_reference): Likewise.
1092         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
1093
1094 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
1095
1096         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
1097
1098 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1099
1100         PR pch/14940
1101         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
1102         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
1103         and host_xmake_file using new host configuration files.
1104
1105 2004-11-29  Roger Sayle  <roger@eyesopen.com>
1106
1107         * reg-stack.c (change_stack): Improve algorithm used to pop regs
1108         off the stack to maximize ffreep usage and reduce fxch count.
1109
1110 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
1111
1112         PR middle-end/18596
1113         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
1114         on errors.
1115
1116 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1117
1118         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
1119         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
1120
1121 2004-11-30  Ben Elliston  <bje@au.ibm.com>
1122
1123         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
1124
1125 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1126
1127         PR c/18479
1128         * c-common.c (handle_visibility_attribute): When the type decl
1129         is really a identifier node, warn about being ignored and return.
1130
1131 2004-11-29  Richard Henderson  <rth@redhat.com>
1132
1133         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
1134
1135 2004-11-29  Steven Bosscher  <stevenb@suse.de>
1136
1137         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
1138         Remove CASE_DROPS_THROUGH checks, it is never defined.
1139         * cfglyout.c (fixup_reorder_chain): Likewise.
1140         * cfgrtl.c (rtl_verify_flow_info): Likewise.
1141         * stmt.c (expand_case): Likewise.
1142         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
1143         it is now always 0.
1144         * system.h (CASE_DROPS_THROUGH): Poison.
1145         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1146         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1147
1148         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
1149
1150 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1151
1152         PR middle-end/18725
1153         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
1154         shared always.
1155
1156 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
1157
1158         PR tree-optimization/18712
1159         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
1160         WORK_STACK by reference.
1161         Call VEC_safe_push instead of VEC_quick_push.
1162         Update all users.
1163
1164 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
1165
1166         PR c/7544
1167         * Makefile.in (c-lang.o): Update dependencies.
1168         * c-lang.c: Include "c-pragma.h".
1169         (finish_file): Call maybe_apply_pending_pragma_weaks.
1170         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
1171         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
1172
1173 2004-11-29  Richard Henderson  <rth@redhat.com>
1174
1175         PR target/17224
1176         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
1177         outside the referenced object.
1178
1179 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
1180
1181         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
1182         EDGE_PRED instead of PHI_ARG_EDGE.
1183         * tree-ssa-live.c: Likewise.
1184         * tree-ssa-loop-manip.c: Likewise.
1185         * tree-ssa.c: Likewise.
1186
1187         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
1188         simplifying edge manipulation.
1189
1190         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
1191         EDGE_COUNT.
1192
1193         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
1194         only when needed.
1195
1196         * cfg.c (flow_obstack): Remove.
1197         (flow_firstobj): Likewise.
1198         (init_flow): Remove all uses of flow_obstack.
1199
1200 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
1201
1202         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
1203         to named_section.
1204
1205 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
1206
1207         * opts.c (decode_options): Do not set max-inline-insns-rtl.
1208         (common_handle_option): Likewise.
1209         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
1210         * params.h (MAX_INLINE_INSNS_RTL): Remove.
1211         * doc/invoke.texi (max-inline-insns-rtl): Remove.
1212
1213 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
1214
1215         PR target/9571
1216         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
1217
1218 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
1219
1220         PR middle-end/18164
1221         * gimplify.c (gimplify_asm_expr): If the length of an output operand
1222         is zero, do not process it, just let it go through.
1223
1224 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1225             Diego Novillo  <dnovillo@redhat.com>
1226
1227         PR/18662, also backported from tree-cleanup-branch.
1228         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
1229         always call maybe_clean_eh_stmt and modify_stmt.
1230
1231 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1232
1233         PR/18664
1234         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
1235         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
1236         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
1237         add an inverse VIEW_CONVERT_EXPR to const_val.
1238
1239         PR/18657
1240         * tree-nested.c (check_for_nested_with_variably_modified): New.
1241         (create_nesting_tree): Call it.
1242
1243         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
1244         special code for assigning to non-pointer.
1245         (is_escape_site): If RHS is a conversion between pointer and integer
1246         types,  this is an escape site.
1247
1248         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
1249         (store_motion): Don't move store if any edge we'd want to move it
1250         to is abnormal.
1251
1252         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
1253         non-zero lower bound.
1254
1255         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
1256
1257 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
1258
1259         PR diagnostic/17594
1260         * opts.c (find_opt): Require that the input match a switch exactly
1261         or that the switch take a joined option to be interpreted as a
1262         match for another language.
1263
1264 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
1265
1266         * timevar.def (TV_TREE_REDPHI): New timevar.
1267         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
1268
1269 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1270
1271         PR preprocessor/17651
1272         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
1273         flag_no_line_commands.
1274         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
1275         flag_no_output.
1276
1277 2004-11-28  Theodore A. Roth  <troth@openavr.org>
1278
1279         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
1280         warning if the function name does not begin with "__vector" and the
1281         function has either the 'signal' or 'interrupt' attribute.
1282
1283 2004-11-28  Theodore A. Roth  <troth@openavr.org>
1284
1285         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
1286         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
1287         atmega325, atmega3250, atmega645 and atmega6450.
1288         * config/avr/avr.h (LINK_SPEC): Ditto.
1289         (LIB_SPEC): Ditto.
1290         (LIBGCC_SPEC): Ditto.
1291         (CRT_BINUTILS_SPECS): Ditto.
1292         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
1293
1294 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1295
1296         PR preprocessor/17610
1297         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
1298
1299 2004-11-28  Jeff Law  <law@redhat.com>
1300
1301         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
1302         (pass_maybe_create_global_var): New.
1303         * tree-pass.h (pass_maybe_create_global_var): Declare.
1304         * tree-optimize.c (init_tree_optimization_passes): Link in
1305         pass_maybe_create_global_var.
1306
1307 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1308
1309         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
1310
1311 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
1312
1313         PR rtl-optimization/18420
1314         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
1315
1316 2004-11-28  Steven Bosscher  <stevenb@suse.de>
1317             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1318
1319         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
1320         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
1321         that the case is in range, to make sure the casesi insn is always
1322         in range and never falls through.
1323         (casesi1): Add comment to explain why casesi never falls through.
1324         Remove the unnamed special case casesi pattern.
1325
1326 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
1327
1328         PR target/18331
1329         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
1330         "*movdicc_real".  Only match reversible comparisons.
1331         ("*movdicc_real_nonreversible"): New pattern, split from
1332         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
1333         reversed alternatives.
1334         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
1335         Similar.
1336
1337 2004-11-27  Richard Henderson  <rth@redhat.com>
1338
1339         * config/ia64/ia64.md: Move all define_predicate's ...
1340         * config/ia64/predicates.md: ... here.  New file.
1341
1342 2004-11-27  Per Bothner  <per@bothner.com>
1343
1344         PR bootstrap/18142
1345         Re-applied following, with two modifications: add a URL for the
1346         fixed cctools; only exit if $build = $target.
1347
1348         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
1349         * configure.ac (powerpc-*-darwin*): Require assembler to support
1350         .machine directive.
1351         * configure: Regenerate.
1352
1353 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
1354
1355         PR target/16800
1356         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
1357         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
1358         Distinguish between SImode and DImode CONST_INT.
1359
1360 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
1361             Alan Modra  <amodra@bigpond.net.au>
1362
1363         PR target/16343
1364         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
1365         functions, strings and thread-local vars.
1366
1367 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
1368
1369         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
1370         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
1371         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
1372         to allow non-darwin ABIs to optimize away code.
1373         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
1374
1375 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
1376
1377         * tree.c (operand_equal_for_phi_arg_p): New.
1378         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
1379         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
1380         Replace operand_equal_p with operand_for_phi_arg_p
1381         appropriately.
1382
1383         * bb-reorder.c (find_traces_1_round): Speed up by using
1384         EDGE_COUNT instead of FOR_EACH_EDGE.
1385
1386         * fold-const.c, config/i386/linux64.h: Fix comment typos.
1387
1388 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1389
1390         PR pch/14940
1391         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
1392
1393 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
1394
1395         * config/i386/linux.h: Fix a comment typo.
1396         * doc/extend.texi: Fix a typo.
1397
1398 2004-11-27  Jeff Law  <law@redhat.com>
1399
1400         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
1401         are merged.
1402
1403 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1404
1405         * config/i386/linux64.h (REG_NAME): Define.
1406
1407 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1408
1409         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
1410         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
1411         and only afterwards convert to ctype.
1412
1413 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
1414
1415         * config/mips/mips-protos.h (function_arg_boundary): Declare.
1416         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
1417         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
1418         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
1419         * config/mips/mips.c (function_arg_boundary): New function.
1420         Impose a maximum alignment of STACK_BOUNDARY.
1421
1422 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1423
1424         PR rtl-optimization/17825
1425         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
1426         or not.
1427
1428 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
1429
1430         PR target/12769
1431         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
1432         from rs6000_default_long_calls for libcalls.
1433
1434 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1435
1436         * expmed.c (extract_bit_field): When extracting from non-integer mode,
1437         force a SUBREG into a register because we may be taking a further
1438         SUBREG of it.
1439
1440 2004-11-27  Di-an Jan  <dianj@freeshell.org>
1441
1442         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
1443
1444 2004-11-26  Robert Millan  <robertmh@gnu.org>
1445
1446         Changes for k*bsd-gnu support.
1447         * config/i386/linux.h: Define REG_NAME to allow overriding of
1448         register names in sc structure.
1449         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
1450         of sc->reg.
1451         * config.gcc: Detect x86_64-k*bsd-gnu systems.
1452
1453 2004-11-26  Jeff Law  <law@redhat.com>
1454
1455         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
1456         retrieve annotations or pointer info before it's necessary.
1457         Reorder tests for early continue of the loop.  Manually CSE
1458         SSA_NAME_VAR.
1459
1460 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
1461
1462         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
1463         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
1464         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1465         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
1466         to a fixed reg if the source is the Return Address register.
1467         Implement new Rule 15.
1468         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1469         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
1470         sparc_dwarf_handle_frame_unspec.
1471         (gen_save_register_window): New function.
1472         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
1473         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
1474         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
1475         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
1476         (sparc_asm_function_prologue): Do not emit call frame debugging info.
1477         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
1478         (sparc_expand_epilogue): Likewise.
1479         (sparc_dwarf_handle_frame_unspec): New function.
1480         * config/sparc/sparc.md (save_register_window): Remove.
1481         (save_register_windowdi): Rewrite modelled on the callframe debug info.
1482         (save_register_windowsi): Likewise.
1483
1484 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
1485
1486         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
1487         BB_HEAD, not BLOCK_HEAD.
1488
1489 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
1490
1491         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
1492         scratch insns that set a register live at the join point.
1493
1494 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
1495
1496         * cse.c, tree-ssa-operands.c: Fix comment typos.
1497
1498         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
1499
1500 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
1501
1502         PR target/18510
1503         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
1504
1505 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
1506
1507         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
1508         check that tests if all edges go to the same destination.
1509
1510         * bitmap.c (bitmap_find_bit): Speed up by traversing from
1511         head->first if that seems profitable.
1512
1513 2004-11-25  Jeff Law  <law@redhat.com>
1514
1515         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
1516         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
1517         (pass_loop_done): Use TV_TREE_LOOP_FINI.
1518
1519 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
1520
1521         PR rtl-optimization/16356
1522         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
1523         separate output register and one less jump.  Enable for powerpc64.
1524         (floatdisf2): Adjust for above.
1525
1526 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1527
1528         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
1529         (GCC_DRIVER_HOST_INITIALIZATION): Define.
1530
1531 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
1532
1533         PR middle-end/17957
1534         * tree-complex.c (vector_inner_type): New variable moved from
1535         build_word_mode_vector_type.
1536         (vector_last_type): Likewise.
1537         (vector_last_nunits): Likewise.
1538         (build_word_mode_vector_type): Use the new variables.
1539         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
1540         (GTFILES): Add tree-complex.c.
1541         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
1542
1543 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1544
1545         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
1546         __XTENSA_WINDOWED_ABI__.
1547
1548 2004-11-25  Richard Henderson  <rth@redhat.com>
1549
1550         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
1551         args_size adjustments for calls even with cfa as stack pointer.
1552         Search calls for stack adjustments after the insn is issued.
1553         (dwarf2out_frame_debug): Add after_p argument; pass it on.
1554         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
1555         * final.c (final_start_function, final_scan_insn): Likewise.
1556
1557 2004-11-25  Richard Henderson  <rth@redhat.com>
1558
1559         PR c++/6764
1560         * reload1.c (set_initial_eh_label_offset): New.
1561         (set_initial_label_offsets): Use it.
1562
1563 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1564
1565         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
1566         before calling life_analysis and release them after.
1567
1568 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
1571         duplicate code.
1572
1573 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1574
1575         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
1576         BITMAP_OBSTACK_ALLOC.
1577         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
1578
1579 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1580
1581         parts of PR rtl-opt/18463, rtl-opt/17647
1582         * cse.c (canon_for_address): New function.
1583         (find_best_addr): Call canon_for_address before getting the
1584         address's cost when checking if we should take that address.
1585
1586 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1587
1588         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
1589         "tree *" as the first argument.
1590         * tree-flow.h: Update the prototype of add_phi_arg.
1591         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
1592         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
1593         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
1594         tree-vectorizer.c: Update all call sites of add_phi_arg.
1595
1596 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1597
1598         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1599         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1600         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
1601         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
1602
1603 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
1604
1605         PR tree-optimization/18587
1606         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
1607         call clobbered caches as invalid.
1608         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
1609         indicating whether the call clobbered operand cache is valid.
1610         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
1611         pure/const call operand cache is valid.
1612         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
1613         list of operands for cached call virtual operands.
1614         (clobbered_aliased_loads, clobbered_aliased_stores,
1615         ro_call_aliased_load): New.  flags caching whether alias bits are
1616         to be set in call stmt's.
1617         (fini_ssa_operands): Remove call operand caches if present.
1618         (get_expr_operands, get_asm_expr_operands,
1619         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
1620         (get_call_expr_operands): Add call clobbered variables first.
1621         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
1622         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
1623         if it is valid, otherise fill the cache.
1624         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
1625         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
1626         in_v_may_def_list bits.
1627         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
1628         in_list bits for the v_may_def elements and empty the operand
1629         build array
1630         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
1631         VUSES by checking the in_v_may_def_list bit.
1632         (append_v_may_def, append_vuse): Use the in_list bit rather than
1633         scanning the array for duplicates.
1634
1635 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1636
1637         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
1638         displacements are not short.
1639
1640 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1641
1642         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
1643         to load addresses.
1644
1645 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
1646
1647         PR c++/18001
1648         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
1649         (lvalue_or_else): Declare.
1650         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
1651         * c-typeck.c (lvalue_use): Remove.
1652         (lvalue_or_else): Remove.
1653
1654         PR c++/18556
1655         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
1656         unemitted variables with static storage duration.
1657
1658 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
1659
1660         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
1661         message with \n.
1662
1663 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1664
1665         * config/rs6000/altivec.md (VIshort): New mode macro.
1666         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
1667         with ...
1668         (altivec_vaddu<VI_char>s): ... this.
1669         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
1670         with ...
1671         (altivec_vadds<VI_char>s): ... this.
1672         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
1673         with ...
1674         (altivec_vsubu<VI_char>s): ... this.
1675         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
1676         with ...
1677         (altivec_vsubs<VI_char>s): ... this.
1678         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
1679         with ...
1680         (altivec_vavgu<VI_char>): ... this.
1681         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
1682         with ...
1683         (altivec_vavgs<VI_char>): ... this.
1684         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
1685         (altivec_vmsumu<VI_char>m): ... this.
1686         (altivec_vmsummbm, altivec_vmsummhm): Replace
1687         with ...
1688         (altivec_vmsumm<VI_char>m): ... this.
1689         (altivec_vandc): Remove.
1690         (*andc<mode>3): Renamed to ...
1691         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
1692         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
1693         with ...
1694         (altivec_vrl<VI_char>): ... this.
1695         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
1696         with ...
1697         (altivec_vsl<VI_char>): ... this.
1698         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
1699         with ...
1700         (altivec_vsr<VI_char>): ... this.
1701         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
1702         with ...
1703         (altivec_vsra<VI_char>): ... this.
1704         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
1705         (altivec_vsum4s<VI_char>s): ... this.
1706         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
1707         with ...
1708         (altivec_vperm_<mode>): ... this.
1709         (altivec_vsel_4sf): Rename to ...
1710         (altivec_vsel_v4sf): ... here.
1711         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
1712         with ...
1713         (altivec_vsel_<mode>): ... this.
1714         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
1715         altivec_vsldoi_16qi): Rename to ...
1716         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
1717         altivec_vsldoi_v16qi): ... here.
1718         (altivec_vsldoi_4sf): Rename to ...
1719         (altivec_vsldoi_v4sf): ... here.
1720         (altivec_predicate_v4si, altivec_predicate_v8hi,
1721         altivec_predicate_v16qi): Replace with ...
1722         (altivec_predicate_<mode>): ... this.
1723         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
1724         with ...
1725         (altivec_lve<VI_char>x): ... this.
1726         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
1727         with ...
1728         (altivec_stve<VI_char>x): ... this.
1729         (absv16qi2, absv8hi2, absv4si2): Replace
1730         with ...
1731         (abs<mode>2): ... this.
1732         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
1733         with ...
1734         (altivec_abss_<mode>): ... this.
1735         (vec_realign_load_v16qi, vec_realign_load_v8hi,
1736         vec_realign_load_v4si): Replace with ...
1737         (vec_realign_load_<mode>): ... this.
1738         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
1739         insn names.
1740         (rs6000_expand_ternop_builtin): Likewise.
1741
1742 2004-11-25  Andrew Haley  <aph@redhat.com>
1743
1744         * gcc.c (process_command): Don't supply -v to linker.
1745
1746 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1747
1748         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
1749         instead of `%s' in diagnostic.
1750
1751 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1752
1753         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
1754         (FREE_REG_SET): Adjust.
1755         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
1756         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
1757         (BITMAP_ALLOC): ... here.
1758         (BITMAP_OBSTACK_FREE): Rename to ...
1759         (BITMAP_FREE): Don't check for NULL bitmap here.
1760         * tree-ssa-pre.c (value_insert_into_set_bitmap,
1761         bitmap_set_new): Use new names.
1762
1763         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
1764         * df.c (df_free): Likewise.
1765         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
1766         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
1767
1768         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
1769         (ALLOC_REG_SET): ... here.
1770         (FREE_REG_SET): Adjust.
1771         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
1772         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
1773         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
1774         * cfgrtl.c (rtl_split_block, rtl_split_edge,
1775         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
1776         * flow.c (update_life_info, calculate_global_regs_live,
1777         allocate_bb_life_data, init_propagate_block_info): Adjust.
1778         * global.c (build_insn_chain): Adjust.
1779         * ifcvt.c (dead_or_predicable): Adjust.
1780         * loop-iv.c (simplify_using_initial_values): Adjust.
1781         * recog.c (peephole2_optimize): Adjust.
1782         * sched-deps.c (init_deps_global): Adjust.
1783
1784 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
1785
1786         * config.gcc (avr-*-rtems*): Fix typo.
1787
1788 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
1789
1790         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
1791
1792 2004-11-24  Jeff Law  <law@redhat.com>
1793
1794         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
1795         the number of queries to random elements in the ai->written_vars
1796         bitmap.
1797
1798 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1799
1800         * config/i386/i386.c (override_options): Disable x87 fancy math
1801         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
1802
1803 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1804
1805         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
1806         system header conflict on AIX 5.2.
1807         * configure: Regenerate.
1808
1809 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1810
1811         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
1812         instead of calling phi_arg_from_edge.
1813
1814         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
1815         with e->dest_idx.
1816
1817 2004-11-24  Ben Elliston  <bje@au.ibm.com>
1818
1819         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
1820         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
1821         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
1822         Likewise.
1823
1824 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1825
1826         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
1827
1828         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
1829         type will be remapped.
1830
1831 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1832
1833         * c-opts.c (c_common_post_options): Don't clear
1834         flag_inline_functions.
1835         * dojump.c (clear_pending_stack_adjust): Remove check on
1836         flag_inline_functions, it's always true.
1837         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
1838         that can never trigger.
1839         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
1840         flag_inline_trees, now that flag_inline_functions is never
1841         cleared.
1842         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
1843         flag_inline_functions at optimization levels greater than
1844         or equal to 3.  This is already done by default.
1845
1846 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1847
1848         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
1849         instead to find the PHI argument.  Do not take I as an
1850         argument.
1851         (eliminate_phi): Adjust the call to eliminate_build.  Do not
1852         take I as an argument.
1853         (rewrite_trees): Adjust the call to eliminate_phi.
1854
1855 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
1856
1857         * optabs.h (force_expand_binop): Declare.
1858         * optabs.c (force_expand_binop): Export.
1859         * stmt.c (shift_return_value): Delete.
1860         (expand_return): Don't call it.
1861         * expr.h (shift_return_value): Declare.
1862         * calls.c (shift_returned_value): Delete in favor of...
1863         (shift_return_value): ...this new function.  Leave the caller to check
1864         for non-BLKmode values passed in the msb of a register.  Take said mode
1865         and a shift direction as argument.  Operate on the hard function value,
1866         not a pseudo.
1867         (expand_call): Adjust accordingly.
1868         * function.c (expand_function_start): If a non-BLKmode return value
1869         is padded at the last significant end of the return register, use the
1870         return value's natural mode for the DECL_RESULT, not the mode of the
1871         padded register.
1872         (expand_function_end): Shift the same sort of return values left by
1873         the appropriate amount.
1874
1875 2004-11-24  Matt Austern  <austern@apple.com>
1876
1877         * recog.c (recog_memoized_1): Remove.
1878         * recog.h (recog_memoized_1): Remove declaration.
1879         (recog_memoized): Change from macro to inline function.
1880
1881 2004-11-24  Devang Patel  <dpatel@apple.com>
1882
1883         PR/18555
1884         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
1885         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
1886
1887 2004-11-24  Devang Patel  <dpatel@apple.com>
1888
1889         * gcc.c (process_command): Supply -v to linker.
1890
1891 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
1892             Paolo Bonzini  <bonzini@gnu.org>
1893
1894         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
1895         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
1896         synthetic vector.
1897         (rs6000_pass_by_reference): Split conditional into pieces.  Use
1898         GCC vector instead of synthetic vector.
1899
1900 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
1901
1902         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
1903         thread-local variable is invariant.
1904
1905 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1906
1907         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
1908         Handle TYPE_REF_CAN_ALIAS_ALL.
1909         (print_declaration): Print array dimensions like dump_generic_node.
1910
1911         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
1912         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
1913
1914 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
1915
1916         * bitmap.c (INLINE): Do not define.
1917         (bitmap_elem_to_freelist, bitmap_element_free,
1918         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
1919         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
1920
1921 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1922
1923         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
1924         find the index of a PHI argument.  Use e->dest_idx instead.
1925         Replace hint with index.
1926
1927         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
1928         with indx.
1929
1930 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
1931
1932         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
1933         regarding PT_MALLOC.
1934
1935 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1936
1937         * config/i386/i386.c (optimization_options): Use
1938         SUBTARGET_OPTIMIZATION_OPTIONS.
1939         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
1940         (TARGET_SUBTARGET_DEFAULT): Don't include
1941         MASK_OMIT_LEAF_FRAME_POINTER.
1942
1943 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1944
1945         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
1946         Define to false.
1947
1948 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1949
1950         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
1951         Use amd64 instead of 64.
1952
1953 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1954             Joseph Myers  <joseph@codesourcery.com>
1955
1956         * crtstuff.c (IN_LIBGCC2): Define it.
1957         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
1958         instead of HAVE_LD_RO_RW_SECTION_MIXING.
1959         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
1960         * dwarf2out.c (named_section_eh_frame_section): Check
1961         EH_TABLES_CAN_BE_READ_ONLY.
1962         * except.c (default_exception_section): Likewise.
1963         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
1964         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
1965
1966 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1967
1968         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
1969         index of a PHI argument.
1970
1971         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
1972         find_edge to find the index of a PHI argument.
1973
1974 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1975
1976         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
1977         and LABELED_BLOCK_EXPR.
1978         * gimplify.c (gimplify_labeled_block_expr): Remove.
1979         (gimplify_exit_block_expr): Remove.
1980         (gimplify_expr): Don't call them.
1981         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
1982         and LABELED_BLOCK_EXPR.
1983         (estimate_num_insns_1): Likewise.
1984         (walk_tree): Likewise.
1985         * tree-pretty-print.c (dump_generic_node): Don't handle
1986         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
1987         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
1988         (LABELED_BLOCK_EXPR): Likewise.
1989         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
1990         (LABELED_BLOCK_BODY): Likewise.
1991         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1992         (EXIT_BLOCK_RETURN): Removed.
1993
1994 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1995
1996         * cfgrtl.c (rtl_delete_block): Fix comment.
1997         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
1998         or BLOCK_END insn notes.
1999         * jump.c (squeeze_notes): Likewise.
2000         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
2001         EH_REGION_END notes, we never have them to begin with.
2002         * sched-deps.c (sched_analyze_insn): When updating loop notes,
2003         verify that we have indeed only recorded loop notes.
2004         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
2005         Only record loop notes.
2006
2007         * cfgexpand.c (tree_expand_cfg): Fix comment.
2008
2009         * passes.c (rest_of_compilation): Don't do a second call to
2010         convert_from_eh_region_ranges from here, it's already called
2011         from cfgexpand.c.
2012         * except.c (resolve_fixup_regions): Remove.
2013         (remove_fixup_regions): Remove.
2014         (convert_from_eh_region_ranges_1): Remove.
2015         (convert_from_eh_region_ranges): Remove the case where EH is
2016         not already lowered at the tree level.  We always lower there.
2017
2018 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
2019
2020         PR c++/16882
2021         * tree.c (make_vector_type): Move qualifiers to the vector type,
2022         use the inner type's main variant and build a main variant for
2023         the vector type if necessary.
2024         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
2025
2026 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2027
2028         * target.h (late_rtl_prologue_epilogue): Remove.
2029         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2030         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
2031         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
2032         remaining bits to...
2033         (rest_of_handle_flow2): ...here.
2034         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
2035         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2036
2037 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
2038
2039         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
2040         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
2041         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
2042
2043 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
2044
2045         * config/i386/i386.c (override_options): Move
2046         SUBTARGET_OVERRIDE_OPTIONS before defaulting
2047         flag_omit_frame_pointer.
2048
2049 2004-11-23  Richard Henderson  <rth@redhat.com>
2050
2051         * rtl.h (validate_subreg): Declare.
2052         * emit-rtl.c (validate_subreg): New.
2053         (gen_rtx_SUBREG): Use it.
2054         * simplify-rtx.c (simplify_subreg): Likewise.
2055         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
2056         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
2057         fallback whenever gen_realpart/gen_imagpart would not be able to
2058         create SUBREGs.
2059
2060 2004-11-23  Richard Henderson  <rth@redhat.com>
2061
2062         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
2063         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
2064         modes to CONCAT.
2065
2066 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
2067
2068         PR tree-optimization/18618
2069         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
2070         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
2071         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
2072         Update all users.
2073         (stmts_to_rescan): Likewise.
2074         (const_and_copies_stack): Likewise.
2075         (nonzero_vars_stack): Likewise.
2076         (vrp_variables_stack): Likewise.
2077
2078 2004-11-23  Richard Henderson  <rth@redhat.com>
2079
2080         * cse.c (record_jump_cond_subreg): New.
2081         (record_jump_cond): Use it instead of gen_lowpart.
2082
2083 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
2084             Joseph Myers  <joseph@codesourcery.com>
2085
2086         * config/sol2-c.c (solaris_register_pragmas): Use
2087         c_register_pragma_with_expansion.
2088         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
2089         * c-pragma.c (c_register_pragma): Update call to
2090         cpp_register_pragma.
2091         (c_register_pragma_with_expansion): New function.
2092         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
2093         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
2094         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
2095         #pragma align.
2096         * doc/tm.texi (c_register_pragma_with_expansion,
2097         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
2098
2099 2004-11-23  Richard Henderson  <rth@redhat.com>
2100
2101         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
2102         as mode sizes into local temporaries.  Unify failure path.
2103
2104 2004-11-23  Richard Henderson  <rth@redhat.com>
2105
2106         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
2107         * caller-save.c (mark_set_regs): Use subreg_regno instead.
2108         * final.c (alter_subreg): Likewise.
2109         * local-alloc.c (reg_is_born): Likewise.
2110
2111 2004-11-23  Richard Henderson  <rth@redhat.com>
2112
2113         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
2114         instead of using a SUBREG temporary.
2115
2116 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2117
2118         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
2119         two checks.
2120
2121 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
2122
2123         * function.h (struct function): Remove calls_longjmp.
2124         (current_function_calls_longjmp): Delete.
2125         * tree.h (ECF_LONGJMP): Delete.
2126         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
2127         (ECF_LIBCALL_BLOCK): Everybody slide down one.
2128         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
2129         * builtins.c (expand_builtin_longjmp): Don't set
2130         current_function_calls_longjmp.
2131         * calls.c (special_function_p): Mark longjmp and siglongjmp
2132         with ECF_NORETURN, not ECF_LONGJMP.
2133         (emit_call_1, expand_call, emit_library_call_value_1):
2134         Don't check for ECF_LONGJMP.
2135         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
2136         (need_fake_edge_p): Likewise.
2137
2138         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
2139         * system.h: Poison NON_SAVING_SETJMP.
2140         * function.c (use_register_for_decl)
2141         * gcse.c (compute_hash_table_work, compute_store_table)
2142         * postreload-gcse.c (record_opr_changes)
2143         * reload.c (find_equiv_reg)
2144         * reload1.c (reload)
2145         * config/i386/i386.c (ix86_can_use_return_insn_p):
2146         Remove code conditional on NON_SAVING_SETJMP.
2147         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
2148
2149         * config/i386/sysv3.h: Delete file.
2150         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
2151
2152 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
2153
2154         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
2155         the vectorization factor is greater than the iteration count.
2156         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
2157         iteration count is known.
2158
2159         (vect_build_symbol_bound): Removed. Its functionality moved to
2160         vect_generate_tmps_on_preheader.
2161         (vect_generate_tmps_on_preheader): Moved content of
2162         vect_build_symbol_bound here instead of calling it.  Changed some
2163         variables names.
2164
2165         (vect_build_loop_niters): We don't expect a new_bb to be generated -
2166         use gcc_assert.
2167         (vect_gen_niters_for_prolog_loop): Likewise.
2168         (vect_gen_niters_for_prolog_loo): Likewise.
2169
2170         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
2171         (slpeel_add_loop_guard): Likewise.
2172         (slpeel_tree_peel_loop_to_edge): Likewise.
2173         (vect_do_peeling_for_alignment): Likewise.
2174
2175         (vect_get_first_index): Missing space.
2176
2177 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
2178
2179         * config/s390/s390.md ("*iordi3"): Mark commutative.
2180         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2181
2182 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2183
2184         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
2185         greater than PHI_ARG_CAPACITY.
2186         (reserve_phi_args_for_new_edge): Initialize the new PHI
2187         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
2188         (add_phi_arg): Add a PHI argument to the slot given by
2189         E->dest_idx.
2190         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
2191         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
2192         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
2193         argument by looking at PHI_ARG_DEF.
2194         (verify_phi_args): Check for a missing PHI argument.  Remove
2195         the check for duplicate PHI arguments.
2196         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
2197         (phi_arg_d): Remove e.
2198
2199         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
2200         by restricting to the case with two outgoing edges.
2201
2202 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2203
2204         * config/s390/s390.c (s390_backchain_string): Removed.
2205         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
2206         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
2207         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
2208         TARGET_KERNEL_BACKCHAIN to reflect the new options.
2209         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
2210         (TARGET_KERNEL_BACKCHAIN): Removed.
2211         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
2212         (TARGET_PACKED_STACK): New macro.
2213         (TARGET_SWITCHES): New switches added.
2214         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
2215         removed.
2216         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
2217         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
2218         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
2219         the change in target switch semantics.
2220         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
2221         (TARGET_DEFAULT): MASK_BACKCHAIN added.
2222         * doc/invoke.texi: Added documentation for the new/changed options.
2223
2224 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
2225
2226         PR rtl-optimization/18614
2227         * simplify-rtx.c (simplify_binary_operation): Do not
2228         simplify inner elements of constant arguments of
2229         VEC_CONCAT insn.
2230
2231 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2232
2233         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
2234         0 instead of NULL.
2235
2236 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2237
2238         * tree-phinode.c (make_phi_node): Use a new variable,
2239         capacity, to receive the return value of ideal_phi_node_len.
2240
2241 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2242
2243         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
2244         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
2245         __gthread_recursive_mutex_init_function.
2246         (__gthread_key_create): Properly cast -1.
2247         (__gthread_recursive_mutex_init_function): New function.
2248         (__gthread_recursive_mutex_lock): Rewrite.
2249         (__gthread_recursive_mutex_trylock): Likewise.
2250         (__gthread_recursive_mutex_unlock): Likewise.
2251
2252 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2253
2254         * config/c4x/t-rtems: New.
2255         * config.gcc: Reflect having added c4x/t-rtems.
2256
2257 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
2258
2259         PR tree-opt/18403
2260         PR tree-opt/18505
2261         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
2262         lang_hooks.types.type_for_size instead of integer_type_node for the
2263         type of ptr_update.
2264
2265 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2266
2267         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
2268
2269 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2270
2271         * config/arm/t-rtems: New.
2272         * config.gcc: Reflect having added arm/t-rtems.
2273
2274 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2275
2276         * tree-cfg.c (tree_execute_on_growing_pred): New.
2277         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
2278         * tree-flow.h: Add a prototype for
2279         reserve_phi_args_for_new_edge.
2280         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
2281         (add_phi_arg): Don't resize a PHI array.
2282
2283 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2284
2285         * config.gcc: Add avr-*-rtems*.
2286         * config/avr/t-rtems: New.
2287         * config/avr/rtems.h: New.
2288
2289 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
2290
2291         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
2292         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
2293         Add comment to function.
2294
2295 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2296
2297         PR pch/14940
2298         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
2299
2300         PR rtl-optimization/14838
2301         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
2302         note.
2303         (get_last_nonnote_insn): Don't assume last insn is a note.
2304
2305 2004-11-22  Roger Sayle  <roger@eyesopen.com>
2306
2307         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
2308         to fold_binary_to_constant.
2309         (nondestructive_fold_unary_to_constant): Likewise, rename to
2310         fold_unary_to_constant.
2311         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
2312         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
2313         (nondestructive_fold_unary_to_constant): Likewise.
2314         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
2315         and fold_binary_to_constant.
2316         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2317         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
2318         and EXEC_UNARY with calls to fold_*nary_to_constant.
2319         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2320         (idx_find_step): Replace uses of EXEC_BINARY with calls to
2321         fold_binary_to_constant.
2322
2323 2004-11-22  Nick Clifton  <nickc@redhat.com>
2324
2325         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2326         initialisation of 'e'.
2327
2328 2004-11-22  Roger Sayle  <roger@eyesopen.com>
2329
2330         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
2331         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
2332         automatically for targets without TARGET_80387.
2333         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
2334         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
2335         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
2336         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
2337         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
2338         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
2339         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
2340         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
2341         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
2342         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
2343         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
2344         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
2345         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
2346         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
2347         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
2348         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
2349         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
2350         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
2351         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
2352         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
2353
2354 2004-11-22  Dale Johannesen  <dalej@apple.com>
2355
2356         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
2357         properly and comment.
2358
2359 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
2360
2361         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
2362         (sparc_init_builtins): New function.
2363         (sparc_init_vis_builtins): Create builtin functions for VIS
2364         instructions.
2365         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
2366         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
2367         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
2368         (def_builtin): New macro for creating builtin functions.
2369         (P): New mode macro for pointer types.
2370         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
2371         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
2372         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
2373         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
2374         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
2375         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
2376         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
2377
2378 2004-11-22  Devang Patel  <dpatel@apple.com>
2379
2380         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
2381
2382 2004-11-22  Devang Patel  <dpatel@apple.com>
2383
2384         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
2385         (if_convertible_phi_p): ... new name.
2386         (if_convertable_modify_expr_p): Rename to ...
2387         (if_convertible_modify_expr_p): ... new name.
2388         (if_convertable_stmt_p): Rename to ...
2389         (if_convertible_stmt_p): ... new name.
2390         (if_convertable_bb_p): Rename to ...
2391         (if_convertible_bb_p): ... new name.
2392         (if_convertable_loop_p): Rename to ...
2393         (if_convertible_loop_p): ... new name.
2394
2395 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2396
2397         PR target/18444
2398         * configure.ac (threading): Accept 'posix95'.
2399         * configure: Regenerate.
2400         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
2401         include sol26.h and default to posix95 threads if have_pthread_h.
2402         (sparc-*-solaris2*): Likewise.
2403         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
2404         * gthr-posix95.h: New file.
2405         * config/sol26.h: New file.
2406         * doc/install.texi (--enable-threads): Document 'posix95'.
2407
2408 2004-11-23  Ben Elliston  <bje@au.ibm.com>
2409
2410         * pointer-set.h (pointer_set_contains): Remove.
2411         * pointer-set.c (pointer_set_contains): Likewise.
2412
2413 2004-11-22  Dale Johannesen  <dalej@apple.com>
2414
2415         * calls.c (expand_call): Do not call preserve_temp_slots.
2416
2417 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
2418
2419         * tree-flow.h: Remove the prototype for remove_phi_arg.
2420         Add a prototype for remove_phi_args.
2421         * tree-phinodes.c (remove_phi_arg): Remove.
2422         (remove_phi_args): New.
2423         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
2424         of remove_phi_arg.
2425
2426         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
2427         after making an edge.
2428         (remove_edge): Call execute_on_shrinking_pred before removing
2429         an edge.
2430         (redirect_edge_succ): Call execute_on_growing_pred and
2431         execute_on_shrinking_pred.
2432         * cfghooks.c (execute_on_growing_pred): New.
2433         (execute_on_shrinking_pred): Likewise.
2434         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
2435         execute_on_shrinking_pred.
2436         Add prototypes for execute_on_growing_pred and
2437         execute_on_shrinking_pred.
2438         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
2439         execute_on_growing_pred and execute_on_shrinking_pred.
2440         (cfg_layout_rtl_cfg_hook): Likewise.
2441         * tree-cfg.c (tree_cfg_hooks): Likewise.
2442
2443         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
2444         (tree_cfg_hooks): Use it.
2445         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
2446         (ssa_redirect_edge): Don't call remove_phi_arg_num.
2447
2448         * tree-phinodes.c (remove_phi_arg_num): Make it static.
2449         * tree-flow.h: Remove the corresponding prototype.
2450
2451         * tree-ssa.c (ssa_remove_edge): Remove.
2452         * tree-flow.h: Remove the corresponding prototype.
2453         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
2454         * basic-block.h: Likewise.
2455         * tree-if-conv.c: Likewise.
2456         * tree-ssa-threadupdate.c: Likewise.
2457
2458 2004-11-23  Ben Elliston  <bje@au.ibm.com>
2459
2460         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
2461         @table to list the BSI methods.  Use individual @findex directives
2462         instead of one with a comma-separated list of index entries.
2463
2464 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
2465
2466         PR tree-optimization/18529
2467         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
2468         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
2469         (fold): Call fold_to_nonsharp_ineq_using_bound.
2470         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
2471         (number_of_iterations_cond): Fold the expressions before futher
2472         processing.
2473         (tree_simplify_using_condition): Handle case when cond or expr is
2474         an EQ_EXPR specially.
2475
2476 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
2477
2478         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
2479         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
2480
2481 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
2482             Fariborz Jahanian  <fjahanian@apple.com>
2483
2484         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
2485         TARGET_ALTIVEC_ABI.
2486         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
2487         Align 16 byte and larger vectors like Altivec.
2488         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
2489         (function_arg): Same.
2490         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
2491
2492 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2493
2494         PR tree-opt/18572
2495         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
2496         it.
2497
2498 2004-11-22  Richard Henderson  <rth@redhat.com>
2499
2500         * function.c (assign_parm_setup_block): Revert 11-13 change to
2501         forcably re-mode a (possibly BLKmode) hard register.
2502
2503 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2504
2505         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
2506
2507 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
2508
2509         * config/rs6000/power4.md: Remove delay between dispatch and issue
2510         associated with dispatch group slots 3 and 4.
2511         * config/rs6000/power5.md: Same.
2512
2513 2004-11-21  Jeff Law  <law@redhat.com>
2514
2515         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
2516         variant.
2517         * cfgbuild.c (make_edges): Likewise.
2518         * cfghooks.c (can_duplicate_block_p): Likewise.
2519         * cfgloop.c (loop_latch_edge): Likewise.
2520         * cfgloopmanip.c (force_single_succ_latches): Likewise.
2521         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2522         * predict.c (predict_loops, propagate_freq): Likewise.
2523         * tracer.c (tail_duplicate): Likewise.
2524         * tree-cfg.c (disband_implicit_edges): Likewise.
2525         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
2526
2527 2004-11-22  Nick Clifton  <nickc@redhat.com>
2528
2529         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2530         initialisation of 'e'.
2531
2532 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
2533
2534         PR rtl-optimization/18599
2535         * regrename.c (copyprop_hardreg_forward): Speed up by putting
2536         BB_VISITED flags on basic blocks as we process them.
2537
2538 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2539
2540         PR target/18531
2541         * config/rs6000/altivec.md (VI_char): New mode attribute.
2542         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
2543         (add<mode>3): ... this.
2544         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
2545         (sub<mode>3): ... this.
2546         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
2547         (smax<mode>3): ... this.
2548         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
2549         (smin<mode>3): ... this.
2550         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
2551         (umax<mode>3): ... this.
2552         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
2553         (umin<mode>3): ... this.
2554         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2555         (and<mode>3): ... this.
2556         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2557         (ior<mode>3): ... this.
2558         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
2559         (xor<mode>3): ... this.
2560         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2561         (and<mode>3): ... this.
2562         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2563         (ior<mode>3): ... this.
2564         (altivec_vnor): Replace with ...
2565         (altivec_nor<mode>): ... this.
2566         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
2567         (one_cmpl<mode>2): ... this.
2568         (altivec_vandc): New expander.
2569         (*andc<mode>3): New insn.
2570         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
2571
2572 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2573
2574         PR tree-opt/18536
2575         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
2576         creating iv instead of integer_type.
2577         (vect_build_loop_niters): Remove redundant code.
2578         (vect_transform_loop_bound): Removed (duplicates functionality of
2579         make_loop_iterate_ntimes.
2580         (vect_gen_niters_for_prolog_loop): Add documentation. Call
2581         lang_hooks.types.type_for_size to create a type of the required size.
2582         Use that type instead of integer_type. Remove redundant code.
2583         (vect_update_niters_after_peeling): Use type of niters instead of
2584         integer_type.
2585         (vect_transform_loop): Unify handling of known and unknown loop bound
2586         cases. Call make_loop_iterate_ntimes instead of
2587         vect_transform_loop_bound.
2588
2589 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2590
2591         PR target/18217
2592         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
2593         (LIB2ADDEH): Here.
2594
2595 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2596
2597         PR tree-opt/18544
2598         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
2599
2600 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2601
2602         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
2603         m32r*linux.
2604         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
2605         m32r/libgcc-glibc.ver.
2606         * config/m32r/libgcc-glibc.ver: Add New file.
2607
2608 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2609
2610         * bitmap.h (struct bitmap_obstack): New obstack type.
2611         (struct bitmap_head_def): Replace using_obstack with obstack
2612         pointer.
2613         (bitmap_default_obstack): New.
2614         (bitmap_initialize): Make inline, does not do allocation.
2615         (bitmap_release_memory): Remove.
2616         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
2617         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2618         bitmap_obstack_free, bitmap_malloc_free): Declare.
2619         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
2620         (BITMAP_FREE): Replace with ...
2621         (BITMAP_OBSTACK_FREE): ... this.
2622         (BITMAP_XFREE): Adjust.
2623         (BITMAP_INIT_ONCE): Remove.
2624         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
2625         (bitmap_default_obstack): New.
2626         (bitmap_elem_to_freelist): Adjust.
2627         (bitmap_element_allocate): Adjust. Break initialization into ...
2628         (bitmap_obstack_initialize): ... here.
2629         (bitmap_release_memory): Replace with ...
2630         (bitmap_obstack_release): ... this.
2631         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2632         bitmap_obstack_free, bitmap_malloc_free): New.
2633         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
2634         bitmap_initialize.
2635         (bitmap_initialize): Move to bitmap.h.
2636         * gengtype.c (open_base_files): Add obstack.h to ifiles.
2637         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
2638         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
2639         (INITIALIZE_REG_SET): Remove.
2640         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
2641         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
2642         (flow_obstack): Do not declare.
2643         (reg_obstack): Declare.
2644         * regs.h: Include obstack.h.
2645         * tree-optimize.c (tree_rest_of_compilation): Initialize and
2646         release bitmap obstack here.
2647         * bb-reorder.c: #include regs, not basic-block.
2648         (fix_crossing_conditional_branches): Allocate regsets from
2649         reg_obstack.
2650         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
2651         obstack.h.
2652         * caller-save.c: Include regs.h earlier.
2653         * cfg.c: Do not include basic-block.h or obstack.h.
2654         (reg_obstack): Define.
2655         * cfganal.c: Include obstack.h
2656         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
2657         earlier.
2658         * cfglayout.c: Do not include obstack.h.
2659         (flow_obstack): Remove declaration.
2660         (cfg_layout_duplicate_bb): Use reg_obstack.
2661         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
2662         * cfgrtl.c (rtl_split_block): Use reg_obstack.
2663         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
2664         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
2665         (cfg_layout_split_edge): Use reg_obstack.
2666         * cse.c: Include regs.h earlier.
2667         * ddg.c: Do not include basic-block.h.
2668         * dominance.c: Inlude obstack.h.
2669         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
2670         (calculate_global_regs_live): Likewise.
2671         (allocate_bb_life_data): Use reg_obstack.
2672         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
2673         * global.c: Do not include basic-block.h.
2674         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
2675         * graph.c: Include obstack.h.
2676         * haifa-sched.c: Do not include basic-block.h.
2677         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
2678         * local-alloc.c: Do not include basic-block.h.
2679         * loop-init.c, loop-invariant.c: Include obstack.h.
2680         * loop-iv.c: Likewise.
2681         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
2682         adjust.
2683         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
2684         * modulo-sched.c: Do not include basic-block.h.
2685         * passes.c (rest_of_handle_final): Do not call
2686         regset_release_memory.
2687         * ra-debug.c: Include regs.h earlier. Do not include
2688         basic-block.h.
2689         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
2690         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
2691         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
2692         (regset_release_memory): Remove.
2693         * resource.c: Do not include basic-block.h.
2694         * rtlanal.c: Do not include basic-block.h.
2695         * sbitmap.c: Include obstack.h.
2696         * sched-deps.c: Do not include basic-block.h.
2697         (reg_pending_sets_head, reg_pending_clobbers_head,
2698         reg_pending_uses_head): Remove.
2699         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
2700         * sched-ebb.c: Do not include basic-block.h.
2701         * sched-rgn.c: Likewise.
2702         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
2703         BITMAP_XFREE.
2704         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
2705         * tree-sra.c (decide_instantiations): Adjust bitmap
2706         initialization.
2707         * tree-ssa-dce.c: Include obstack.h.
2708         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
2709         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
2710         (bitmap_set_new): Likewise.
2711         (init_pre): Initialize bitmap obstack.
2712         (fini_pre): Release bitmap obstack.
2713         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
2714         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
2715         (mark_for_rewrite, unmark_for_rewrite): Likewise.
2716         (marked_ssa_names): Likewise.
2717         (init_ssanames): Use BITMAP_XMALLOC.
2718         (fini_ssanames): Use BITMAP_XFREE.
2719         * web.c: Include obstack.h
2720
2721 2004-11-22  Nick Clifton  <nickc@redhat.com>
2722
2723         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
2724         predecessor in the first for-loop.
2725
2726 2004-11-21  Stan Shebs  <shebs@apple.com>
2727
2728         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
2729         UNION_TYPE case.
2730         (function_arg): Move darwin test up, sniff mode first for
2731         efficiency, test for union type.
2732
2733 2004-11-21  Dale Johannesen  <dalej@apple.com>
2734
2735         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
2736
2737 2004-11-21  Jeff Law  <law@redhat.com>
2738
2739         * tree-ssa.c (verify_use): Fix comment.
2740         (verify_phi_args): Check that the number of incoming edges matches
2741         the number of PHI arguments.  Check that each PHI argument is
2742         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
2743         dead or duplicated edges.  Clear e->aux earlier and avoid separate
2744         loop to clear e->aux and test for missed edges.
2745         (verify_ssa): Remove first walk over statements.  Move checking
2746         of PHI args into verify_phi_args.  Move checking of statements
2747         with aliased stores and V_MAY_DEFS into the remaining loop over
2748         the statements.  Register defs by walking through the formal
2749         SSA_NAME table.
2750
2751 2004-11-21  Roger Sayle  <roger@eyesopen.com>
2752
2753         PR middle-end/18520
2754         * dojump.c (compare_from_rtx): Clarify mode argument in function
2755         description.  Correct order of mode/cmp_mode arguments in call to
2756         simplify_relational_operation.  Check "tem" for COMPARISON_P.
2757
2758 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
2759             David Edelsohn  <edelsohn@gnu.org>
2760
2761         PR target/17836
2762         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
2763         synthetic vectors in memory.
2764         (function_arg_boundary): Align large synthetic vectors.
2765         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
2766
2767 2004-11-21  Jeff Law  <law@redhat.com>
2768
2769         * cfg.c (update_bb_profile_for_threading): Do not rescale the
2770         successor probabilities if they are not going to change.  Pull
2771         division out of loop if we do need to rescale successor probabilities.
2772
2773         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
2774         index of the destination block for the hash value rather than
2775         hashing a pointer.
2776
2777 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2778
2779         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
2780         checks for neither argument being an array or pointer (swapping
2781         the arguments if necessary), the array argument being a pointer to
2782         or array of functions and for -Wchar-subscripts warnings upfront.
2783
2784 2004-11-20  Jeff Law  <law@redhat.com>
2785
2786         * regrename.c (copyprop_hardreg_forward): Only search for a
2787         previously processed block if the current block only has one
2788         predecessor.
2789
2790 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
2791
2792         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
2793         typos.
2794         * config/arm/arm.c: Follow spelling conventions.
2795
2796 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
2797
2798         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
2799         a bit in tune_flags.
2800         (const_double_needs_minipool): Likewise.  Split most of the code out
2801         into ...
2802         (arm_const_double_inline_cost): ... new function here.
2803         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
2804         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
2805         word constants of length 2, 3 and 4 insns respectively.
2806         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
2807         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
2808         constraints.  Set insn lenghts accordingly.
2809
2810 2004-11-19  Jeff Law  <law@redhat.com>
2811
2812         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
2813         a hash table.  Extensive modifications throughout to support
2814         that change.
2815         (struct el): New.
2816         (struct local_info): New.
2817         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
2818         fields.
2819         (redirection_data): Now a hashtable.
2820         (redirection_data_hash, redirection_data_eq): New.
2821         (lookup_redirection_data, create_duplicates): New.
2822         (create_edge_and_update_destionation_phis): New.
2823         (fixup_template_block, redirect_edges): New.
2824         (thread_block): Use hash table traversals instead of loops over
2825         varray entries or incoming edge vectors.
2826
2827 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2828
2829         * basic-block.h (edge_def): Add dest_idx.
2830         * cfg.c (unchecked_make_edge): Initialize dest_idx.
2831         (remove_edge): Simplify the disconnection of an edge from its
2832         destination.
2833         (redirect_edge_succ): Likewise.
2834         * cfghooks.c (verify_flow_info): Check the consistency of
2835         dest_idx for each edge.
2836
2837 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
2838
2839         * simplify-rtx.c (simplify_ternary_operation): Use
2840         gen_int_mode.
2841
2842 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2843
2844         * tree-cfg.c (reinstall_phi_args): New.
2845         (tree_split_edge): Use it after redirecting an edge.  Don't
2846         modify PHI_ARG_EDGE.
2847
2848 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
2849
2850         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
2851         if checking is enabled.
2852
2853 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2854
2855         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
2856         too many nested scopes.
2857
2858 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2859
2860         PR tree-opt/18181
2861         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
2862         changed to suppoer uses-after-loop and to void creating flow paths
2863         that shouldn't exist.
2864         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
2865         Modified to fit the new peeling scheme. Avoid quadratic behavior.
2866         (slpeel_add_loop_guard): Takes additional argument.
2867         (slpeel_verify_cfg_after_peeling): New function.
2868         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
2869         documentation. Use 'exit-bb' instead of creating 'new-bb'.
2870         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
2871         the new peeling scheme.
2872         (copy_phi_nodes): Function removed. Its functionality moved to
2873         update_phis_for_duplicate_loop.
2874         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
2875         moved here. Added documentation. Modified to fit the new peeling scheme.
2876         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
2877         needed - done in slpeel_tree_peel_loop_to_edge.
2878         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
2879         (vect_do_peeling_for_loop_bound): Add documentation. Call
2880         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
2881         with additional argument.
2882         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
2883
2884         (vect_finish_stmt_generation): Avoid 80 column oveflow.
2885
2886 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2887
2888         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
2889         arguments removed.
2890         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
2891         without last two arguments. Update single_exit of loops.
2892         (vect_update_niters_after_peeling): Removed. Its functionality was
2893         moved to vect_do_peeling_for_alignment.
2894         (vect_do_peeling_for_loop_bound): New name for function previously
2895         called vect_transform_for_unknown_loop_bound.
2896         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
2897         instead of code that duplicates the same functionality.
2898         (vect_do_peeling_for_alignment): Functionality of
2899         vect_update_niters_after_peeling moved here.
2900         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
2901         previously named vect_transform_for_unknown_loop_bound - for both known
2902         and unknown loop bound cases.
2903
2904 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2905
2906         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
2907         previously called verify_loop_for_duplication. All conditions compacted
2908         into one compound condition. Removed debug dumps.
2909         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
2910         functionality moved to vect_can_advance_ivs_p, and some to
2911         vect_analyze_loop_form.
2912         (vect_can_advance_ivs_p): New function. Contains functionality that was
2913         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
2914         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
2915         (vect_analyze_operations): Call vect_can_advance_ivs_p and
2916         slpeel_can_duplicate_loop_p.
2917         (vect_get_loop_niters): Added documentation.
2918         (vect_analyze_loop_form): Check the loop entry always - not only in case
2919         of unknown loop bound. Create preheader and exit bb if necessary. Apply
2920         a check that used to take place in
2921         vect_analyze_loop_with_symbolic_num_of_iters.
2922         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
2923         Remove redundant call to rewrite_into_loop_closed_ssa.
2924         (vect_compute_data_refs_alignment): Removed obsolete comment.
2925
2926 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2927
2928         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
2929         function previously called tree_duplicate_loop_to_edge.
2930         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
2931         previously called tree_duplicate_loop_to_edge_cfg.
2932         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
2933         function name.
2934         (slpeel_update_phi_nodes_for_guard): Likewise.
2935         (slpeel_make_loop_iterate_ntimes): Likewise.
2936         (slpeel_add_loop_guard): Likewise.
2937         (allocate_new_names, free_new_names): Function declaration moved to top
2938         of file.
2939         (rename_use_op, rename_def_op): Likewise.
2940         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
2941         (vect_generate_tmps_on_preheader): Function declaration moved.
2942         (vect_transform_for_unknown_loop_bound): Added missing function
2943         declaration.
2944
2945 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
2946
2947         PR tree-opt/18507
2948         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
2949         Define a VEC(tree_on_heap) for head.
2950         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2951         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2952         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
2953         the VEC(tree_on_heap) function.  Also free it before returning.
2954         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2955         for block_defs_stack.
2956         (restore_currdefs_to_original_value): Use VEC_length instead of
2957         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2958         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2959         for block_defs_stack.
2960         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2961         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2962         for block_defs_stack.
2963         (ssa_register_new_def): Likewise.
2964         (ssa_rewrite_initialize_block): Likewise.
2965         (rewrite_finalize_block): Use VEC_length instead of
2966         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2967         (ssa_rewrite_finalize_block): Likewise.
2968         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2969         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
2970         (rewrite_blocks): Initialize block_defs_stack with
2971         the VEC(tree_on_heap) function.  Also free it before returning.
2972         (rewrite_ssa_into_ssa): Likewise.
2973
2974 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
2975
2976         * config/darwin.c (machopic_data_defined_p): return 1 for
2977         MACHOPIC_DEFINED_FUNCTION.
2978
2979 2004-11-19  Jeff Law  <law@redhat.com>
2980
2981         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
2982         arguments.
2983
2984 2004-11-19  Paul Brook  <paul@codesourcery.com>
2985
2986         PR target/17735
2987         * varasm.c (default_assemble_integer): Allow pointer-sized values.
2988         Expand comment.
2989
2990 2004-11-19  Nick Clifton  <nickc@redhat.com>
2991
2992         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
2993         zero_extension and lshiftrt insns.
2994         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
2995         where appropriate.
2996         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
2997         to handle bp and bn insn patterns with a zero_extend rtx
2998         inside them.
2999
3000 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
3001
3002         * config/arm/arm.md (generic_sched): Make const.
3003
3004 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3005
3006         * emit-rtl.c (classify_insn): Make it static.
3007         * rtl.h: Remove the corresponding prototype.
3008
3009         * integrate.c (has_func_hard_reg_initial_val,
3010         get_func_hard_reg_initial_val): Make them static.
3011         * integrate.h: Remove the corresponding prototypes.
3012
3013 2004-11-19  Ben Elliston  <bje@au.ibm.com>
3014
3015         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
3016         (dw2_asm_output_delta_sleb128): Likewise.
3017         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
3018         (dw2_asm_output_delta_sleb128): Likewise.
3019
3020 2004-11-19  Adam Nemet  <anemet@lnxw.com>
3021
3022         * tree-ssa-alias.c: Fix comment.
3023
3024 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3025
3026         * tree-outof-ssa.c: Fix a comment typo.
3027
3028 2004-11-19  Ben Elliston  <bje@au.ibm.com>
3029
3030         * predict.h (predict_insn): Remove extern declaration.
3031         * predict.c (predict_insn): Make static.
3032
3033 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
3034
3035         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
3036
3037 2004-11-18  Nicolas Pitre <nico@cam.org>
3038
3039         * config/arm/arm.c (const_double_needs_minipool): New function to
3040         determine if a CONST_DOUBLE should be pushed to the minipool.
3041         (note_invalid_constants): Use it.
3042
3043 2004-11-18  Paul Brook  <paul@codesourcery.com>
3044
3045         * config/arm/arm.c (target_float_switch): New variable..
3046         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
3047         target_float_switch.
3048         * config/arm/arm.h (target_float_switch): Declare.
3049         (ARM_FLAG_SOFT_FLOAT): Remove.
3050         (TARGET_SWITCHES): Remove hard-float and soft-float.
3051         (TARGET_OPTIONS): Add hard-float and soft-float.
3052         (TARGET_DEFAULT_FLOAT_ABI): Define.
3053         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
3054         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
3055         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
3056         * config/arm/netbsd-elf.h: Ditto.
3057         * config/arm/netbsd.h: Ditto.
3058         * config/arm/pe.h: Ditto.
3059         * config/arm/unknown-elf.h: Ditto.
3060         * config/arm/wince-pe.h: Ditto.
3061         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3062         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3063         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3064
3065 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3066
3067         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
3068         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
3069         altivec_lvx_4sf): Rename and replace with ...
3070         (altivec_lvx_<mode>): ... mode macro version.
3071         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
3072         altivec_stvx_4sf): Rename and replace with ...
3073         (altivec_stvx_<mode>): ... mode macro version.
3074         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
3075         (mov<mode>): ... mode macro version.
3076         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
3077         *movv4sf_internal1): Replace with ...
3078         (*mov<mode>_internal): ... mode macro version.
3079         (get_vrsave_internal, *set_vrsave_internal, *save_world,
3080         *restore_world): Unquote output statements.
3081         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
3082         altivec_expand_st_builtin): Adjust insn names.
3083
3084 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
3085
3086         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
3087         previous change.
3088         (rs6000_override_options): Likewise.
3089         (spe_build_register_parallel): Handle complex doubles on e500v2.
3090         (rs6000_spe_function_arg): Likewise.
3091         (function_arg): Likewise.
3092         (rs6000_function_value): Likewise.
3093         (rs6000_libcall_value): Likewise.
3094
3095 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
3096
3097         * ifcvt.c (find_if_block): Move the check for the number of edges
3098         above the loops checking for complex edges.
3099         Remove the counting of edges as we use EDGE_COUNT now.
3100
3101 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3102
3103         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3104         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
3105
3106 2004-11-18  Andreas Schwab  <schwab@suse.de>
3107
3108         * config/i386/i386.md (define_peephole2): Revert last change.
3109
3110 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3111
3112         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3113         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
3114
3115 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
3116
3117         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
3118         of FOR_EACH_BB.
3119
3120 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
3121
3122         * Makefile.in (macro_list): Depend on s-macro_list.
3123         (s-macro_list): New target.
3124
3125 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3126
3127         PR target/17107
3128         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3129         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3130         (fold_range_test): Adjust.
3131         (fold_truthop): Use it.
3132         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3133         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3134
3135 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
3136
3137         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
3138         insn split constraint.
3139         (define_peephole2): Remove unneeded "&& 1" from peephole2
3140         constraints.
3141
3142 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3143
3144         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
3145         element for bsi_prev; use @findex instead.
3146
3147 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3148
3149         * opts.h (add_input_filename): Remove extern declaration.
3150         * opts.c (add_input_filename): Make static.
3151
3152 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
3153
3154         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
3155         ATTRIBUTE_UNUSED.
3156
3157 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
3158
3159         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
3160         * system.h: Poison it.
3161         * doc/tm.texi: Delete its documentation.
3162
3163 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
3164             Mark Mitchell  <mark@codesourcery.com>
3165
3166         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
3167         * config/i386/i386.c (i386_solaris_elf_named_section): New
3168         function.
3169         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
3170         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
3171         64-bit.
3172         (ASM_QUAD): Don't undefine for biarch targets.
3173         * config/i386/t-sol2: Introduce multilib support.
3174
3175 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3176
3177         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
3178
3179 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3180
3181         * cgraph.h: Replace "it's" with "its" throughout.
3182
3183 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3184
3185         * doc/rtl.texi (Flags): Grammar fix.
3186
3187 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
3188
3189         * expmed.c (alg_code): Add alg_unknown.
3190         (alg_hash_entry): New.
3191         (NUM_ALG_HASH_ENTRIES): Likewise.
3192         (alg_hash): Likewise.
3193         (synth_mult): Cache the result into alg_hash.
3194
3195 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
3196
3197         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
3198         config/rs6000/libgcc-ppc64.ver.
3199
3200 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
3201
3202         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
3203         checking if an unconditional return is followed by a barrier.
3204
3205         * jump.c (condjump_p): Remove unreachable code.
3206
3207         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
3208         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
3209         tree-ssa-live.h, tree.h: Remove unused prototypes.
3210
3211 2004-11-17  Jeff Law  <law@redhat.com>
3212
3213         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
3214         (edge_to_cases_elt): Renamed from edge_to_case_leader.
3215         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
3216         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
3217         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
3218         (get_cases_for_edge): New function.
3219         (start_recording_case_labels, end_recording_case_labels): Similarly.
3220         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
3221         chain equivalent CASE_LABEL_EXPRs together.
3222         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
3223         (make_switch_expr_edges): Do not record edge/cases here.
3224         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
3225         (split_critical_edges): Record cases around the edge splitting code.
3226         (cleanup_dead_labels): Use CASE_LABEL again.
3227         (tree_redirect_edge_and_branch): If we have a mapping from edge
3228         to cases, use it to handle redirections.  Else do it the slow way.
3229         * tree.h (CASE_LEADER_OR_LABEL): Kill.
3230         (CASE_LABEL): Revert to just looking at the tree's second operand.
3231         * tree.c (get_case_label): Kill.
3232
3233 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
3234
3235         PR tree-optimization/18307
3236         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
3237         'orig' are the same node.
3238         (collect_points_to_info_r): Do not call merge_pointed_to_info
3239         when the PHI argument is identical to the LHS.
3240
3241 2004-11-17  Steven Bosscher  <stevenb@suse.de>
3242
3243         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
3244         to insert the exit or entry block.
3245         (ssa_prop_init): Use add_control_edge to seed the algorithm.
3246
3247 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
3248
3249         * mkmap-flat.awk, mkmap-symver.awk: If the last version
3250         assigned to a symbol was '%exclude', do not emit it anywhere.
3251         If leading_underscore is true, prefix all symbols from the
3252         version scripts with a leading underscore before comparing
3253         them with nm output or emitting them.  Remove support for dot
3254         symbols.
3255         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
3256         (SHLIB_MAPFILES): Use libgcc-std.ver.
3257         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
3258         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
3259         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
3260         libgcc-excl.ver and libgcc-glibc.ver.
3261
3262         * config/sh/libgcc-excl.ver: New file.
3263         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
3264
3265 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
3266
3267         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
3268         the test when the edge has the opposite meaning, not when
3269         the first argument is invariant.
3270
3271 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
3272
3273         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
3274         doubles.
3275         (rs6000_complex_function_value): Handle e500 v2 variant.
3276
3277 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
3278
3279         Fix PR tree-optimization/18519
3280
3281         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
3282         * tree-pass.h: Add TODO_cleanup_cfg.
3283         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
3284         (ccp_finalize): Remove call to cleanup_cfg.
3285         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
3286         (pass_cd_dce): Ditto.
3287         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
3288         dump_function_to_file.
3289         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
3290         to cleanup_cfg.
3291         (pass_ch): Add TODO_cleanup_cfg.
3292         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
3293         cleanup_cfg.
3294         (pass_loop_done): Add TODO_cleanup_cfg.
3295         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
3296         (tree_ssa_phiopt): Remove call to cleanup_cfg.
3297
3298 2004-11-16  Devang Patel  <dpatel@apple.com>
3299
3300         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
3301
3302 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
3303
3304         * expmed.c, ra-colorize.c: Fix comment typos.
3305
3306         * doc/tm.texi: Fix typos.
3307
3308 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3309             Mark Mitchell  <mark@codesourcery.com>
3310
3311         PR target/6123
3312         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
3313         __pic__ if PIC.
3314
3315 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
3316
3317         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
3318         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
3319
3320 2004-11-16  Devang Patel  <dpatel@apple.com>
3321
3322         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
3323
3324 2004-11-16  Eric Christopher  <echristo@redhat.com>
3325
3326         * config/mips/mips.c: Use rtl _P predicates.
3327         * config/mips/mips.h: Ditto.
3328         * config/mips/mips.md: Ditto.
3329
3330 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
3331
3332         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
3333         the pattern.
3334
3335 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3336
3337         * config/s390/s390.c (s390_cc_modes_compatible): New function.
3338         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
3339
3340 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3341
3342         PR target/18447
3343         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
3344         before and after the insns for getting GOT address in non-PIC
3345         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
3346         is enabled.
3347
3348 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3349
3350         * gcc/cse.c (struct change_cc_mode_args): New structure.
3351         (cse_change_cc_mode_insn): New function.
3352         (cse_change_cc_mode): Use validate_change to perfom changes.
3353         (cse_change_cc_mode_insns, cse_condition_code_reg):
3354         Call cse_change_cc_mode_insn.
3355
3356 2004-11-16  Steven Bosscher  <stevenb@suse.de>
3357
3358         * stack.h: Remove.
3359
3360 2004-11-16  Steven Bosscher  <stevenb@suse.de>
3361
3362         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
3363
3364 2004-11-15  Dale Johannesen  <dalej@apple.com>
3365
3366         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
3367
3368 2004-11-15  Dale Johannesen  <dalej@apple.com>
3369
3370         * profile.c (compute_branch_probabilities):  Prevent
3371         crash with EH in RTL-based profiling.
3372
3373 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
3374
3375         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
3376         COND_EXPR_COND.
3377         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
3378         * tree-ssa-dom.c (thread_across_edge): Likewise.
3379         * tree-vectorizer.c (vect_transform_loop_bound): Replace
3380         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
3381         COND_EXPR_ELSE.
3382
3383         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
3384         (tree_flow_call_edges_add): Update the call to
3385         bsi_commit_edge_inserts.
3386         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3387         * profile.c (branch_prob): Likewise.
3388         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
3389         * tree-sra.c (scalarize_function): Likewise.
3390         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3391         * tree-ssa-pre.c (fini_pre): Likewise.
3392         * tree-flow.h: Update the prototype for
3393         bsi_commit_edge_inserts.
3394
3395 2004-11-15  Eric Christopher  <echristo@redhat.com>
3396
3397         * sched-deps.c (set_sched_group_p): Delete.
3398         (delete_all_dependencies): New function.
3399         (fixup_sched_groups): Use. New function.
3400         (sched_analyze_insn): Use.
3401
3402 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3403
3404         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
3405         RROTATE_EXPR or unknown code.
3406         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
3407         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
3408         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
3409         or unknown code.
3410
3411 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3412
3413         PR c/18498
3414         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
3415         after processing the declarator.
3416
3417 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
3418
3419         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
3420         vec_duplicate.
3421         (altivec_vspltb): Same.
3422         (altivec_vspltw): Same.
3423         (altivec_vspltisb): Same.
3424         (altivec_vspltish): Same.
3425         (altivec_vspltisw): Same.
3426         (altivec_vspltisw_v4sf): Same.
3427         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
3428         UNSPEC_VSPLTISH.
3429         Move "End of vector xor's" comment to the right place.
3430
3431 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
3432
3433         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
3434         instead of nonimmediate_operand.
3435
3436 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3437
3438         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
3439         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
3440         * config/sol2.c (solaris_output_init_fini): Update calls to
3441         ASM_OUTPUT_CALL.  Include "rtl.h".
3442
3443 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3444
3445         * config/sol2-c.c (cmn_err_char_table): Add "p".
3446
3447 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3448
3449         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
3450         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
3451
3452 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3453
3454         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
3455         within the multilib directory.
3456
3457 2004-11-15  Nick Clifton  <nickc@redhat.com>
3458
3459         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
3460         builtin assert of cpu=xstormy16.
3461
3462 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
3463
3464         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
3465         variable.
3466
3467 2004-11-14  Richard Henderson  <rth@redhat.com>
3468
3469         PR 18480
3470         * calls.c (struct arg_data): Add parallel_value.
3471         (precompute_register_parameters): Set it.
3472         (load_register_parameters): Use it.
3473         (store_one_arg): Also set it here.
3474
3475 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
3476
3477         PR tree-optimization/18431
3478         * fold-const.c (associate_trees): Do not produce x + 0.
3479         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
3480         (fold): Use them.
3481         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
3482         Moved ...
3483         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
3484         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
3485
3486 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
3487
3488         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
3489
3490 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3491
3492         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
3493         value-prof.c: Fix comment typos.
3494
3495 2004-11-14  Stan Shebs  <shebs@apple.com>
3496
3497         Basic ABI changes for passing structs by value in 64-bit Darwin.
3498         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
3499         (rs6000_override_options): Set it for 64-bit Darwin.
3500         (rs6000_parse_abi_options): Add testing options to change it.
3501         (rs6000_return_in_memory): Test whether the type is one
3502         that can be passed in registers.
3503         (darwin64_function_arg_advance): New.
3504         (function_arg_advance): Call it, plus add recursion depth
3505         argument and test when counting off arguments.
3506         (rs6000_darwin64_function_arg): New.
3507         (function_arg): Call it.
3508         (setup_incoming_varargs): Add argument to function_arg_advance.
3509         (rs6000_darwin64_function_value): New.
3510         (rs6000_function_value): Call it.
3511         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
3512         * config/rs6000/rs6000-protos.h: Update decl of
3513         function_arg_advance.
3514
3515 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
3516
3517         PR c/17279
3518         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
3519         support TImode before adding __int128_t and __uint128_t types.
3520
3521 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3522
3523         PR tree-opt/18400
3524         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
3525         (vect_transform_loop_bound): Set loop->nb_iterations.
3526
3527 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3528             Andrew Pinski  <pinskia@physics.uc.edu>
3529
3530         PR tree-opt/18425
3531         * tree-vectorize.c (vect_build_loop_niters): Do not insert
3532         NULL into the instruction stream. Initialize new_bb to NULL.
3533         (vect_update_ivs_after_vectorizer): Likewise.
3534         (vect_gen_niters_for_prolog_loop): Likewise.
3535
3536 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
3537
3538         PR tree-optimization/18431
3539         * tree-flow.h (stmt_references_memory_p): Declare.
3540         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
3541         * tree-ssa.c (stmt_references_memory_p): New function.
3542
3543 2004-11-14  Andreas Schwab  <schwab@suse.de>
3544
3545         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
3546         $(EXPR_H).
3547
3548 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3549
3550         * c-common.c (walk_stmt_tree): Remove.
3551         * c-common.h: Remove the corresponding prototype.
3552
3553         * emit-rtl.c (push_to_full_sequence): Remove.
3554         * rtl.h: Remove the corresponding prototype.
3555
3556         * cselib.c, expr.c: Fix comment typos.
3557
3558 2004-11-13  Richard Henderson  <rth@redhat.com>
3559
3560         * calls.c (precompute_register_parameters): Force all PARALLELs
3561         into pseudo registers.
3562         (load_register_parameters): Copy PARALLELs into hard registers.
3563         * function.c (assign_parm_setup_block): Copy PARALLELS into
3564         pseudo registers.  Do emit_group_store in conversion_insns.
3565         * expr.c (emit_group_load_1): Rename from emit_group_load, take
3566         tmps as an argument.  Move final copy loop ...
3567         (emit_group_load): ... here.  New function.
3568         (emit_group_load_into_temps, emit_group_move_into_temps): New.
3569         * expr.h: Declare them.
3570
3571 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3572
3573         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
3574         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
3575         with PHI_CHAIN where appropriate.
3576
3577 2004-11-13  Dale Johannesen  <dalej@apple.com>
3578
3579         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
3580         (tree_block_label): Ditto.
3581         (flush_pending_stmts): Ditto.
3582         (insert_edge_copies): Ditto.
3583         (expr_invariant_in_loop_p): Ditto.
3584         (TDF_USE_OPS): Parenthesize definition.
3585         (TDF_USE_VOPS): Ditto.
3586
3587 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
3588
3589         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
3590         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
3591         (atoll): Declare.
3592         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
3593
3594 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
3595
3596         * config/i386/i386.c (override_options): Move loop to set default
3597         tuning to correct place.
3598
3599 2004-11-13  Zak Kipling  <zak@transversal.com>
3600
3601         PR target/18300
3602         * config/i386/i386.c (classify_argument): Fix infinite loop when
3603         passing object with 3 or more base classes by value.
3604
3605 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3606
3607         * doc/md.texi (constraints) <% modifier>: Mention that it is
3608         useless when the two alternatives are strictly identical.
3609
3610 2004-11-13  Richard Henderson  <rth@redhat.com>
3611
3612         * expmed.c (extract_split_bit_field): Temporarily disable call to
3613         extract_force_align_mem_bit_field.
3614
3615 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3616
3617         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
3618         formatting.
3619
3620         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
3621         lambda-code.c, postreload.c, predict.c, tree-sra.c,
3622         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
3623
3624 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3625
3626         * doc/install.texi (automake): Correctly document that everything now
3627         will use automake 1.9.3.
3628
3629 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
3630
3631         PR target/18347
3632         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
3633         TImode.  Sorry for other non-complex larger-than-64-bit modes.
3634         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
3635
3636 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3637
3638         * doc/install.texi (automake): Document that everything now uses 1.9.
3639
3640 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3641
3642         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
3643         previous loads.
3644
3645 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3646
3647         * tree.h: Fix comment typos.
3648
3649 2004-11-13  Steven Bosscher  <stevenb@suse.de>
3650
3651         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
3652         HARD_REGISTER_NUM_P.
3653
3654         * cselib.c (new_cselib_val): Make comment correct and more detailed.
3655         * flow.c (mark_set_1): Likewise.
3656
3657         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
3658         duplicate_eh_regions): Remove.
3659         * except.h (duplicate_eh_regions): Remove prototype.
3660         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
3661         global_const_equiv_varray): Remove.
3662         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
3663         global_const_equiv_varray, set_label_in_map): Remove prototypes,
3664         extern declaration, and #define.
3665         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
3666         (struct inline_remap): Remove.
3667         * varray.c (struct element): Remove entry for const_equiv_data.
3668         * varray.h (struct const_equiv_data): Remove.
3669         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
3670         (union varray_data_tag) <const_equiv>: Remove.
3671         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
3672         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
3673
3674         * regstack.c (record_label_references): Remove unused function.
3675
3676         * rtl.def (VALUE): Update comment.
3677         (LABEL_REF): Remove unused operand 2.
3678         * rtl.h (struct rtx_def): Update for removed accessor macros.
3679         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
3680         REG_LOOP_TEST_P): Remove.
3681         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
3682         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
3683         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
3684
3685 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
3686             Eric Botcazou  <ebotcazou@libertysurf.fr>
3687
3688         PR target/18230
3689         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
3690         patterns.
3691         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
3692         (V32I): New macro for 32-bit modes.
3693         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
3694         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
3695         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
3696         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
3697         one_cmpldi_sp64): Use V64I instead of DI.
3698         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
3699         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
3700         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
3701         (nandv64i_vis, nandv32i_vis): New patterns.
3702
3703 2004-11-12  Mike Stump  <mrs@apple.com>
3704
3705         * Makefile.in: Add html support.
3706         * java/Make-lang.in: Likewise.
3707         * fortran/Make-lang.in: Likewise.
3708         * treelang/Make-lang.in: Likewise.
3709         * doc/install.texi: Likewise.
3710         * doc/makefile.texi: Likewise.
3711         * doc/sourcebuild.texi: Likewise.
3712
3713 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3714
3715         * tree-ssa-loop-manip.c: Fix a comment typo.
3716
3717 2004-11-12  Mike Stump  <mrs@apple.com>
3718
3719         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
3720         renaming this node to Concept Index.
3721         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
3722         to more closely match gcc.texi.
3723
3724 2004-11-12  Jeff Law  <law@redhat.com>
3725
3726         * tree-cfg.c (hashtab.h): Include.
3727         (struct edge_to_case_leader_elt): New structure.
3728         (edge_to_case_leader): New.
3729         (edge_to_case_leader_hash): New hashtable hasing function.
3730         (edge_to_case_leader_eq): New hashtable equality function.
3731         (record_switch_edge): New function.
3732         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
3733         (make_switch_expr_edges): Build the edge-to-case-leader
3734         hash table.  Tear down the hash table when we're done.
3735         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
3736         CASE_LABEL.
3737         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
3738         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
3739         to use new concept of case leaders to reduce overhead of
3740         redirecting outgoing edges from switch statements.
3741         * tree.c (get_case_label): New function.
3742         * tree.h (CASE_LABEL): Define in terms of get_case_label.
3743         (CASE_LEADER_OR_LABEL): Define.
3744
3745 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3746
3747         * varasm.c (output_addressed_constants): For CONST_DECLs,
3748         output the initializer if present.
3749
3750 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3751
3752         * config/rs6000/darwin.h: Fix confusing typo in comment.
3753
3754 2004-11-12  Devang Patel  <dpatel@apple.com>
3755
3756         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
3757
3758 2004-11-12  Devang Patel  <dpatel@apple.com>
3759
3760         * tree-if-conv.c (clean_predicate_lists): Use loop header
3761         and latch directly.
3762
3763 2004-11-12  Richard Henderson  <rth@redhat.com>
3764
3765         PR 17778
3766         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3767         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3768         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3769         * config/i386/i386-modes.def (XF): Use it.
3770
3771 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
3772
3773         * Makefile.in (macro_list): Use move-if-change to avoid spurious
3774         rebuilds.
3775
3776 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
3777
3778         PR c++/18416
3779         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
3780         when deciding whether to pass a variable to
3781         cgraph_varpool_finalize_decl or assemble_variable.
3782         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
3783
3784 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
3785
3786         * tree-vectorizer.c: Fix a comment typo.
3787
3788 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3789
3790         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
3791
3792 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
3793
3794         * tree-scalar-evolution.c (analyzable_condition): Remove
3795         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
3796
3797 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
3798
3799         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3800         Remove m505/roe multilib variant.
3801
3802 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3803
3804         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
3805         to load from the stack.
3806
3807 2004-11-12  Richard Henderson  <rth@redhat.com>
3808
3809         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
3810         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
3811         * toplev.h (FL2T__): Remove.
3812         (CLZ_HWI): Rename from FL2T_CLZ__.
3813         (CTZ_HWI): New.
3814         (floor_log2): Simplify.
3815         (exact_log2): New.
3816
3817 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3818
3819         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
3820         compute the first overlapping iterations.
3821
3822 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3823
3824         PR middle-end/18005
3825         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
3826         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
3827
3828 2004-11-12  Steven Bosscher  <stevenb@suse.de>
3829
3830         PR tree-optimization/18419
3831         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
3832         pointer set instead of a bitmap.
3833         (walk_use_def_chains): Create, pass and clean up that pointer_set.
3834
3835         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
3836         field an sbitmap.
3837         (init_alias_info): Allocate and zero it here.
3838         (delete_alias_info): Delete it here.
3839         (collect_points_to_info_for): Use it.
3840
3841 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3842
3843         * alias.c (record_alias_subset, addr_side_effect_eval):
3844         Make them static.
3845         * alias.h: Remove the prototype for record_alias_subset.
3846         * expr.h: Remove the commented-out prototype for
3847         record_alias_subset.
3848         * rtl.h: Remove the prototype for addr_side_effect_eval.
3849
3850         * cfglayout.c (choose_inner_scope): Make it static.
3851         * rtl.h: Remove the corresponding prototype.
3852
3853         * cfgloopmanip.c (update_single_exits_after_duplication,
3854         unloop): Make them static.
3855         * cfgloop.h: Remove the corresponding prototypes.
3856
3857         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
3858         Make them static.
3859         * c-tree.h: Remove the corresponding prototypes.
3860
3861         * explow.c (round_push): Make it static.
3862         * expr.h: Remove the corresponding prototype.
3863
3864         * varasm.c (get_named_section_flags, decl_tls_model): Make
3865         them static.
3866         * output.h: Remove the prototype for get_named_section_flags.
3867         * tree.h: Remove the prototype for decl_tls_model.
3868
3869 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3870
3871         * function.c (expand_function_end): Remove an "if" statement
3872         that always triggers.
3873         * stmt.c (expand_null_return_1): Likewise.
3874
3875 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
3876
3877         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
3878         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
3879         CLASS_MAX_NREGS): Likewise.
3880
3881 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
3882
3883         PR tree-optimization/17742
3884         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
3885         MINUS_EXPR correctly.
3886
3887 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
3888
3889         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3890         Give up as soon as the evolution is known not computable.
3891
3892 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3893
3894         PR target/16457
3895         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
3896         mask64_1or2_operand.
3897         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
3898         to spot rlwinm opportunities.
3899         (and64_2_operand): Use mask_1or2_operand.
3900         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
3901
3902 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
3903
3904         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
3905         (vect_update_ivs_after_vectorizer): Update function documentation.
3906         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
3907
3908 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3909
3910         * config/arm/arm.c: Fix a comment typo.
3911
3912 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3913
3914         * bitmap.h (nBITMAP_WORD_BITS): Remove.
3915         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
3916         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
3917         unnecessary casts.
3918         (bitmap_first_set_bit): Return unsigned, use ctzl.
3919         (bitmap_last_set_bit): Remove.
3920         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
3921         unsigned.
3922         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
3923         remove special case code for two word elements.
3924         (bitmap_last_set_bit): Remove.
3925         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
3926         bitmap_first_set_bit with bitmap_empty_p.
3927         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
3928         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
3929         bitmap_last_bit_set.
3930
3931 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3932
3933         PR target/16796
3934         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
3935
3936         PR target/16458
3937         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
3938         unsigned equality compare when we know the operands are unsigned.
3939
3940 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
3941
3942         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
3943         __PIC__ and __pic__ only if TARGET_ABICALLS.
3944         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
3945         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
3946         -KPIC only if not -mno-abicalls.
3947
3948         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
3949         * config/sparc/linux.h, config/sparc/linux64.h
3950         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
3951
3952         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
3953         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
3954         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
3955         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
3956
3957 2004-11-11  Paul Brook  <paul@codesourcery.com>
3958
3959         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
3960         register if current_function_uses_pic_offset_table is set.
3961
3962 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
3963
3964         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
3965         Change multi-instruction sequences to new attribute.
3966         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
3967         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
3968         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
3969
3970 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
3971
3972         * tree-data-ref.c (build_classic_dist_vector): If either loop
3973         is outside of the nest we asked about, the dependence can't
3974         matter.
3975         (build_classic_dir_vector): Ditto.
3976
3977 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
3978
3979         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
3980         right order.
3981         (force_var_cost): Determine cost of addition and multiplication more
3982         precisely.
3983         (get_computation_cost_at): Add cost for computing address elements to
3984         the final cost.
3985
3986         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
3987         one of the arguments of MINUS_EXPR is an address.
3988         (split_address_to_core_and_offset): New function.
3989         (ptr_difference_const): Handle case when one of the operands is a
3990         pointer.
3991         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
3992         (ptr_difference_cost): Pass addresses instead of objects to
3993         ptr_difference_const.
3994
3995 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3996
3997         * tree.c (tree_check_failed): Emit general error if the list of
3998         node types is empty.
3999
4000 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4001
4002         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
4003         argument.  When the union is passed in the 6th slot, build a
4004         PARALLEL with only one element.
4005         (function_arg): Adjust call to function_arg_union_value.
4006         (function_value): Likewise.
4007
4008 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
4009
4010         PR tree-optimization/17892
4011         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
4012         MINUS_EXPR operator.
4013
4014 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
4015
4016         PR target/18230
4017         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
4018         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
4019
4020 2004-11-10  Steven Bosscher  <stevenb@suse.de>
4021
4022         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
4023         (struct basic_block_def): Remove local_set and cond_local_set
4024         fields.  Update comment for global_live_at_start.
4025         * flow.c (calculate_global_regs_live): Allocate local_sets and
4026         cond_local_sets here as arrays of bitmaps previously stored in
4027         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
4028         obstack allocated bitmaps.
4029
4030 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4031
4032         PR target/18380
4033         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
4034         hidden.
4035
4036         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
4037
4038 2004-11-09  Jeff Law  <law@redhat.com>
4039
4040         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
4041         argument holding last unvisited block.  Start search for
4042         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
4043         (connect_infinite_loops_to_exit): Supply last unvisited block
4044         to flow_dfs_compute_reverse_execute.
4045
4046 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
4047
4048         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
4049         doubles.
4050         (floatunssidf2): Same.
4051         (floatsidf2): Same.
4052         ("extendsfdf2"): New expander.
4053         (*extendsfdf2_fpr): Rename.
4054         (*truncdfsf2_fpr): Same.
4055         (*negdf2_fpr): Same.
4056         (*absdf2_fpr): Same.
4057         (*nabsdf2_fpr): Same.
4058         (*adddf3_fpr): Same.
4059         (*subdf3_fpr): Same.
4060         (*muldf3_fpr): Same.
4061         (*divdf3_fpr): Same.
4062
4063         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
4064         ("spe_fix_truncdfsi2"): Same.
4065         (spe_floatunssidf2): Same.
4066         (spe_floatsidf2): Same.
4067
4068 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4069
4070         PR c/18322
4071         * c-common.c (fname_decl): Don't use line number of decl in
4072         diagnostic.
4073
4074 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4075
4076         * config/s390/s390-protos.h (s390_pool_operand): Remove.
4077         * config/s390/s390.c (s390_pool_operand): Likewise.
4078         (s390_extra_constraint_str): Handle 'B' constraints.
4079         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
4080         * config/s390/s390.md: Document 'B' constraints.
4081         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
4082         s390_pool_operand to prevent insns with two literal pool
4083         references.  Make pattern commutative.
4084         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
4085         'B' constraint instead of s390_pool_operand.
4086
4087 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4088
4089         * tree-cfg.c (create_bb): Remove unnecessary memset.
4090
4091 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4092
4093         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
4094         (thread_block): Call flush_pending_stmt instead of
4095         copy_phis_to_block.
4096
4097 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4098
4099         * loop-iv.c (iv_number_of_iterations): Make it static.
4100         * cfgloop.h: Remove the corresponding prototype.
4101
4102 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4103
4104         * function.c (combine_temp_slots, assign_parms,
4105         expand_pending_sizes): Make them static.
4106         * tree.h: Remove the corresponding prototypes.
4107
4108 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4109
4110         * emit-rtl.c (copy_most_rtx): Remove.
4111         * rtl.h: Remove the corresponding prototype.
4112
4113 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4114
4115         * cfgloop.c (flow_loops_update): Remove.
4116         * cfgloop.h: Remove the corresponding prototype.
4117
4118 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4119
4120         * conflict.c (mark_reg, conflict_graph_compute): Remove.
4121         * basic-block.h: Remove the prototype for
4122         conflict_graph_compute.
4123
4124 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4125
4126         * tree-if-conv.c (add_to_dst_predicate_list): Change the
4127         second argument to basic_block.
4128         (tree_if_convert_cond_expr): Update call sites.
4129
4130 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4131
4132         * fold-const.c (pedantic_non_lvalue): Make it static.
4133         * tree.h: Remove the corresponding prototype.
4134
4135 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4136
4137         * optabs.c (prepare_operand): Make it static.
4138         * optabs.h: Remove the corresponding prototype.
4139
4140 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4141
4142         * reload1.c (reloads_conflict, gen_reload): Make them static.
4143         * reload.h: Remove the corresponding prototypes.
4144
4145 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4146
4147         * reload.c (refers_to_mem_for_reload_p,
4148         refers_to_regno_for_reload_p): Make them static.
4149         * reload.h: Remove the corresponding prototypes.
4150
4151 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
4152             Eric Botcazou  <ebotcazou@libertysurf.fr>
4153
4154         PR target/18230
4155         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
4156         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
4157         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
4158         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
4159         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
4160         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
4161         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
4162         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
4163         MODE_VECTOR_INT modes.
4164         (sparc_extra_constraint_check): Add new constraint 'Y'.
4165         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
4166         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
4167         (V64): New mode macro for 64-bit modes.
4168         (movsf): Use V32 for mode instead of SF.
4169         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
4170         alongside 'G' constraint.
4171         (movdf): Use V64 for mode instead of DF.
4172         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
4173         of DF.  Add 'Y' constraint alongside 'G' constraint.
4174         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
4175         instead of DF.
4176
4177 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4178
4179         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
4180         integer NEG and ABS.
4181         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
4182         ("*negdi2_31"): Reimplement using a splitter.
4183         ("*negdi2_cc", "*negdi2_cconly"): New insns.
4184         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
4185         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
4186         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
4187         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
4188         ("*absdi2_cc", "*absdi2_cconly"): New insns.
4189         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
4190         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
4191         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
4192         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
4193         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
4194         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
4195         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
4196         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
4197         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
4198
4199 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4200
4201         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
4202         when eliminating an UNSPEC_CMPINT.
4203         (s390_secondary_input_reload_class): Fix test for CC register reload.
4204         (s390_secondary_output_reload_class): Likewise.
4205         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
4206         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
4207         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
4208         insn patterns with splitters.
4209
4210 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
4211
4212         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
4213         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
4214
4215 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4216
4217         * tree-phinodes.c (phi_reverse): New.
4218         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
4219         Use it.
4220         * tree-flow.h: Add a prototype for phi_reverse.
4221
4222 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4223
4224         * tree-ssa-loop-ivopts.c: Fix a comment typo.
4225
4226 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
4227
4228         PR pch/14940
4229         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
4230         definitions.
4231
4232 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4233
4234         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
4235         instead of "arg" in diagnostics.
4236
4237 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4238
4239         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
4240         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
4241         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
4242         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
4243         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
4244         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
4245         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
4246         config/iq2000/iq2000.c, config/m32r/m32r.c,
4247         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
4248         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
4249         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
4250         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
4251         config/sh/symbian.c, config/stormy16/stormy16.c,
4252         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
4253         and %> as appropriate.  Use %' as apostrophe in diagnostics where
4254         applicable.  Use %< and %> in place of '' quotes where applicable.
4255         Use %qs in place of %<%s%>.  Consistently quote __builtin function
4256         names.
4257
4258 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
4259
4260         * gdbinit.in (pbb, pbm): New macros.
4261
4262 2004-11-08 Jeff Law  <law@redhat.com>
4263
4264         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
4265         implementing it inline.
4266
4267         * cfganal.c (find_edge): Search pred->succs or succ->preds,
4268         whichever is shorter.
4269
4270 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4271
4272         * passes.c (rest_of_handle_jump): Remove dead code.
4273
4274 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
4277         the last used element in the worklist.
4278
4279 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4280
4281         * tree-inline.c (remap_save_expr): Make it static.
4282         * tree-inline.h: Remove the corresponding prototype.
4283
4284 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * tree-ssa-loop-niter.c (upper_bound_in_type,
4287         lower_bound_in_type): Make them static.
4288         * tree.h: Remove the corresponding prototypes.
4289
4290 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4291
4292         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
4293         static.
4294         * tree-ssa-live.h: Remove the corresponding prototypes.
4295
4296 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4297
4298         * tree-if-conv.c (tree_if_conversion): Make it static.
4299         * tree-flow.h: Remove the corresponding prototype.
4300
4301 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4302
4303         * tree-ssa-operands.c (build_ssa_operands): Make it static.
4304         * tree-flow.h: Remove the corresponding prototype.
4305
4306 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
4307
4308         PR tree-opt/18299
4309         * tree-inline.c (copy_body_r): Change "t = t" to empty
4310         statement instead of "t".
4311
4312 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4313
4314         * modulo-sched.c (create_partial_schedule,
4315         free_partial_schedule, reset_partial_schedule,
4316         ps_add_node_check_conflicts, rotate_partial_schedule): Make
4317         them static.
4318
4319 2004-11-08  Richard Henderson  <rth@redhat.com>
4320
4321         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
4322         the end of a page.
4323
4324 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4325
4326         * sched-deps.c (add_insn_mem_dependence): Make it static.
4327         * sched-int.h: Remove the corresponding prototypes.
4328
4329 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4330
4331         * flow.c (allocate_bb_life_data): Make it static.
4332         * basic-block.h: Remove the corresponding prototype.
4333
4334 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4335
4336         * calls.c (split_complex_values, split_complex_types): Make
4337         them static.
4338         * expr.h: Remove the corresponding prototypes.
4339
4340 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
4341
4342         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
4343         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
4344
4345 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4346
4347         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
4348         statements that always trigger.
4349
4350 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4351
4352         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
4353         tree-scalar-evolution.c, tree-ssa-loop-im.c,
4354         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
4355         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
4356         appropriate.
4357
4358 2004-11-08  Ben Elliston  <bje@au.ibm.com>
4359
4360         * cgraph.h (cgraph_calls_p): Remove.
4361         * cgraph.c (cgraph_calls_p): Likewise.
4362
4363         * varray.h (varray_copy): Remove.
4364         * varray.c (varray_copy): Likewise.
4365
4366 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
4367
4368         PR target/18269
4369         * config/darwin.c (machopic_indirect_data_reference):
4370         Call gen_macho_high and gen_macho_low instead of
4371         checking the mode and calling gen_macho_high_di directly.
4372         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
4373         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
4374         to darwin.md.
4375         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
4376         load_macho_picbase, macho_low, macho_high): Removed.
4377         (builtin_setjmp_receiver): Call gen_macho_high and
4378         gen_macho_low instead of checking the mode and calling
4379         gen_macho_high_di directly.
4380         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
4381         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
4382         Moved from rs6000.md.
4383         (macho_high): New expander.
4384         (macho_high_si): Renamed version of macho_high from rs6000.md.
4385         (macho_low): New expander.
4386         (macho_low_si): Renamed version of macho_low from rs6000.md.
4387         (load_macho_picbase): New expander.
4388         (load_macho_picbase_si): Renamed version of load_macho_picbase
4389         from rs6000.md.
4390         (macho_correct_pic): New expander.
4391         (macho_correct_pic_si): Renamed version of macho_correct_pic
4392         from rs6000.md.
4393
4394 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
4395
4396         * c-decl.c (finish_struct): Use complete sentences for diagnostic
4397         for structures or unions with no members or named members.
4398
4399 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
4400
4401         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
4402         taking address of bit-field by assertion.
4403
4404 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4405
4406         * config/s390/s390.md (attribute "op_type"): Default to "NN".
4407         (attribute "atype"): Default to "agen".
4408         (attribute "length"): Default to 6.
4409         (define_asm_attibutes): Remove.
4410         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
4411         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
4412         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
4413         Do not set type attribute to "cs" where already default.
4414         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
4415         "*negdi2_31"):
4416         Do not set type attribute to "other" where already default.
4417         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
4418         "*strlendi", "*strlensi",
4419         "*movmem_long_64", "*movmem_long_31",
4420         "*clrmem_long_64", "*clrmem_long_31",
4421         "*cmpmem_long_64", "*cmpmem_long_31",
4422         "*cmpint_si", "*cmpint_di",
4423         "addti3", "*adddi3_31z", "*adddi3_31",
4424         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
4425         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
4426         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
4427         "*pool_entry", "pool_align", "pool_section_start",
4428         "pool_section_end", "main_pool", "reload_base_31", "pool"):
4429         Do not set op_type attribute to "NN" where already default.
4430         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
4431         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
4432         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
4433         Do not set atype attribute to "agen" where already default.
4434         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
4435
4436 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
4437
4438         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
4439
4440 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
4441
4442         PR target/16830
4443         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
4444         R3000 and R4000 macros on IRIX.
4445
4446 2004-11-06  Andreas Schwab  <schwab@suse.de>
4447
4448         PR target/16286
4449         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
4450         __pixel.
4451
4452 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4453
4454         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
4455
4456 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4457
4458         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
4459         matches no insns already matched by other reservations.
4460         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
4461         matches no insns already matched by other reservations.
4462         ("x_ss"): Remove, replace by ...
4463         ("x_cs"): ... this new reservation.  Check type instead of op_type.
4464         Update bypasses to use x_cs instead of x_ss.
4465         ("x_nn"): Remove, replace by ...
4466         ("x_other"): ... this new reservation.  Check type instead of op_type.
4467         Add x_other and x_branch to bypasses.
4468         ("x_vs"): New reservation.
4469         * config/s390/s390.md (attribute "type"): Default according to op_type.
4470         ("*execute"): Set type to "cs".
4471
4472 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4473
4474         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
4475         if we are in GIMPLE.
4476
4477 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
4478
4479         PR rtl-optimization/17933
4480         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
4481         (covers_regno_p): New function.  Handle SETs of PARALLEL,
4482         and defer the rest to...
4483         (covers_regno_no_parallel_p): New function.
4484
4485 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4486
4487         * config/sparc/sparc.c (function_arg_record_value_1): Skip
4488         fields with zero length.
4489         (function_arg_record_value_2): Likewise.
4490         (function_arg_record_value_3): Use smallest_mode_for_size
4491         instead of mode_for_size.
4492         (function_arg_union_value): Return naked register for unions
4493         with zero length.
4494
4495 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4496
4497         * config/sparc/sparc.c (scan_record_type): Handle vector types.
4498         (function_arg_slotno): Handle vector types specially.
4499         (function_arg_record_value_1): Split fields with vector type and
4500         BLKmode into their subparts.
4501         (function_arg_record_value_2): Likewise.  Be prepared to handle
4502         more than 2 registers per field.
4503         (function_arg_union_value): Increment regno inside the loop.
4504         (function_arg_vector_value): New function.
4505         (function_arg): Use it to split fields with vector type and
4506         BLKmode into their subparts and build a PARALLEL.  Treat
4507         other vector types like floats.
4508         (function_value): Likewise.
4509         (sparc_pass_by_reference): Handle vector types.
4510         (sparc_return_in_memory): Likewise.
4511
4512 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4513
4514         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
4515         statement that never triggers.
4516
4517 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4518
4519         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
4520         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
4521         ("x_fdivd"): Use also for fsqrtd type.
4522         ("x_fdivs"): Use also for fsqrts type.
4523         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
4524         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
4525         ("fix_truncdfsi2_ibm"): Set type to "other".
4526         ("floatdidf2", "floatdisf2"): Do not clobber CC.
4527         ("floatsidf2", "floatsidf2_ieee"): Likewise.
4528         ("floatsisf2", "floatsisf2_ieee"): Likewise.
4529         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
4530         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
4531         instead of LRER.
4532         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
4533         ("sqrtdf2"): Set type to "fsqrtd".
4534         ("sqrtsf2"): Set type to "fsqrts".
4535
4536 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4537
4538         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
4539         pointer to the last PHI node in the new PHI chain.
4540
4541 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
4542
4543         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
4544         for non-PIC TLS_MODEL_INITIAL_EXEC case.
4545
4546 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4547
4548         * expmed.c: Fix a comment typo.
4549
4550 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4551
4552         PR target/18106
4553         * config/i386/cygming.h
4554         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
4555
4556 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4557
4558         * config/sh/sh4a.md: Fix copyright.
4559
4560 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4561
4562         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
4563         with GCC.
4564
4565 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
4566
4567         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
4568         when carry not used.  Suggested by Torbjorn Granlund.
4569
4570         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
4571         operand[1] unnecessarily.  Suggested by Eric Christopher.
4572         (rs6000_adjust_cost): Increase latency of store to wider load.
4573         (rs6000_rtx_costs): mulli only allows 16-bit constants.
4574
4575 2004-11-05  Stan Shebs  <shebs@apple.com>
4576
4577         * config/rs6000/rs6000.c (machopic_output_stub): Output
4578         ldu instead of lwzu for 64-bit stubs.
4579
4580 2004-11-05  Richard Henderson  <rth@redhat.com>
4581
4582         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
4583         size 2 with BWX.
4584         (alpha_expand_unaligned_store): Likewise.
4585
4586 2004-11-05  Richard Henderson  <rth@redhat.com>
4587
4588         * expmed.c (extract_force_align_mem_bit_field): New.
4589         (extract_split_bit_field): Call it.
4590
4591 2004-11-05  Richard Henderson  <rth@redhat.com>
4592
4593         * ia64.md (UNSPEC_SHRP): New.
4594         (dshift_count_operand): New.
4595         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
4596         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
4597
4598 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4599
4600         * c-typeck.c (output_init_element): Return early if value is
4601         error_mark_node.
4602
4603 2004-11-05  James E Wilson  <wilson@specifixinc.com>
4604
4605         * invoke.texi (-fno-guess-branch-probability): Rewrite.
4606
4607         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
4608         1 to UNSPEC_GR_SPILL.
4609
4610 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4611
4612         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
4613         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
4614
4615 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4616
4617         * bitmap.h (enum bitmap_bits): Remove.
4618         (bitmap_operation): Remove.
4619         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4620         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4621         bitmap_xor_into): Prototype.
4622         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
4623         (bitmap_operation): Remove.
4624         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4625         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4626         bitmap_xor_into): New.
4627         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
4628
4629         PR tree-optimization/18307
4630         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
4631         and ORIG being the same node.
4632
4633 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
4634
4635         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
4636         (install-mkheaders): Install the version built for the
4637         host, not for the build machine.
4638         * configure.ac: Always run fixincludes.
4639         (all_outputs): Remove mkheaders.
4640         * configure: Regenerate.
4641         * fixinc.in: Move to fixincludes/.
4642         * mkfixinc.sh: Likewise.
4643         * mkheaders.in: Likewise.
4644         * README-fixinc: Likewise.
4645
4646 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
4647
4648         PR target/18263
4649         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
4650         equivalent on the A4.
4651
4652 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4653
4654         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
4655         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
4656         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
4657         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
4658         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
4659         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
4660         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
4661         doc/trouble.texi: Correct end-of-sentence markup and markup of
4662         "etc.", "e.g." and "i.e.".  Use @code in various places where
4663         appropriate.
4664
4665 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4666
4667         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
4668         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
4669         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
4670         whitespace.
4671
4672 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
4673
4674         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
4675         * doc/extend.texi: Document "notshared" attribute.
4676
4677 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4678
4679         * tree-phinodes.c (make_phi_node): Make it static.
4680         * tree.h: Remove the prototypes for make_phi_node.
4681
4682 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4683
4684         * stmt.c (expand_asm, expand_asm_operands): Make them static.
4685         * tree.h: Remove the prototypes for expand_asm and
4686         expand_asm_operands.
4687
4688 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4689
4690         * passes.c (rest_of_compilation): Make it static.
4691         * toplev.h: Remove the prototype for rest_of_compilation.
4692
4693 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4694
4695         * jump.c (cleanup_barriers): Use delete_insn instead of
4696         delete_barrier.
4697         (delete_barrier): Remove.
4698         * rtl.h: Remove the corresponding prototype.
4699
4700 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4701
4702         * expr.c (mostly_zero_p): Make it static.
4703         * tree.h: Remove the prototype for mostly_zeros_p.
4704
4705 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4706
4707         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
4708
4709 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4710
4711         * builtins.c (expand_builtin_return_addr,
4712         expand_builtin_longjmp, expand_builtin_trap): Make them static.
4713         * expr.h: Remove the prototypes for expand_builtin_longjmp and
4714         expand_builtin_trap.
4715         * tree.h: Remove the prototype for expand_builtin_return_addr.
4716
4717 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4718
4719         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
4720         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
4721         with VAL being NULL.
4722
4723 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4724
4725         * cfghooks.c (delete_basic_block): Remove code to truncate
4726         edge vectors.
4727
4728 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
4729
4730         * flow.c (init_propagate_block_info): Change the type of i to
4731         unsigned.
4732
4733 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4734
4735         PR tree-optimization/18184
4736         * c-typeck.c (comptypes): Do not treat pointers of different
4737         modes or alias-all flags as equivalent.
4738         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
4739
4740 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
4741
4742         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
4743         reference specific C parser files in examples.
4744
4745 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
4746
4747         PR target/15342
4748         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
4749         as OP_INOUT if the instruction is predicated.
4750
4751 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4752
4753         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
4754         * tree-vectorizer.c: Fix a comment typo.
4755
4756 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4757
4758         * sdbout.c (SDB_GENERATE_FAKE): Remove.
4759         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
4760         * system.h: Poison SDB_GENERATE_FAKE.
4761         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
4762
4763 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4764
4765         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
4766
4767 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4768
4769         PR other/18277
4770         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
4771         2004-10-29 patch
4772
4773 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4774
4775         * predict.c (propagate_freq): Make bitno unsigned. Move
4776         npredecessors update out of loop.
4777
4778         * bitmap.h (bitmap_iterator): Remove word_bit and bit
4779         fields. Rename others.
4780         (bmp_iter_common_next_1, bmp_iter_single_next_1,
4781         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
4782         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
4783         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
4784         bmp_iter_and_next): Remove.
4785         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
4786         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
4787         New.
4788         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
4789         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
4790
4791         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
4792         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
4793         bitmap_and_into, bitmap_ior_into as appropriate.
4794         * except.c (remove_eh_handler): Likewise.
4795         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
4796         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4797         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
4798         * tree-ssa-live.h (live_merge_and_clear): Likewise.
4799         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
4800         Likewise.
4801
4802         * bitmap.c (bitmap_print): Make bitno unsigned.
4803         * bt-load.c (clear_btr_from_live_range,
4804         btr_def_live_range): Likewise.
4805         * caller-save.c (save_call_clobbered_regs): Likewise.
4806         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4807         * cfgcleanup.c (thread_jump): Likewise.
4808         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4809         * conflict.c (conflict_graph_compute): Likewise.
4810         * ddg.c (add_deps_for_use): Likewise.
4811         * df.c (df_refs_update): Likewise.
4812         * except.c (remove_eh_handler): Likewise.
4813         * flow.c (verify_local_live_at_start, update_life_info,
4814         initialize_uninitialized_subregs, propagate_one_insn,
4815         free_propagate_block_info, propagate_block, find_use_as_address,
4816         reg_set_to_hard_reg_set): Likewise.
4817         * gcse.c (clear_modify_mem_tables): Likewise.
4818         * global.c (global_conflicts, build_insn_chain): Likewise.
4819         * ifcvt.c (dead_or_predicable): Likewise.
4820         * local-alloc.c (update_equiv_regs): Likewise.
4821         * loop.c (load_mems): Likewise.
4822         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
4823         Likewise.
4824         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
4825         Likewise.
4826         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
4827         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
4828         * sched-rgn.c (propagate_deps
4829         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
4830         * tree-dfa.c (dump_dfa_stats
4831         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
4832         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
4833         Likewise.
4834         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
4835         free_temp_expr_table, find_replaceable_exprs): Likewise.
4836         * tree-sra.c (scan_function, scalarize_parms): Likewise.
4837         * tree-ssa-alias.c (init_alias_info,
4838         compute_points_to_and_addr_escape,
4839         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
4840         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
4841         * tree-ssa-live.c (new_tree_live_info, live_worklist,
4842         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
4843         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
4844         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
4845         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
4846         add_call_read_ops): Likewise.
4847         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
4848         * tree-ssa-live.h (num_var_partitions): Return unsigned.
4849
4850 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
4851
4852         PR tree-optimization/18009
4853         * tree-vectorizer.h (enum dr_alignment_support): New type.
4854         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
4855         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
4856         single data_reference (instead of a varray of references).
4857         * tree-vectorizer.c (new_loop_vec_info): Likewise.
4858         (vect_gen_niters_for_prolog_loop): Likewise.
4859         (vect_update_inits_of_drs): Likewise.
4860
4861         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
4862         vect_enhance_data_refs_alignment.
4863         (vect_do_peeling_for_alignment): Likewise.
4864         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
4865         this functionality used to be in vect_analyze_data_refs_alignment.
4866         Also update DR_MISALIGNMENT due to peeling; this functionality used to
4867         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
4868         (vect_analyze_data_refs_alignment): Decision on whether and by how much
4869         to peel moved to vect_enhance_data_refs_alignment. Call
4870         vect_supportable_dr_alignment.
4871
4872         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
4873         (vect_compute_data_refs_alignment): Return bool. Consider return value
4874         of vect_compute_data_ref_alignment and return true/false accordingly.
4875         (vect_enhance_data_refs_alignment): Consider return value of
4876         vect_compute_data_refs_alignment and return true/false accordingly.
4877
4878         (vect_supportable_dr_alignment): New function.
4879         (vectorizable_store): Call vect_supportable_dr_alignment.
4880         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
4881         support checks moved from here to vect_supportable_dr_alignment.
4882
4883         (vect_transform_loop): Avoid 80 columns overflow.
4884
4885 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4886
4887         * timevar.c (timevar_enable): Change from
4888         static.
4889         (timevar_push): Rename to ...
4890         (timevar_push_1): this and remove the
4891         enabled check.
4892         (timevar_pop): Rename to ...
4893         (timevar_pop_1): this and remove the
4894         enabled check.
4895         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
4896         (timevar_pop): New macro.
4897         (timevar_push): New macro.
4898         (timevar_enable): Declare.
4899
4900 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4901
4902         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
4903         libgcc for shared libraries.
4904
4905 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4906
4907         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
4908         * config/s390/s390.c (s390_split_access_reg): New function.
4909         (regclass_map): Add access registers.
4910         (get_thread_pointer): Use access register instead of UNSPEC_TP.
4911         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
4912         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
4913         (TP_REGNUM): New define.
4914         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4915         REG_ALLOC_ORDER): Add access registers.
4916         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
4917         CANNOT_CHANGE_MODE_CLASS): Support access registers.
4918         (enum reg_class): Add ACCESS_REGS.
4919         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
4920         (REG_CLASS_FROM_LETTER): Add 't' constraint.
4921         (REGISTER_NAMES): Add access registers.
4922         * config/s390/s390.md (UNSPEC_TP): Remove.
4923         ("*movdi_64"): Add access register alternatives.  Provide splitters
4924         to split DImode access register <-> GPR moves into SImode moves.
4925         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
4926         ("movstrictsi"): Likewise.
4927         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
4928         ("set_tp_64", "set_tp_31"): Likewise.
4929         ("*set_tp"): New insn.
4930
4931 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4932
4933         * tree-phinodes.c (resize_phi_node): Copy only a portion of
4934         the PHI node currently in use.
4935
4936 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4937
4938         PR tree-opt/18231
4939         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
4940         also.
4941
4942 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
4943
4944         PR tree-optimization/18270
4945         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
4946         abnormal edges, commit all pending stmts on incoming edges.
4947
4948 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4949
4950         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
4951         cause extra costs.  Generate canonical RTL.
4952
4953 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
4954
4955         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
4956         (lambda_compute_target_space). Ditto.
4957         * lambda.h (lambda_trans_matrix): Ditto.
4958         (lambda_linear_expression): Ditto.
4959         (lambda_body_vector): Ditto.
4960         (lambda_loopnest): Ditto.
4961         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
4962         update comments, and remove pointless addition of 0.
4963         (linear_transform_loops): Update comments.
4964
4965 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
4966
4967         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
4968         CEIL_MOD_EXPR.
4969
4970 2004-11-03 Jeff Law  <law@redhat.com>
4971
4972         * predict.c (struct block_info_def): Kill "tovisit" field.
4973         (propagate_freq): Accept new "tovisit" parameter.  Change
4974         read/write access methods for "tovisit" to check the "tovisit"
4975         bitmap instead of a bit in block_info_def.
4976         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
4977         it to propagate_freq.
4978
4979         * stmt.c (expand_case): Speed up code to detect duplicate case
4980         label targets and count unique case label targets.
4981
4982 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4983
4984         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
4985
4986 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4987
4988         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
4989
4990 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4991
4992         * tree-cfg.c (find_taken_edge): Abort if we are given a
4993         statement that is neither COND_EXPR nor SWITCH_EXPR.
4994
4995 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
4996
4997         * fold-const.c (fold): Reassociate also (x - mult) + mult and
4998         (mult - x) + mult.  Cast operands of expression after applying
4999         distributive law to the correct types.  Apply distributive law
5000         to a * c - b * c for all non-float types.
5001
5002 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
5003
5004         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
5005         because we don't want to run them now; instead, set them to
5006         stmp-install-fixproto or stmp-install-fixinc.
5007         * Makefile.in (stmp-install-fixproto): New.
5008         (stmp-install-fixinc): New.
5009         * configure: Regenerate.
5010
5011 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5012
5013         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
5014         of bitmap_xor.
5015
5016 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
5017
5018         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
5019         (c_types_compatible_p): Move function definition...
5020         * c-objc-common.c (c_types_compatible_p): ...here.
5021         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
5022         c-lang.c.
5023
5024 2004-11-02  Steven Bosscher  <stevenb@suse.de>
5025
5026         * cfgloop.h (struct loop): Update comment.
5027         * cse.c (cse_main): Remove obsolete comment.
5028
5029         * expr.h (gen_cond_trap): Move prototype under functions provided
5030         by optabs.c.
5031         (canonicalize_condition, get_condition): Move to...
5032         * rtl.h (canonicalize_condition, get_condition): ...here.
5033         (branch_target_load_optimize): Add comment that this function is
5034         in bt-load.c.
5035         * loop.c (canonicalize_condition, get_condition): Move to...
5036         * rtlanal.c (canonicalize_condition, get_condition): ...here.
5037         * sched-deps.c (get_condition): Rename to sched_get_condition.
5038         (add_dependence): Update this caller.
5039
5040 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
5041
5042         PR tree-opt/16808
5043         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
5044         that the vops get marked for renaming.
5045
5046 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
5047
5048         * config/s390/s390.md ("movcc"): Set type attribute.
5049
5050 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5051
5052         * tree-phinodes.c (add_phi_arg): Add an assertion that the
5053         edge already exists.
5054
5055 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5056
5057         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
5058         element that's being removed.
5059
5060 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5061
5062         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
5063         arguments using PENDING_STMT.
5064         (thread_block): Call copy_phis_to_block after redirecting an
5065         edge.
5066
5067 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5068
5069         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
5070         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
5071         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
5072         (bitmap_ior_and_compl_into): Produce bool.
5073         (bitmap_union_of_diff): Rename to ...
5074         (bitmap_ior_and_compl): ... here. Produce bool.
5075         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
5076         bitmap_operation directly.
5077         (bitmap_union_of_diff): Rename to ...
5078         (bitmap_ior_and_compl): ... here. Return bool, use
5079         bitmap_operation directly.
5080         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
5081         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
5082         * global.c (modify_bb_reg_pav): Likewise.
5083
5084         * bitmap.h (bitmap_equal_p): Return bool.
5085         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
5086         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
5087         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
5088         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
5089         bitmap_intersect_compl_p.
5090         * ifcvt (dead_or_predicable): Likewise.
5091
5092 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5093
5094         PR rtl-optimization/17104
5095         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
5096         loads in zero_extend.
5097
5098 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
5099
5100         PR debug/18242
5101         * toplev.c (debug_type_names): Remove "dwarf-1".
5102
5103 2004-11-02  Ben Elliston  <bje@au.ibm.com>
5104
5105         * timevar.h (timevar_get): Remove.
5106         * timevar.c (timevar_get): Remove unused function.
5107
5108 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
5109
5110         * doc/include/texinfo.tex: Update from Texinfo CVS.
5111
5112 2004-11-02  Ben Elliston  <bje@au.ibm.com>
5113
5114         * cppdefault.h (cpp_SYSROOT): Remove.
5115         * cppdefault.c (cpp_SYSROOT): Likewise.
5116
5117 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
5118
5119         PR tree-optimization/16447
5120         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
5121         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
5122         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
5123         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
5124         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
5125         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
5126         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
5127         (identical_copies_p): New.  Return true is two copies are the same.
5128         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
5129         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
5130         for a basic block.
5131         (perform_edge_inserts): New.  Determine what to do with all stmts that
5132         have been inserted on edges.
5133         (remove_ssa_form):  Analyze and commit edges from here.
5134
5135 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
5136
5137         PR bootstrap/18232
5138         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
5139         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
5140         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
5141         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
5142
5143 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
5144
5145         PR c/18239
5146         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
5147         parameter declarations.
5148
5149 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
5150
5151         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
5152         (s390_secondary_input_reload_class)
5153         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
5154         register.
5155         (s390_expand_cmpmem): Enable cmpmem implementation.
5156         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
5157         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
5158         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
5159         * config/s390/s390.md ("movcc"): New insn pattern.
5160         * doc/md.texi: Document 'c' constraint for s390.
5161
5162 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
5163
5164         PR c++/18064
5165         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
5166         extension.
5167
5168 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
5169
5170         Fix PR tree-optimization/17672
5171         Fix PR tree-optimization/18168
5172
5173         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
5174         assert test.
5175         (gcc_tree_to_linear_expression): Add extra to existing constant.
5176         (depth_of_nest): Factor out function used in various places.
5177         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
5178         functional changes.
5179         (find_induction_var_from_exit_cond): Stop guessing, and just
5180         get the right answer :).
5181         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
5182         Print out message about result of attempt to create perfect nest.
5183         (lbv_to_gcc_expression): Add type argument, use it to do math
5184         and induction variable creation.
5185         (lle_to_gcc_expression): Ditto.
5186         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
5187         oldiv. Pass type argument to lle_to_gcc_expression and
5188         lbv_to_gcc_expression.
5189         Reset number of iterations after transformation.
5190         (perfect_nestify): Remove useless pre-allocation, and cleanup
5191         a small amount.
5192
5193         * tree-data-ref.c (build_classic_dist_vector): Return false for
5194         dependences completely outside of the loop nest we asked about.
5195         (build_classic_dir_vector): Ditto.
5196         (compute_data_dependences_for_loop): Only add dependence relations
5197         inside the loop we asked about.
5198
5199         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
5200         Compute immediate uses.
5201
5202         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
5203
5204 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
5205
5206         * tree-cfg.c (thread_jumps): Fix a comment typo.
5207
5208 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
5209
5210         * tree-cfg.c (thread_jumps): Fix a comment typo.
5211
5212 2004-10-31  Nicolas Pitre <nico@cam.org>
5213
5214         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
5215         values smaller than 2^32.
5216
5217 2004-10-31 Jeff Law  <law@redhat.com>
5218
5219         * cfgloop.h (struct loop): Remove unused "nodes" field.
5220         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
5221         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
5222         instead of calling flow_bb_inside_loop_p for every basic block
5223         in the function.
5224         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
5225
5226 2004-10-31  Graham Stott <graham.stott@btinternet.com>
5227
5228         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
5229         INT_5_BITS instead of VAL_5_BITS_P.
5230
5231 2004-10-31  Roger Sayle  <roger@eyesopen.com>
5232
5233         PR middle-end/14521
5234         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
5235         for consistent quoting in diagnostic messages.
5236         (expand_call_inline): Likewise.
5237         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5238         * tree-ssa.c (warn_uninitialized_var): Likewise.
5239         (warn_uninitialized_phi): Likewise.
5240
5241 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
5242
5243         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
5244         mode check.
5245
5246 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
5247
5248         * c-common.c: Fix a comment typo.
5249
5250 2004-10-31  Jason Merrill  <jason@redhat.com>
5251
5252         PR middle-end/17526
5253         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
5254         aggregate types that are not BLKmode.
5255
5256 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
5257
5258         * c-common.h (objc_lookup_ivar): Add second parameter to
5259         prototype.
5260         * c-typeck.c (build_external_ref): After looking up symbol,
5261         pass it to objc_lookup_ivar() to decide whether it or the
5262         ivar should be used, rather than deciding the issue locally.
5263         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
5264         which is simply returned in the non-ObjC case.
5265
5266 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
5267
5268         * sdbout.c (sdbout_symbol): Do not output type .def statements
5269         for builtin types.
5270
5271 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5272
5273         * c-common.c (catenate_strings): New.
5274         (c_parse_error): Use it.  Don't over-escape.
5275
5276 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5277
5278         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
5279         modify the for loop expressions for it.  Remove unnecessary casts.
5280         (sh_expand_prologue): Declare reg as unsigned.
5281         (sh_gimplify_va_arg_expr): Initinalize lab_over.
5282         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
5283
5284 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
5285
5286         * doc/invoke.texi (Darwin Options): Improve description of
5287         how the subtype is chosen.
5288
5289 2004-10-30  Roger Sayle  <roger@eyesopen.com>
5290
5291         PR middle-end/18096
5292         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
5293         the stack adjustment, "size", is valid for Pmode.  If the stack
5294         frame is too large, generate a trap insn and issue a warning.
5295
5296 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
5297
5298         * tree-ssa-dom.c: Fix comment typos.
5299
5300 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5301
5302         * config/sh/sh.c (prepare_move_operands): Use operands[0]
5303         for the output rtl if no_new_pseudos is set.  Remove redundant
5304         line.
5305
5306 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
5307
5308         PR c/16666
5309         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
5310         determining whether to copy parameter types from a previous
5311         prototype declaration.
5312
5313 2004-10-29  Roger Sayle  <roger@eyesopen.com>
5314
5315         PR rtl-optimization/17581
5316         * cselib.c (cselib_process_insn): The last instruction of a libcall
5317         block, with the REG_RETVAL note, should be considered in the libcall.
5318         * gcse.c (do_local_cprop): Allow constants to be propagated outside
5319         of libcall blocks.
5320         (adjust_libcall_notes): Use simplify_replace_rtx instead of
5321         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
5322
5323 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
5324
5325         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
5326
5327 2004-10-29 Jeff Law  <law@redhat.com>
5328
5329         * tree-ssa-dom.c (struct edge_info): New structure holding
5330         edge equivalences and edge redirection information.
5331         (get_eq_expr_value, record_dominating_conditions): Kill.
5332         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
5333         Call record_edge_info.
5334         (allocate_edge_info, free_edge_info): New.
5335         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
5336         rather than cprop_into_phis.  Free all edge infos before threading
5337         jumps.
5338         (thread_across_edge): Allocate new edge info structures as needed
5339         and store the redirection target into the edge info structure
5340         instead of the edge's AUX field.
5341         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
5342         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
5343         Revamp code which finds and records equivalences associated with
5344         edges to use saved data in the edge_info structure.
5345         (record_equivalencs_from_phis): Similarly.
5346         (dom_opt_finalize_block): Revamp code which finds and records
5347         equivalences associated with edges to use saved data in the
5348         edge_info structure.
5349         (build_and_record_new_cond): New function.
5350         (record_conditions): Use build_and_record_new_cond to record
5351         dominating conditions.
5352         (record_edge_info): New function.
5353         (record_range): Tighten test for conditions which create
5354         useful range records.
5355
5356 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
5357
5358         * config/i386/darwin.h (ASM_SPEC): Simplify.
5359         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
5360         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
5361         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
5362         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
5363         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
5364         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
5365         (ASM_SPEC): Handle -force_cpusubtype_ALL.
5366         * doc/invoke.texi (Darwin Options): Improve documentation for
5367         Darwin linker (and libtool) switches.
5368
5369         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
5370
5371 2004-10-29  Stan Shebs  <shebs@apple.com>
5372
5373         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
5374
5375 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5376
5377         * tree-phinodes.c (allocate_phi_node): New.
5378         (make_phi_node, resize_phi_node): Use it.
5379
5380 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
5381
5382         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
5383         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
5384
5385 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5386
5387         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
5388         the whole PHI node.
5389         * tree.h (tree_phi_node): Tell the garbage collector to chase
5390         num_args arguments.
5391
5392 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
5393
5394         * opts.c (decode_options): Lower the crossjump threshold for -Os.
5395
5396 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
5397
5398         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
5399
5400 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5401
5402         * bitmap.h (bitmap_empty_p): New.
5403         (bitmap_and, bitmap_and_into, bitmap_and_compl,
5404         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
5405         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
5406         operation macros.
5407         (bitmap_ior_and_compl): Rename to ...
5408         (bitmap_ior_and_compl_into): ... here.
5409         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
5410         (bitmap_ior_and_compl): Rename to ...
5411         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
5412         flag.
5413         (bitmap_union_of_diff): Use renamed bitmap functions.
5414         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
5415         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
5416         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
5417         * df.c (df_bb_rd_local_compute)
5418         * flow.c (calculate_global_regs_live,
5419         init_propagate_block_info): Likewise.
5420         * ifcvt.c (find_if_case_1, find_if_case_2,
5421         dead_or_predicable): Likewise.
5422         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
5423         reset_conflicts, conflicts_between_webs): Likewise.
5424         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
5425         detect_web_parts_to_rebuild): Likewise.
5426         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
5427         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
5428         * tree-sra.c (decide_instantiations): Likewise.
5429         * tree-ssa-alias.c (create_name_tags,
5430         merge_pointed_to_info): Likewise.
5431         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
5432         * tree-ssa-loop-im.c (move_computations): Likewise.
5433         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
5434         * tree-ssa-pre.c (fini_pre): Likewise.
5435         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
5436         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
5437         * tree-vectorizer.c (vectorize_loops): Likewise.
5438
5439 2004-10-29  Nick Clifton  <nickc@redhat.com>
5440
5441         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
5442         adding the PIC register to the fixed_regs array, also add it
5443         to the call_used_regs array.
5444
5445 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
5446
5447         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
5448         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
5449
5450 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
5451
5452         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
5453         (rewrite_blocks): Modify argument, and use it to decide which
5454         function to call.
5455         (rewrite_def_def_chains): Call rewrite_blocks with true here.
5456         (rewrite_into_ssa): and call it with false here.
5457
5458 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5459
5460         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
5461         triggers into gcc_assert.
5462
5463 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
5464
5465         PR tree-optimization/16728
5466         * tree-flow.h (get_ptr_info): Declare.
5467         * tree-ssa-alias.c (get_ptr_info): Make extern.
5468         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
5469         alias information.
5470
5471 2004-10-28  Stan Shebs  <shebs@apple.com>
5472
5473         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
5474         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
5475         case.
5476
5477 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
5478
5479         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
5480         prevent their later unnecessary registration.
5481         (mf_build_check_statement_for): Remove "addr" argument, and
5482         related "__mf_value" generated code.  Update callers.
5483         (mf_decl_eligible_p): New function, factored from mx_register_decls.
5484         (mx_register_decls): Call it.
5485         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
5486         to restore support for complex nested expressions.
5487         (mudflap_enqueue_decl): Simplify.  Move registration call emission
5488         out ...
5489         (mudflap_finish_file): ... to here.
5490         (mudflap_enqueue_constant): Remove dump code.
5491
5492 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
5493
5494         PR 18199
5495         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
5496         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
5497         (dbxout_finish_complex_stabs): Update to match.
5498         (dbxout_symbol_location): Call emit_pending_bincls_if_required
5499         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
5500         dbxout_begin_complex_stabs_noforcetext.
5501         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
5502         N_GSYM, using new SYM parameter.  Correct logic for special
5503         cases for N_FUN.
5504
5505         * varasm.c (function_section): If DECL is NULL_TREE, don't try
5506         to do anything else.  Do not call get_insns if cfun or
5507         cfun->emit are NULL.
5508
5509 2004-10-28  Adam Nemet  <anemet@lnxw.com>
5510
5511         PR middle-end/18160
5512         * c-typeck.c (c_mark_addressable): Issue error if address of a
5513         register variable is taken.  Use "%qD" to print DECL_NAME.
5514
5515 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
5516
5517         * opts.c (decode_options): Don't run PRE at -Os.
5518
5519 2004-10-28  Richard Henderson  <rth@redhat.com>
5520
5521         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
5522         zero in the conditional.
5523         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
5524
5525 2004-10-28  Richard Henderson  <rth@redhat.com>
5526
5527         * cse.c (memory_extend_rtx): Remove.
5528         (cse_main): Don't set it.
5529         (cse_insn): Use a local buffer instead.
5530
5531 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5532
5533         * profile.c (branch_prob): Call to init_edge_profiler added.
5534         * rtl-profile.c (rtl_init_edge_profiler): New function.
5535         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
5536         call to safe_insert_insn_on_edge.
5537         (rtl_profile_hooks): rtl_init_edge_profiler added.
5538         * tree-profile.c (tree_init_edge_profiler): New function.
5539         (tree_profile_hooks): tree_init_edge_profiler added.
5540         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
5541
5542 2004-10-28  Nick Clifton  <nickc@redhat.com>
5543
5544         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
5545         emit_jump_insn() to generate the return instruction.
5546
5547 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5548
5549         * tree-phinodes.c: Remove trailing whitespace.
5550
5551 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5552
5553         * tree-ssa-loop-ivopts.c: Fix a comment typo.
5554         * doc/invoke.texi: Fix a typo.
5555
5556 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5557
5558         * Makefile.in (OBJS-common): Remove duplicates.
5559
5560 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5561
5562         * lambda-code.c (nestify_update_pending_stmts): Remove.
5563         (perfect_nestify): Use flush_pending_stmts instead of
5564         nestify_update_pending_stmts.
5565         * tree-cfg.c (tree_make_forwarder_block): Use
5566         flush_pending_stmts.
5567         * tree-flow.h: Add a prototype for flush_pending_stmts.
5568         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
5569         Use flush_pending_stmts.
5570         (lv_update_pending_stmts): Remove.
5571         (tree_ssa_loop_version): Use flush_pending_stmts instead of
5572         lv_update_pending_stmts.
5573         * tree-ssa.c (flush_pending_stmts): New.
5574
5575 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
5576
5577         PR target/15286
5578         * final.c (alter_subreg): Compute correct offset to use with
5579         paradoxical SUBREGs of memory operands.
5580         * recog.c (general_operand): Allow paradoxical SUBREGs of
5581         memory operands after reload.
5582         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
5583         has failed when passed a hard register.
5584
5585 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
5586
5587         * function.c (assign_parm_setup_block): Handle parallels correctly.
5588
5589 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5590
5591         * final.c (shorten_branches): Initialize flags structure.
5592
5593 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5594
5595         * tree.c (int_cst_node, int_cst_hash_table): New variables.
5596         (init_ttree): Initialize them.
5597         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
5598         (build_int_cst_wide): Use hash table for oversized integers.
5599
5600 2004-10-28  Nick Clifton  <nickc@redhat.com>
5601
5602         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
5603         begin_label.
5604
5605 2004-10-27  Richard Henderson  <rth@redhat.com>
5606
5607         PR middle-end/18163
5608         * expr.c (emit_group_load): Don't go force temporary for memory
5609         or concat source.
5610         (emit_group_store): Similarly.
5611
5612 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5613
5614         PR other/18186
5615         * common.opt (--param): Fix spelling of parameter.
5616
5617 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5618
5619         PR tree-opt/17529
5620         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
5621         Don't fold statement.
5622         <case ASM_EXPR>: Fold the statement.
5623
5624 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5625
5626         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5627         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
5628
5629 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5630
5631         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
5632         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
5633         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
5634         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
5635
5636 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5637
5638         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
5639         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
5640         punctuation outside quotes.
5641
5642 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
5643             James E Wilson  <wilson@specifixinc.com>
5644
5645         PR target/13158
5646         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
5647         sibcall alloc instruction.
5648         (process_set): Handle sibcall alloc instruction.
5649
5650 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
5651
5652         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
5653         SUBTARGET_ATTRIBUTE_TABLE.
5654         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
5655         (SUBTARGET_ATTRIBUTE_TABLE): Define.
5656         * config/darwin.c (darwin_handle_weak_import_attribute): New.
5657         (HAVE_DEAD_STRIP): Delete.
5658         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
5659         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
5660         Prototype.
5661
5662         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
5663
5664         * config/darwin.h (GTHREAD_USE_WEAK): Define.
5665
5666 2004-10-28  Ben Elliston  <bje@au.ibm.com>
5667
5668         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
5669         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
5670         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
5671         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
5672         * tree-sra.c: Include "params.h".
5673         (decide_block_copy): Use new parameters.
5674         * doc/invoke.texi (Optimize Options): Document new SRA pass
5675         parameters sra-max-structure-size and sra-field-structure-ratio.
5676
5677 2004-10-27  Nicolas Pitre <nico@cam.org>
5678
5679         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
5680
5681 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
5682
5683         PR tree-optimization/18048
5684         * fold-const.c (try_move_mult_to_index): New function.
5685         (fold): Use try_move_mult_to_index.
5686         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
5687         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
5688         an all-ones unsigned constant without extra bits.
5689         * tree.c (build_low_bits_mask): New function.
5690         * tree.h (build_low_bits_mask): Declare.
5691
5692 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
5693
5694         PR target/17956
5695         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
5696         final condition.
5697         (minsf3): Same.
5698         (maxdf3): Same.
5699         (mindf3): Same.
5700
5701 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5702
5703         * tree-cfg.c (thread_jumps): Speed up by reordering the two
5704         conditions for entering basic blocks into worklist.
5705
5706 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5707
5708         * tree-cfg.c (thread_jumps): Speed up by pretending to have
5709         ENTRY_BLOCK_PTR in worklist.
5710
5711 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5712
5713         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5714         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
5715
5716 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
5717
5718         Fix PR tree-optimization/17133
5719
5720         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
5721         def kill operand.
5722
5723         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
5724         (get_v_must_def_result_ptr): Modify for new structure of
5725         v_must_defs array.
5726         (get_v_must_def_kill_ptr): New.
5727         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
5728         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5729         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5730         (op_iter_init): Initialize new mustu members.
5731         (op_iter_next_mustdef): New function.
5732         (op_iter_init_mustdef): Ditto.
5733
5734         * tree-flow.h (rewrite_def_def_chains): New function.
5735
5736         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
5737         (ssa_mark_def_sites): Ditto.
5738         (rewrite_stmt): Ditto.
5739         (ssa_rewrite_stmt): Ditto.
5740         (rewrite_blocks): Factor out from rewrite_into_ssa.
5741         (mark_def_block_sites): Ditto.
5742         (rewrite_def_def_chains): New function, just rewrites def-def
5743         chains without phi node insertion.
5744
5745         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
5746
5747         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
5748
5749         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
5750         they include the rhs now.
5751
5752         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
5753         V_MUST_DEF_RESULT.
5754
5755         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
5756         Update callers.
5757         (mark_really_necessary_kill_operand_phis): New function.
5758         (perform_tree_ssa_dce): Call it.
5759         (pass_dce): Add TODO_fix_def_def_chains.
5760         (pass_cd_dce): Ditto.
5761
5762         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
5763         well.
5764         (rewrite_mem_refs): Ditto.
5765
5766         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
5767         as well.
5768
5769         * tree-ssa-operands.c (allocate_v_may_def_optype):
5770         v_may_def_operand_type_t became v_def_use_operand_type_t.
5771         (allocate_v_must_def_optype) Ditto.
5772         (finalize_ssa_v_must_defs): Update for new operand type, as well
5773         as setting the use portion as well.
5774         (copy_virtual_operands): Copy the kill operand as well.
5775         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
5776         V_MUST_DEF_RESULT.
5777
5778         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
5779         v_def_use_operand_type.
5780         (v_must_def_optype_d): Use v_def_use_operand_type.
5781         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
5782         (V_MUST_DEF_KILL_*): New macros.
5783         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
5784         members.
5785         Rename existing must_i and num_v_must members to mustd_i and
5786         num_v_mustd.
5787         (SSA_OP_VMUSTDEFKILL): New flag.
5788         (SSA_OP_VIRTUAL_KILLS): New flag.
5789         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
5790         (SSA_OP_ALL_KILLS): New flag.
5791         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
5792
5793         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
5794
5795         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
5796         became V_MUST_DEF_RESULT.
5797         (rename_variables_in_bb): Rename kill pointer as well.
5798
5799         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
5800         immediate uses.
5801
5802 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
5803
5804         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
5805         the block that needs it.
5806
5807 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5808
5809         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
5810         ATTRIBUTE_UNUSED.
5811
5812 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5813
5814         * c-lex.c (cb_def_pragma): Clean up code for making location
5815         palatable to diagnostic.c.
5816
5817 2004-10-27  Steven Bosscher  <stevenb@suse.de>
5818
5819         PR tree-optimization/17757
5820         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
5821         without any PHI arguments left.  Make sure the argument that
5822         we're supposed to remove exists at all.
5823
5824 2004-10-27  Paul Brook  <paul@codesourcery.com>
5825
5826         * configure.ac: Don't test for [build] __cxa_atexit when building a
5827         cross compiler.
5828         * configure: Regenerate.
5829
5830 2004-10-27  Paul Brook  <paul@codeosurcery.com>
5831
5832         * configure.ac: Use build_exeext not host_exeext when lookin for
5833         target tools.
5834         * configure: Regenerate.
5835
5836 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5837
5838         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
5839
5840 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5841             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
5842
5843         PR middle-end/14684
5844         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
5845         to match -fprofile-use.
5846
5847 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5848
5849         * config/rs6000/rs6000.c: Fix a comment typo.
5850
5851 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5852
5853         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
5854         counter.
5855
5856 2004-10-27  Andreas Schwab  <schwab@suse.de>
5857
5858         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
5859         unused.
5860         (default_stabs_asm_out_constructor): Likewise.
5861
5862 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
5863
5864         * builtins.c (fold_builtin_unordered_cmp): Always bring both
5865         operands to the same type.
5866
5867 2004-10-26  James E Wilson  <wilson@specifixinc.com>
5868
5869         PR target/18010
5870         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
5871
5872 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
5873
5874         * dbxout.c: Include obstack.h.
5875         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
5876         default definition.
5877         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
5878         Default-define here.
5879         (DBX_CONTIN_LENGTH): Move definition with others.
5880         (DBX_FINISH_STABS): New target macro.
5881         (current_sym_code, current_sym_value, current_sym_addr)
5882         (current_sym_nchars, CHARS, dbxout_continue)
5883         (print_int_cst_octal, print_octal, print_wide_int)
5884         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
5885         (stabstr_ob, stabstr_last_contin_point): New variables.
5886         (NUMBER_FMT_LOOP): New improper macro.
5887         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
5888         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
5889         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
5890         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
5891         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
5892         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
5893         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
5894         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
5895         New functions and/or proper function-like macros.
5896         (CONTIN): Use stabstr_continue, unconditionally.
5897         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
5898         (dbxout_init): Initialize stabstr_ob.  Check
5899         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
5900         if it was used.  Use the new interfaces.
5901         (dbxout_source_file): Remove file argument; always write to
5902         asm_out_file.  Use the new interfaces.
5903         (dbxout_type_method_1): Remove second argument which is always
5904         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
5905         (dbxout_type_methods): Remove write-only variables.  Use the
5906         new interfaces.
5907         (dbxout_parms): Refactor to remove code duplicated in each of
5908         several successive if-else-if blocks.  Use the new interfaces.
5909         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
5910         (dbxout_source_line, dbxout_finish, dbxout_type_index)
5911         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
5912         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
5913         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
5914         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
5915         Use the new interfaces.
5916         * Makefile.in (dbxout.o): Update dependencies.
5917
5918         * defaults.h: Don't define ASM_STABD_OP.
5919         * output.h: Prototype new dbxout_* interfaces.
5920         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
5921         * varasm.c: Don't define ASM_STABS_OP.
5922         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
5923         Use the new dbxout.c interfaces.  Call sorry if neither
5924         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
5925
5926         * xcoffout.h: Don't define ASM_STABS_OP.
5927         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
5928         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
5929         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
5930         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
5931         do { ... } while (0) idiom.
5932
5933         * config/alpha/alpha.c (num_source_filenames): Export.
5934         * config/alpha/alpha.h (num_source_filenames): Declare.
5935         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5936         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5937         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5938         Always use .debugsym.  Update commentary.
5939         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5940         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5941         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
5942         Use new interfaces.
5943         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
5944         (macho_branch_islands): Use new interfaces.
5945
5946         * doc/tm.texi: Update.
5947
5948 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5949
5950         * expr.c (emit_group_store): Do not treat floats as BLKmode.
5951         (emit_group_load): Same.
5952
5953 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5954
5955         * c-parse.in (datadef): Use pedwarn rather than error and warning
5956         for diagnostic in case of no declaration specifiers.
5957
5958 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
5959
5960         PR bootstrap/15747
5961         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
5962         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
5963         can be used to work around this.
5964
5965 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5966
5967         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
5968         doubles.
5969
5970 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5971
5972         * stmt.c (expand_case): Update a comment.
5973
5974 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5975
5976         * stmt.c (expand_case): Put an assertion that index_expr is
5977         never INTEGER_CST.  Don't special case for constant
5978         index_expr.
5979
5980 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
5981
5982         PR 18162
5983         * c-parse.in (designator): Finish with a semi-colon.
5984
5985 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
5986
5987         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
5988         into rotlsi3.
5989
5990 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5991
5992         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
5993         a default case only.
5994
5995 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5996
5997         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
5998         e500 doubles.
5999         (spe_build_register_parallel): New.
6000         (rs6000_spe_function_arg): Handle e500 doubles.
6001         (function_arg): Same.
6002         (spe_func_has_64bit_regs_p): Same.
6003         (rs6000_function_value): Same.
6004         (rs6000_libcall_value): Same.
6005         (legitimate_lo_sum_address_p): Return false for e500 doubles.
6006
6007         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
6008         doubles.
6009         (DATA_ALIGNMENT): Same.
6010         (CANNOT_CHANGE_MODE_CLASS): Same.
6011
6012 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
6013
6014         * expr.c (emit_group_load): Handle floats.
6015         (emit_group_store): Same.
6016
6017 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
6018
6019         * c-lex.c (get_nonpadding_token): Remove.
6020         (c_lex_with_flags): Push timevar and eat padding here.  Improve
6021         stray token diagnostic.
6022         (lex_string): Replace logic with switch statement, eat padding
6023         token here.
6024
6025 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
6026
6027         PR 18149
6028         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
6029
6030 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
6031
6032         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
6033         to 'non-weak'.
6034         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
6035         (ASM_MAKE_LABEL_LINKONCE): Delete.
6036         (ASM_WEAKEN_DECL): New.
6037         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
6038         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6039         (TEXT_SECTION_ASM_OP): Add a tab.
6040         (DATA_SECTION_ASM_OP): Likewise.
6041         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
6042         data_section on every section change.
6043         (EXTRA_SECTIONS): Add a bunch of new extra sections.
6044         (EXTRA_SECTION_FUNCTIONS): Likewise.
6045         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
6046         (JCR_SECTION_NAME): Define.
6047         (TARGET_SECTION_TYPE_FLAGS): Don't define.
6048         * config/darwin.c (darwin_encode_section_info): A symbol is defined
6049         in this file if it is not weak.
6050         (textcoal_section): Delete.
6051         (datacoal_section): Delete.
6052         (darwin_make_decl_one_only): Delete.
6053         (machopic_select_section): Handle functions.
6054         (darwin_asm_named_section): Add a tab.
6055         (darwin_section_type_flags): Delete.
6056         (darwin_unique_section): Delete contents.
6057         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
6058         DECL_WEAK is set.
6059         * config/darwin-protos.h (darwin_section_type_flags): Delete.
6060         (darwin_make_decl_one_only): Delete.
6061         (text_coal_section): New.
6062         (text_unlikely_section): New.
6063         (text_unlikely_coal_section): New.
6064         (const_coal_section): New.
6065         (data_coal_section): New.
6066         (const_data_coal_section): New.
6067         * varasm.c (function_section): Honour
6068         USE_SELECT_SECTION_FOR_FUNCTIONS.
6069         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
6070         TARGET_USES_WEAK_UNWIND_INFO is in effect.
6071         * dbxout.c (dbxout_source_file): Don't change sections while
6072         a function is being output.
6073
6074 2004-10-25  David Ayers  <d.ayers@inode.at>
6075
6076         * c-common.h: Remove RID_ID.
6077         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
6078         (typespec_reserved_attr): Add rule for TYPENAME
6079         non_empty_protocolrefs.
6080         (yylexname): Remove special handling of RID_ID.
6081
6082 2004-10-25  James E Wilson  <wilson@specifixinc.com>
6083
6084         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
6085
6086 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6087
6088         PR c/16667
6089         * c-parse.in (array_designator): New.
6090         (designator): Use it.
6091         (initelt): Only permit array_designator without '=', not ".foo".
6092
6093 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
6094         * gcc/Makefile.in: removed ggc for cgraphunit.
6095         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
6096         * gcc/cgraph.h: removed static var analysis data structures and calls.
6097         * gcc/cgraphunit.c:
6098         cgraph_mark_local_and_external_functions:changed name to
6099                 cgraph_mark_local_functions
6100         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
6101         cgraph_reset_static_var_maps,get_global_static_vars_info,
6102         get_global_statics_not_read,get_global_statics_not_written,searchc,
6103         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
6104         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
6105         scan_for_static_refs,cgraph_characterize_statics_local,
6106         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
6107         removed.
6108         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
6109         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
6110         analysis
6111         * gcc/tree-flow.h static_vars_info: removed
6112         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
6113         removed calls to static vars analysis.
6114         get_call_expr_operands: removed callee variable.
6115
6116 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6117
6118         * cfg.c (unchecked_make_edge, redirect_edge_succ,
6119         redirect_edge_pred): Use VEC_safe_push instead of
6120         VEC_safe_insert.
6121         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6122
6123 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6124
6125         * cfgloopmanip.c (loopify): Take two more arguments true_edge
6126         and false_edge.
6127         * cfgloop.h: Adjust the corresponding prototype.
6128         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
6129         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
6130
6131 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
6132
6133         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
6134         DECL_INCOMING_RTL is NULL.
6135
6136 2004-10-25  Steven Bosscher  <stevenb@suse.de>
6137
6138         * timevar.def (TV_FIND_REFERENCED_VARS): New.
6139         * tree-dfa.c (pass_referenced_var): Use it.
6140
6141 2004-10-25  Roger Sayle  <roger@eyesopen.com>
6142             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6143
6144         * cse.c: Change encoding of quantity numbers to avoid undefined
6145         pointer arithmetic on qty_table.
6146         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
6147         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
6148         (new_basic_block): Assign "real" quantity numbers from zero.
6149         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
6150         REG_QTY to its unique negative value.
6151         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
6152         (cse_main): Don't include max_reg when determining max_qty.
6153         (cse_basic_block): Avoid subtracting a large offset from qty_table,
6154         which causes undefined C99 behaviour.  Only allocate needed memory.
6155
6156 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6157
6158         * stmt.c (expand_case): Remove an obsolete comment.
6159
6160 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
6161
6162         PR middle-end/17407
6163         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
6164         layout_type as it is already done by build_array_type.
6165         * tree.c (build_array_type): Layout the type even
6166
6167 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
6168
6169         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
6170
6171 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
6172
6173         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
6174         with wider-than-32-bit HOST_WIDE_INTs.
6175
6176 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
6177
6178         * config/mips/mips.c(mips_output_filename): Remove unused
6179         array ltext_label_name
6180
6181 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
6182
6183         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
6184
6185 2004-10-25  Ben Elliston  <bje@au.ibm.com>
6186
6187         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
6188
6189 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
6190
6191         * predict.c (predict_loops): Call scev_finalize instead of
6192         scev_reset.
6193
6194 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
6195
6196         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
6197         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
6198         config/sh/ushmedia.h, config/sparc/elf.h,
6199         config/sparc/sp64-elf.h: Update copyright.
6200
6201 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
6202
6203         * stmt.c (expand_case): Handle the default label outside of
6204         the for loop.  Remove code to handle a missing default label.
6205
6206 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
6207
6208         * dbxout.c (dbxout_function_decl): Don't use
6209         DBX_OUTPUT_FUNCTION_END.
6210         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
6211         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
6212
6213 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
6214
6215         PR middle-end/17967
6216         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
6217
6218 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
6219
6220         * tree-ssa-dom.c (record_equality): Use loop depth to determine
6221         which way to record the equality as well.
6222         (loop_depth_of_name): New function.
6223
6224 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6225
6226         PR middle-end/17793
6227         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
6228         through the operand if it is a useless type conversion.
6229
6230 2004-10-23  Ben Elliston  <bje@au.ibm.com>
6231
6232         * cfg.c (remove_edge): Use VEC_unordered_remove.
6233         (redirect_edge_succ): Likewise.
6234         (redirect_edge_pred): Likewise.
6235         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6236
6237 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6238
6239         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
6240         beyond its end.
6241
6242 2004-10-22  Eric Christopher  <echristo@redhat.com>
6243
6244         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
6245         saves.
6246
6247 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
6248
6249         * config/rs6000/spe.md (spe_extendsfdf2): New.
6250         (movdf_e500_double): New.
6251         (spe_truncdfsf2): New.
6252         (spe_absdf2): New.
6253         (spe_nabsdf2): New.
6254         (spe_negdf2): New.
6255         (sub_adddf3): New.
6256         (spe_subdf3): New.
6257         (spe_muldf3): New.
6258         (spe_floatsidf2): New.
6259         (spe_floatunssidf2): New.
6260         (fix_truncdfsi2): New.
6261         (spe_fixuns_truncdfsi2): New.
6262
6263         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
6264         (fpr_truncdfsf2): New.
6265         (negdf2): Change to expander.
6266         (fpr_negdf2): New.
6267         (fpr_nabsdf2): Name pattern.
6268         (adddf3): Change to expander.
6269         (fpr_adddf3): Nem.
6270         (subdf3): Change to expander.
6271         (fpr_subdf3): New.
6272         (muldf3): Change to expander.
6273         (fpr_muldf3): New.
6274         (divdf3): Change to expander.
6275         (fpr_divdf3): New.
6276         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
6277         (cmpdf): Allow for TARGET_E500_DOUBLE.
6278
6279 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6280
6281         * c-semantics.c (re_push_stmt_list): Remove.
6282         * c-common.h: Remove the corresponding prototype.
6283
6284 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6285
6286         * stmt.c (asm_op_is_mem_input): Remove.
6287         * tree.h: Remove the corresponding prototype.
6288
6289 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6290
6291         * tree-gimple.c (is_gimple_constructor_elt): Remove.
6292         * tree-gimple.h: Remove the corresponding prototype.
6293
6294 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * varasm.c (get_pool_mode_for_function, get_pool_offset):
6297         Remove.
6298         * rtl.h: Remove the corresponding prototypes.
6299
6300 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6301
6302         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
6303         edge information when we commit ourselves to threading a
6304         particular jump.
6305
6306 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6307
6308         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
6309         into worklist instead of their indexes.
6310
6311 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6312
6313         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
6314         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
6315         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
6316         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
6317         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
6318         tree-scalar-evolution.c, tree-ssa-dom.c,
6319         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
6320         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
6321         tree-vectorizer.c, vec.h: Fix comment formatting.
6322
6323 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6324
6325         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
6326         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
6327
6328 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6329
6330         * config/ptx4.h, config/mcore/mcore-pe.h,
6331         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
6332
6333 2004-10-22  Peter Barada <peter@the-baradas.com>
6334
6335         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
6336         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
6337         renaming of non-live registers in interrupt functions.
6338         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
6339
6340 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
6341
6342         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
6343         Use integer for loop counter.
6344         (num_ending_zeros): New function.
6345         (number_of_iterations_cond): Use num_ending_zeros.
6346
6347 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
6348
6349         * config.gcc: Add support for --enable-e500_double.
6350
6351         * config/rs6000/e500-double.h: New file.
6352
6353         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
6354         TARGET_E500_DOUBLE.
6355
6356         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
6357         TARGET_E500_DOUBLE.
6358
6359         * config/rs6000/linuxspe.h: Same.
6360
6361         * doc/invoke.texi (Option Summary): Document new options for
6362         mfloat-gprs.
6363         (RS/6000 and PowerPC Options): Same.
6364
6365         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
6366         function.
6367         (rs6000_override_options): Use it.  Use
6368         SUB3TARGET_OVERRIDE_OPTIONS.
6369         Add 8548 to processor_target_table.
6370         (rs6000_legitimate_address): Handle e500 doubles.
6371         (rs6000_legitimize_address): Same.
6372         (rs6000_legitimize_reload_address): Same.
6373         (rs6000_hard_regno_nregs): Same.
6374         (spe_func_has_64bit_regs_p): Same.
6375         (emit_frame_save): Same.
6376         (gen_frame_mem_offset): Same.
6377         (rs6000_dwarf_register_span): Same.
6378         (rs6000_generate_compare): Same.
6379         (easy_fp_constant): Same.
6380         (legitimate_offset_address_p): Same.
6381
6382         * config/rs6000/spe.md: (cmdfeq_gpr): New.
6383         (tstdfeq_gpr): New.
6384         (cmpdfgt_gpr): New.
6385         (tstdfgt_gpr): New.
6386         (tstdfgt_gpr): New.
6387         (cmpdflt_gpr): New.
6388         (tstdflt_gpr): New.
6389         Add new constants.
6390
6391 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6392
6393         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
6394
6395 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
6396
6397         * dbxout.c: Remove unnecessary #undefs.
6398         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
6399         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
6400         definition into use sites.
6401         (cwd): Make local to dbxout_init.
6402         (dbxout_init): Restructure cwd-using logic for clarity.  Use
6403         IS_DIR_SEPARATOR.
6404         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
6405         STABS_GCC_MARKER folded in here.
6406         * system.h: Poison now-unused macros.
6407         * doc/tm.texi: Remove documentation of now-unused macros.
6408
6409 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
6410
6411         PR c/17538
6412         * c-opts.c (push_command_line_include): Use the current file
6413         name instead of the main one.
6414
6415 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
6416
6417         PR objc/17923
6418         * tree.c (staticp): A CONST_DECL has static storage if either
6419         TREE_STATIC or DECL_EXTERNAL is set.
6420         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
6421         have null names.
6422
6423 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6424
6425         * expr.c (store_expr): Remove dont_store_target.
6426
6427 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6428
6429         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
6430
6431 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6432
6433         * tree-cfg.c (thread_jumps): Move a part of it to ...
6434         (thread_jumps_from_bb): ... here.
6435
6436 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
6437
6438         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
6439         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
6440
6441 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6442
6443         * expr.c (store_expr): Clean up by renaming want_value to
6444         call_param_p.
6445
6446 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6447
6448         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
6449         fixup pc here.
6450
6451 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
6452
6453         PR 18004.
6454         * expmed.c (store_bit_field): Pass original 'value' before
6455         recursing.
6456
6457 2004-10-21  Nicolas Pitre <nico@cam.org>
6458
6459         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
6460         * config/arm/ieee754-df.S: Ditto.
6461
6462 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
6463
6464         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
6465         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
6466         Default to 0.
6467         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
6468         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
6469         an internal label and an N_SLINE .stabn whose value is the
6470         difference between that label and the function entry label.
6471         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
6472         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
6473         label and an N_SO stab with an empty string referring to it.
6474         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
6475         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
6476         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
6477         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
6478         macro is never defined.
6479         * sdbout.c (sdbout_source_line_counter): Delete.
6480         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
6481         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
6482         only two arguments.
6483         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
6484
6485         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
6486         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
6487         definitions (identical to default).
6488         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
6489         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
6490         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
6491         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
6492         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
6493         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
6494         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
6495         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
6496         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
6497         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
6498         (sym_lineno): Delete.
6499         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
6500         now-unused variable.
6501         (alpha_output_lineno): Delete.
6502         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
6503         * config/mips/mips.c (mips_output_filename): Don't use
6504         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
6505         (mips_output_lineno): Delete.
6506         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
6507         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
6508         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
6509         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
6510         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
6511         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
6512         * config/mmix/mmix.h: Likewise.
6513         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
6514         * config/mmix/mmix-protos.h: Don't prototype it.
6515         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
6516         no need to #undef ASM_OUTPUT_SOURCE_LINE.
6517         * config/arm/aout.h: Remove RISCiX-specific definition of
6518         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
6519         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
6520         ASM_OUTPUT_SOURCE_LINE.
6521         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
6522         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
6523         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
6524
6525         * doc/tm.texi: Update.
6526
6527 2004-10-20  Richard Henderson  <rth@redhat.com>
6528
6529         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
6530
6531 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
6532
6533         * configure.ac: Revert my previous patch.
6534         * configure: Regenerate.
6535
6536 2004-10-20  Ben Elliston  <bje@au.ibm.com>
6537
6538         * config/rs6000/rs6000.c
6539         (rs6000_va_start): Use build_va_arg_indirect_ref.
6540         (rs6000_gimplify_va_arg): Likewise.
6541
6542 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
6543
6544         PR java/15575
6545         * configure.ac: Declare AM_LANGINFO_CODESET.
6546         * aclocal.m4: Define AM_LANGINFO_CODESET.
6547         * configure, config.in: Rebuilt.
6548
6549 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6550
6551         * expr.c (store_expr): Remove code that is run when
6552         want_value & 1 is nonzero.
6553
6554 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
6555
6556         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
6557         from function pointer to void *.
6558
6559 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6560
6561         PR target/18032
6562         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
6563         the frame pointer adjustment when exception handling is enabled.
6564
6565 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6566
6567         * stor-layout.c: Fix a comment typo.
6568
6569 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6570
6571         * expr.c (store_field): Remove two arguments value_mode and
6572         unsignedp.
6573         (expand_assignment, store_constructor_field,
6574         expand_expr_real_1): Adjust calls to store_field.
6575
6576 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
6577
6578         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
6579
6580         PR target/17317
6581         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
6582         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
6583         base and index register for loads.
6584
6585         * config/arc/t-arc: Fix multilib handling.
6586
6587 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
6588
6589         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6590         don't inspect BLOCK_FOR_INSN for barriers.
6591         * emit-rtl.c (emit_barrier_before): Revert last change.
6592         (emit_barrier_after, emit_barrier): Ditto.
6593
6594         * doc/extend.texi (Extended Asm): Warn and provide example
6595         solution for using a call-clobbered asm register.
6596         (Local Reg Vars): Similar.  Cross-reference example.
6597
6598 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
6599
6600         * tree-cfg.c (group_case_labels): Look at the second to last
6601         case statement for combing with the default case.
6602
6603 2004-10-19  Richard Hendeson  <rth@redhat.com>
6604
6605         PR 17962
6606         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
6607
6608 2004-10-19  Richard Hendeson  <rth@redhat.com>
6609
6610         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
6611         succeeds, only expand the result.
6612
6613 2004-10-19  Richard Hendeson  <rth@redhat.com>
6614
6615         PR middle-end/17885
6616         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
6617         of INDIRECT_REF.
6618
6619 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6620
6621         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
6622         loop with goto.
6623
6624 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6625
6626         * expr.c (expand_assignment): Remove the last argument.
6627         Change the return type to void.
6628         * expr.h: Update the prototype of expand_assignment.
6629         * function.c (assign_parm_setup_reg): Update a call to
6630         expand_assignment.
6631         * stmt.c (expand_asm_expr): Likewise.
6632
6633 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6634
6635         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
6636         unnecessary assignments to temp.  Return const0_rtx.
6637
6638 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6639
6640         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
6641
6642 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
6643
6644         * configure.ac (powerpc-*-darwin*): Require assembler to support
6645         .machine directive.
6646         * configure: Regenerate.
6647
6648 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6649
6650         * reload1.c (ior_hard_reg_set): Remove.
6651         (finish_spills): Use IOR_HARD_REG_SET instead of
6652         ior_hard_reg_set.
6653
6654 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6655
6656         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
6657         the currently visited word to right.
6658
6659 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6660
6661         PR middle-end/18045
6662         * expmed.c (expand_smod_pow2): Handle modes whose size
6663         is greater than that of HOST_WIDE_INT.
6664
6665 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
6666
6667         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
6668
6669 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6670             Roger Sayle  <roger@eyesopen.com>
6671
6672         PR middle-end/17813
6673         * dojump.c (discard_pending_stack_adjust): New function.
6674         (clear_pending_stack_adjust): Call it.
6675         * expr.h (discard_pending_stack_adjust): Declare it.
6676         * explow.c (emit_stack_save): Emit pending stack adjustments
6677         before saving the stack pointer.
6678         (emit_stack_restore): Discard pending stack adjustments before
6679         restoring the stack pointer.
6680
6681 2004-10-18  Richard Henderson  <rth@redhat.com>
6682
6683         * c-common.c (handle_mode_attribute): Allow scalar->vector
6684         type changes yet.
6685
6686 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6687
6688         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
6689         value to expand_assignment.
6690
6691 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6692
6693         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
6694         thread_jumps.
6695         (thread_jumps): Iterate until no new forwarder block arises.
6696
6697 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6698
6699         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
6700         (thread_jumps): Use forwardable as cache of
6701         tree_forwarder_block_p throughout the function.
6702
6703 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6704
6705         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
6706
6707 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
6708
6709         PR middle-end/15014
6710         PR middle-end/16973
6711         * tree-cfg.c (remove_bb): If we have a label expression in the
6712         basic block and the label we have taken the address, move the
6713         label expression to the basic block which is previous in the
6714         linked list.
6715         (tree_verify_flow_info): Fix printing out the label name of the
6716         problematic label expression.
6717
6718 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
6719
6720         PR rtl-optimization/18002
6721         * simplify-rtx.c (mode_signbit_p): Externalize function...
6722         * rtl.h (mode_signbit_p): ... to here.
6723         * combine.c (simplify_shift_const): Recognize PLUS signbit as
6724         canonical form of XOR signbit and move to outer op.
6725
6726 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6727
6728         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
6729         Update all callers.
6730         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
6731         Don't call fold_stmt more than once, use bsi_replace.
6732
6733 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6734
6735         PR tree-optimization/17656
6736         * tree-ssa.c (replace_immediate_uses): When replacing a
6737         constant, if the call to fold_stmt produced a different
6738         statement, get an appropriate statement pointer by scanning
6739         STMT's basic block.
6740
6741 2004-10-18  Richard Henderson  <rth@redhat.com>
6742
6743         * pointer-set.c (hash1): Don't use libm functions in fallback case.
6744
6745 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
6746
6747         PR bootstrap/17684
6748         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
6749         (stage1-start): Remove and copy libunwind.a and
6750         libunwind*$(SHLIB_EXT) instead of libunwind*.
6751         (stage2-start): Likewise.
6752         (stage3-start): Likewise.
6753         (stage4-start): Likewise.
6754         (stageprofile-start): Likewise.
6755         (stagefeedback-start): Likewise.
6756
6757         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
6758         the shared library to be created and don't remove the existing
6759         shared library.
6760         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
6761         * config/i386/t-nwld (SHLIB_LINK): Likewise.
6762         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
6763         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
6764         * config/sh/t-linux (SHLIB_LINK): Likewise.
6765         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
6766         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
6767         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
6768         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6769
6770         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
6771         files.
6772
6773 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6774
6775         * basic-block.h (reg_set_iterator): New.
6776         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
6777         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
6778         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
6779         * caller-save.c (save_call_clobbered_regs): Adjust to the new
6780         style.
6781         * cfgcleanup.c (thread_jump): Likewise.
6782         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6783         * conflict.c (conflict_graph_compute): Likewise.
6784         * flow.c (verify_local_live_at_start, update_life_info,
6785         initialize_uninitialized_subregs, propagate_one_insn,
6786         init_propagate_block_info, free_propagate_block_info,
6787         propagate_block, dump_regset): Likewise.
6788         * global.c (global_conflicts): Likewise.
6789         * graph.c (start_bb): Likewise.
6790         * local-alloc.c (update_equiv_regs): Likewise.
6791         * loop.c (load_mems): Likewise.
6792         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
6793         find_reg, finish_spills): Likewise.
6794         * resource.c (mark_target_live_regs): Likewise.
6795         * sched-deps.c (sched_analyze_insn): Likewise.
6796         * sched-rgn.c (sched-rgn.c): Likewise.
6797         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
6798
6799 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
6800
6801         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
6802         operand 1 instead of 2
6803
6804 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6805
6806         * loop-unroll.c: Fix comment typos.
6807
6808 2004-10-18  Revital Eres  <eres@il.ibm.com>
6809
6810         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
6811         * loop-unroll.c: Include varray.h.
6812         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
6813         opt_info and expand it to support variable expansion.
6814         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
6815         expand it to support variable expansion.
6816         (pt_info_start_duplication): Rename si_info_start_duplication.
6817         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
6818         to the variable expansion optimization.
6819         (free_opt_info): Rename free_si_info.
6820         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
6821         expand_var_during_unrolling, insert_var_expansion_initialization,
6822         combine_var_copies_in_loop_exit, release_var_copies,
6823         get_expansion): New functions.
6824         (peel_loop_completely, unroll_loop_constant_iterations,
6825         unroll_loop_runtime_iterations, peel_loop_simple,
6826         unroll_loop_stupid): Change uses of struct si_info
6827         to struct opt_info
6828         and add uses of fvariable-expansion-in-unroller flag.
6829         * params.def: Add parameter to restrict the number of expansions.
6830         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
6831         the number of expansions.
6832         * common.opt: (fvariable-expansion-in-unroller): New flag.
6833         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
6834
6835 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
6836
6837         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
6838         __GXX_MERGED_TYPEINFO_NAMES to 0.
6839
6840 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
6841
6842         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6843         handle barriers in a bb by checking that it points to a NULL bb.
6844         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
6845         (emit_barrier_after, emit_barrier): Ditto.
6846
6847 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
6848
6849         * doc/extend.texi (Attribute Syntax): Clarify details of
6850         attributes on parameters.
6851
6852 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
6853
6854         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
6855         loop.
6856
6857 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6858
6859         Revert:
6860         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6861
6862         * c-typeck.c (default_function_array_conversion): Always create
6863         &a[0] for array types.
6864         (build_unary_op): Do not fold &a[x] into a + x.
6865
6866 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6867
6868         PR middle-end/17925
6869         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
6870         block if there is a goto with a locus.
6871
6872 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6873
6874         * config/elfos.h, config/gofast.h, config/interix.h,
6875         config/netbsd.h, config/svr3.h, config/vxworks.h,
6876         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
6877         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
6878         config/alpha/netbsd.h, config/arm/arm-modes.def,
6879         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
6880         config/cris/aout.h, config/frv/frv-modes.def,
6881         config/i386/beos-elf.h, config/i386/gas.h,
6882         config/i386/i386-coff.h, config/i386/i386-modes.def,
6883         config/i386/linux.h, config/i386/linux64.h,
6884         config/i386/mingw32.h, config/i386/netbsd-elf.h,
6885         config/i386/netbsd64.h, config/i386/sco5.h,
6886         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
6887         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
6888         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
6889         config/mips/mips-modes.def, config/mips/sdb.h,
6890         config/mips/vr.h, config/mips/vxworks.h,
6891         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
6892         config/pa/pa32-linux.h, config/rs6000/40x.md,
6893         config/rs6000/7450.md, config/rs6000/8540.md,
6894         config/rs6000/linuxspe.h, config/rs6000/power4.md,
6895         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
6896         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
6897         config/s390/s390-modes.def, config/sh/elf.h,
6898         config/sh/sh-modes.def, config/sh/sh64.h,
6899         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
6900         config/stormy16/stormy16.md, config/v850/v850-protos.h,
6901         config/vax/vax.md: Update copyright.
6902
6903 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6904
6905         * expr.c (expand_expr_real_1): Remove an obsolete comment.
6906
6907 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6908
6909         * c-typeck.c (default_function_array_conversion): Always create
6910         &a[0] for array types.
6911         (build_unary_op): Do not fold &a[x] into a + x.
6912
6913 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
6914
6915         * pointer-set.c (hash1): Use integer part of 2^64 / phi
6916         instead 2^32 / phi if long is 64-bit.
6917
6918 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
6919
6920         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
6921         RID_PTRVALUE.
6922         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
6923         declarations.
6924         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
6925         __ptrextent__, __ptrvalue and __ptrvalue__.
6926         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
6927         entries.
6928
6929 2004-10-16  Dale Johannesen  <dalej@apple.com>
6930
6931         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
6932
6933 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6934
6935         PR tree-optimization/17766
6936         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
6937         (dom_info_available_p): Declare.
6938         * cfghooks.c (split_block, make_forwarder_block): Use
6939         dom_info_available_p.
6940         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
6941         free_dominance_info, verify_dominators): Ditto.
6942         (dom_info_available_p): New function.
6943         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
6944         (thread_jumps): Use dom_info_available_p.
6945         * tree-complex.c (expand_complex_div_wide): Ditto.
6946         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
6947
6948 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6949
6950         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
6951         (find_best_candidate): Take also important candidates into account.
6952         (find_optimal_iv_set): Initialize important_candidates bitmap.
6953
6954 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6955
6956         PR tree-optimization/17560
6957         * predict.c (tree_estimate_probability): Mark irreducible
6958         loops.
6959
6960 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6961
6962         PR rtl-optimization/17723
6963         * cfgcleanup.c (merge_memattrs): Handle case when
6964         MEM_SIZE == NULL_RTX.
6965
6966 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
6967
6968         * toplev.c (dump_file_name): Change type to be const.
6969
6970 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
6971
6972         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
6973         non_lvalue to stop something being a null pointer constant.
6974
6975 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
6976
6977         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
6978         available for TARGET_FPRS.
6979         (FUNCTION_VALUE_REGNO_P): Same.
6980
6981 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
6982
6983         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6984         -maltivec in same style as other ISA options.
6985
6986 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
6987
6988         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
6989         definition.
6990
6991 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
6992
6993         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
6994         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
6995         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
6996         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
6997         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
6998         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
6999         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
7000         predict.def, predict.h, protoize.c, reload.h, resource.h,
7001         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
7002         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
7003         unwind-sjlj.c, value-prof.h: Update copyright.
7004
7005 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
7006
7007         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
7008
7009 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
7010
7011         * tree-optimize.c (execute_one_pass): Stop timer right after
7012         executing the pass.
7013
7014 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7015
7016         Revert:
7017         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7018         PR middle-end/17967
7019         Revert:
7020                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
7021                 (remove_useless_stmts_1):  Fold trees we know how to fold.
7022
7023 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
7024
7025         * configure.ac: Add .machine power4 directive when testing for
7026         mfcr field.
7027         * configure: Regenerate.
7028
7029 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
7030
7031         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
7032
7033 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7034
7035         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
7036         always.
7037
7038 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
7039
7040         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
7041         for 'f' if !TARGET_FPRS.
7042
7043 2004-10-14  Richard Henderson  <rth@redhat.com>
7044
7045         PR debug/14492
7046         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
7047
7048 2004-10-14  Richard Henderson  <rth@redhat.com>
7049
7050         PR c/17023
7051         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
7052         as error_mark_node.
7053         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
7054         instaed of current_function_decl non-null.
7055
7056 2004-10-14  Matt Austern  <austern@apple.com>
7057
7058         * pointer-set.c: New file, special-purpose hash table.
7059         * pointer-set.h: New file.
7060         * tree.h (struct pointer_set_t): Declare as opaque type.
7061         (tree_walk): Last argument is pointer_set_t* now.
7062         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
7063         (walk_type_fields):
7064         (walk_tree): Convert from htab_t to pointer_set_t for keeping
7065         track of which nodes have already been visited.
7066         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
7067         * cgraphunit.c (cgraph_create_edges): Likewise.
7068         (cgraph_characterize_statics_local): Likewise.
7069         * tree-dfa.c (collect_dfa_stats): Likewise.
7070         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
7071         pointer_set_t* now.
7072         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
7073         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
7074         of walk_subtrees is pointer_set_t* now.
7075         * Makefile.in (OBJS-common): add pointer-set.o
7076         (tree-inline.o): Depends on pointer-set.h
7077         (tree-dfa.o): Likewise
7078         (cgraphunit.o): Likewise
7079
7080 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
7081
7082         * config/rs6000/darwin.h (ASM_SPEC): Delete.
7083         (TARGET_ASM_FILE_START): Define.
7084         * config/darwin.h (ASM_SPEC): Define.
7085         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
7086         -mlong-double-128, it's the default.  Update comment about reason
7087         for force_cpusubtype_ALL.
7088         * config/rs6000/darwin-vecsave.asm: Supply .machine.
7089         * config/rs6000/darwin-world.asm: Likewise.
7090         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
7091         (symbolic_operand): Delete #if 0ed code.
7092
7093 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7094
7095         * stmt.c (add_case_node): Make sure that we have integer
7096         constant before calling tree_int_cst_compare.
7097
7098 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7099
7100         PR middle-end/17967
7101         Revert:
7102                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
7103                 (remove_useless_stmts_1):  Fold trees we know how to fold.
7104
7105 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
7106
7107         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
7108         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
7109         -m64.
7110
7111 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
7112
7113         * reload.c (find_reloads): When reloading a PLUS with constant
7114         operand, make sure the constant is pushed to the constant pool
7115         if required.
7116         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
7117         reload bug workaround.
7118         (s390_expand_plus_operand): Likewise.
7119
7120 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
7121
7122         * opts.c (common_handle_option): Do not enable
7123         flag_speculative_prefetching for -fprofile-generate/use.
7124
7125 2004-10-14  Devang Patel  <dpatel@apple.com>
7126
7127         PR 17635
7128         * tree-if-conv.c (process_phi_nodes): Process latch block.
7129         (combine_blocks): Process latch block and update loop structure.
7130
7131 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
7132
7133         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
7134         (vect_update_ivs_after_vectorizer):
7135         (vect_transform_for_unknown_loop_bound):
7136         (tree_duplicate_loop_to_edge):
7137         (allocate_new_names):
7138         (rename_use_op):
7139         (rename_def_op):
7140         (rename_variables_in_bb):
7141         (free_new_names):
7142         (rename_variables_in_loop):
7143         (copy_phi_nodes):
7144         (update_phis_for_duplicate_loop):
7145         (update_phi_nodes_for_guard):
7146         (make_loop_iterate_ntimes):
7147         (tree_duplicate_loop_to_edge_cfg):
7148         (add_loop_guard):
7149         (vect_analyze_loop_with_symbolic_num_of_iters):
7150         (verify_loop_for_duplication):
7151         (vect_gen_niters_for_prolog_loop):
7152         (vect_update_niters_after_peeling):
7153         (vect_update_inits_of_dr):
7154         (vect_update_inits_of_drs):
7155         (vect_build_loop_niters):
7156         (vect_do_peeling_for_alignment): New functions.
7157         (vect_transform_loop): Add unknown and known but indivisible loop
7158         bound support; add peeling for unalignment support.
7159         (vect_analyze_loop_form): Support symbolic number of iterations.
7160         (vect_transform_loop_bound): New input parameter.
7161         (vect_get_loop_niters): Change input parameter type.
7162         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
7163         (vectorizable_store): Allow unaligned access.
7164         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
7165         (vect_analyze_data_refs_alignment): Allowed one unaligned
7166         store.
7167         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
7168         to use tree.
7169         (LOOP_VINFO_INT_NITERS): New macro.
7170         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
7171         (do_peeling_for_alignment):
7172         (unaligned_drs): New members of _loop_vec_info.
7173         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
7174
7175 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
7176
7177         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
7178         (struct tree_string): Remove "const" qualifier for "str".
7179
7180 2004-10-14  Ira Rosen  <irar@il.ibm.com>
7181
7182         * tree-vectorizer.c (vect_analyze_data_refs): Call
7183         vect_get_base_and_bit_offset to get memory tag for array ref.
7184         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
7185
7186 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
7187
7188         * configure.ac: Use $LN_S for creating symlinks (not $LN).
7189         * configure: Regenerate.
7190
7191 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7192
7193         * doc/install.texi (*-*-solaris2*): Update with info about kernel
7194         patches to solve spurious testsuite failures.
7195
7196 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
7197
7198         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
7199         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
7200         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
7201         gcc_assert under ENABLE_CHECKING.
7202         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
7203         get_vectype_for_scalar_type).
7204
7205         (vect_get_vec_def_for_operand): Remove redundant variables.
7206         (vect_transform_loop): Likewise.
7207
7208 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
7209
7210         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
7211         global for -mcaller-super-interworking.
7212         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
7213         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
7214         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
7215         not need a frame pointer.
7216         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
7217         the soft frame pointer offset.
7218         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
7219         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
7220         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
7221         the stack.  Use frame_pointer_needed to choose between them.
7222         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
7223         (interwork_with_frame): New macro.
7224         (interwork): Add _interwork_{r7,r11}_call_via_rN().
7225
7226 2004-10-14  Ben Elliston  <bje@au.ibm.com>
7227
7228         PR other/17900
7229         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
7230         up the filename looking for a previous directory separator.
7231
7232 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7233
7234         * c-tree.h (enum c_typespec_kind, struct c_typespec,
7235         parser_xref_tag): New.
7236         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
7237         typedef_p.
7238         (declspecs_add_type): Adjust prototypes.
7239         * c-parse.in (%union): Add tstype.
7240         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
7241         typespec_reserved_attr, typespec_nonreserved_nonattr,
7242         structsp_attr, structsp_nonattr): Change to tstype.  Update
7243         actions.
7244         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
7245         (declspecs_add_type): Update to take struct c_typespec argument.
7246         Set tag_defined_p and typedef_p as appropriate.
7247         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
7248         Update to return struct c_typespec.
7249         (shadow_tag_warned): Don't let empty declarations with qualifiers
7250         or storage class specifiers redeclare a tag if a previous
7251         declaration is visible.
7252
7253 2004-10-13  Richard Henderson  <rth@redhat.com>
7254
7255         PR debug/15860
7256         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
7257         for DECL_INCOMING_RTL.
7258
7259 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
7260
7261         PR target/17984
7262         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
7263         trunc_int_for_mode for constants used in shortened mode.
7264
7265 2004-10-13  Richard Henderson  <rth@redhat.com>
7266
7267         PR c/17384
7268         * c-common.c (handle_mode_attribute): Disallow mode changes that
7269         alter the CODE of the top-level type.
7270
7271         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
7272         integer from internal limits macros.
7273         * config/i386/mm3dnow.h (__v2sf): Fix base type.
7274
7275 2004-10-13  Richard Henderson  <rth@redhat.com>
7276
7277         PR debug/13841
7278         * function.c (instantiate_decl): Recurse for CONCAT.
7279
7280 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
7281
7282         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
7283         andi./andis.
7284         (anddi3): Same.
7285         (extzvdi_internal1): Add attribute "compare".
7286         (extzvdi_internal2): Same.
7287
7288 2004-10-12  Tom Tromey  <tromey@redhat.com>
7289
7290         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
7291
7292 2004-10-13  Dale Johannesen  <dalej@apple.com>
7293
7294         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
7295
7296 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
7297
7298         * toplev.c (compile_file): Call mudflap_finish_file from here ...
7299         * c-decl.c (c_write_global_declarations): ... instead of here ...
7300         * cp/decl.c (cp_finish_file): ... and here.
7301         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
7302
7303 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
7304
7305         * tree-ssa-dom.c (record_range): Free the element if we are not
7306         going to use it.
7307
7308 2004-10-13  Tom Tromey  <tromey@redhat.com>
7309
7310         PR java/15578:
7311         * gcc.c (option_map): Added --extdirs and --encoding.
7312
7313 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7314
7315         PR target/14454
7316         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
7317         sparc_can_output_mi_thunk.
7318         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
7319         handling of vcall offset.
7320         (sparc_can_output_mi_thunk): New predicate.
7321         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
7322         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
7323         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
7324
7325         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
7326
7327         * config/sparc/sparc.md (movdi): Remove redundant test.
7328
7329 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
7330
7331         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
7332         TDF_IPA from -fdump-tree-*-all.
7333
7334 2004-10-13  Paul Brook  <paul@codesourcery.com>
7335
7336         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
7337         * config/arm/arm.c (thumb_find_work_register): Update comments.
7338         (arm_load_pic_register): Add argument for scratch register.
7339         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
7340         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
7341
7342 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
7343
7344         * tree-data-ref.c: Fix comment typos.
7345
7346 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
7347             Zdenek Dvorak  <dvorakz@suse.cz>
7348
7349         PR tree-optimization/17724
7350         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
7351
7352 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
7353
7354         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
7355         (altivec_builtin_mask_for_store): Likewise.
7356         (altivec_init_builtins): Use lang_hooks.builtin_function to
7357         create the decls for builtin_altivec_mask_for_load/store.
7358
7359 2004-10-13  Nick Clifton  <nickc@redhat.com>
7360
7361         * config/c4x/c4x.c: Remove inclusion of loop.h.
7362
7363 2004-10-12  Ben Elliston  <bje@au.ibm.com>
7364
7365         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
7366         (ei_container): New; renamed.
7367         (ei_start, ei_last): New macros.
7368         (ei_start_1, ei_last_1): Renamed from ei_start.
7369         (ei_last_1, ei_end_p): Use ei_container() where applicable.
7370         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
7371         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
7372
7373 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
7374
7375         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
7376         * cfgloop.c (initialize_loops_parallel_p): New.
7377         (flow_loops_find): Initialize the parallel_p field to true for all
7378         the loops.
7379         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
7380         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
7381         the size of the data accessed in the loop.
7382         (struct nb_iter_bound): Moved...
7383         * cfgloop.h (struct nb_iter_bound): ... here.
7384         (estimated_nb_iterations, parallel_p): New fields in struct loop.
7385         (record_estimate): Declare extern here.
7386         * tree-chrec.c: Fix comments.
7387         (nb_vars_in_chrec): New function.
7388         * tree-chrec.h (nb_vars_in_chrec): Declared here.
7389         * tree-data-ref.c: Don't include lambda.h, that is already included
7390         in tree-data-ref.h.
7391         (tree_fold_divides_p): Don't check for integer_onep.
7392         (tree_fold_bezout): Removed.
7393         (gcd): New static duplicated function.
7394         (int_divides_p, dump_subscript): New.
7395         (dump_data_dependence_relation): Use dump_subscript.
7396         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
7397         estimate_niter_from_size_of_data): New.
7398         (analyze_array_indexes, analyze_array): Call
7399         estimate_niter_from_size_of_data during the detection of array
7400         references.  Pass in a pointer to the statement that contains the
7401         array reference.
7402         (all_chrecs_equal_p): New.
7403         (compute_distance_vector): Renamed compute_subscript_distance.
7404         Deal with multivariate conflict functions.
7405         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
7406         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
7407         (non_affine_dependence_relation): New.
7408         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
7409         analyze_siv_subscript, analyze_miv_subscript,
7410         analyze_overlapping_iterations, subscript_dependence_tester):
7411         Initialize and return last_conflicts function.
7412         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
7413         compute_overlap_steps_for_affine_1_2): New.
7414         (analyze_siv_subscript_affine_cst): Removed.
7415         (analyze_subscript_affine_affine): Disprove dependences based on the
7416         iteration domains.  Solve the univariate dependence case as before,
7417         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
7418         Implement the multivariate case of 2 versus 1 variables.
7419         (build_classic_dist_vector, build_classic_dir_vector): Implement some
7420         unhandled cases.
7421         (find_data_references_in_loop): Compute and initialize
7422         loop->estimated_nb_iterations and loop->parallel_p.
7423         (analyze_all_data_dependences): Modify the debug dump order.
7424         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
7425         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
7426         (SUB_LAST_CONFLICT, subscript->last_conflict,
7427         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
7428         DDR_AFFINE_P, DDR_SIZE_VECT): New.
7429         (find_data_references_in_loop, initialize_data_dependence_relation,
7430         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
7431
7432 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
7433
7434         * configure: Regenerate.
7435
7436 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
7437
7438         PR 17892
7439         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
7440         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
7441         and constant folding of floating point MULT_EXPR/PLUS_EXPR
7442         expressions.
7443
7444 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
7445
7446         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
7447         (s390_gimplify_va_arg): Likewise.
7448
7449 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
7450
7451         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
7452         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
7453         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
7454         * regclass.c (record_address_regs): Remove ifdef.  Use
7455         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
7456         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
7457         definition.
7458         (scan_rtx_address, replace_oldest_value_addr): Use
7459         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
7460         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
7461         unnecessary definitions.
7462         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
7463         and MODE_BASE_REG_REG_CLASS.
7464         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
7465         (MODE_BASE_REG_REG_CLASS): Define.
7466         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
7467         (REG_MODE_OK_FOR_REG_BASE_P): Define.
7468         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
7469         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
7470
7471 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
7472
7473         * tree-ssa-alias.c (verify_name_tags): New function.
7474         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
7475         (verify_alias_info): Call verify_name_tags.
7476
7477 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
7478
7479         PR rtl-optimization/17931
7480         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
7481         ZERO_EXTRACT in it.
7482
7483 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
7484
7485         * arm.c (arm_print_operand): Use output_operand_lossage where possible
7486         rather than aborting.
7487
7488 2004-10-12  Paul Brook  <paul@coudesourcery.com>
7489
7490         * config.gcc: Add armv6{k,z,zk}
7491         * config/arm/arm-cores.def: Add arm1176 and mpcore.
7492         * config/arm/tune.md: Regenerate.
7493         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
7494         Define.
7495         (all_architectures): Add armv6k, armv6z, armv6zk.
7496         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
7497         * doc/invoke.texi: Document new arch and cpu values.
7498
7499 2004-10-12  Paul Brook  <paul@coodesourcery.com>
7500
7501         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
7502         meabi=4.
7503
7504 2004-10-12  Paul Brook  <paul@codesourcery.com>
7505
7506         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
7507         Handle negative constants.
7508
7509 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
7510
7511         PR c/17301
7512         * c-typeck.c (convert_arguments): Return error_mark_node if there
7513         are too few arguments.
7514         (build_function_call): Handle error_mark_node return from
7515         convert_arguments.
7516
7517 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
7518
7519         * configure.ac (symbolic_link): Replace with $LN_S.
7520         (Assembler/Linker): Hard link from gas and binutils trees.
7521         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
7522         * configure: Regenerate.
7523
7524 2004-10-12  Paul Brook  <paul@codesourcery.com>
7525
7526         * configure.ac: Don't look for host assembler when building a canadian
7527         cross.
7528         * configure: Regenerate.
7529
7530 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7531
7532         PR other/17361
7533         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
7534         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
7535         line options for "-lang-asm" and if found allow any of the C-family
7536         front-end options.
7537         (c_common_handle_option): Remove last use of permit_fortran_options.
7538
7539 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7540
7541         * config/s390/s390.c (print_operand): Support 'S' format flag.
7542         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
7543         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
7544         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
7545         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
7546         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
7547         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
7548         ("*movstricthi"): Likewise.
7549         ("*load_multiple_di", "*load_multiple_si"): Likewise.
7550         ("*store_multiple_di", "*store_multiple_si"): Likewise.
7551         ("*sethiqisi", "*sethihisi"): Likewise.
7552         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
7553         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
7554         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
7555         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
7556         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
7557
7558         ("*tmhi_full"): Fix incorrect op_type attribute.
7559
7560         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
7561         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
7562         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
7563         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
7564
7565 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
7566
7567         PR middle-end/16266
7568         * function.c (temp_slots_at_level): Fix typo which creates too
7569         many temp stack slots levels.
7570
7571 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7572
7573         * config/s390/s390.c (s390_trampoline_template): Generate shorter
7574         trampoline code.
7575         (s390_trampoline_instantiate): Adapt.
7576         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
7577
7578 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7579
7580         PR middle-end/17657
7581         * stmt.c (add_case_node): Add additional type argument.  Declare
7582         as static to match prototype.  Convert the upper and lower bounds
7583         to the specified index type.  Optimize away case ranges/values
7584         that are outside the index type's bounds.  Truncate case ranges
7585         that span the index type's bounds.
7586         (expand_case): Avoid unnessary computation and memory allocation
7587         when index type is error_mark_node.  Pass index_type as required
7588         by change to add_case_node API.  No need to convert case range
7589         bounds to index_type, this is now done by add_case_node.
7590
7591 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7592
7593         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
7594         * config/s390/s390.c (s390_offset_p): New function.
7595         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
7596         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
7597         transform Q->Q alternatives to *clc pattern.
7598         ("*clc"): Move.
7599         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
7600         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
7601         to transform Q->Q alternatives to *mvc pattern.
7602         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
7603         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
7604         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
7605         transform Q->Q alternatives to *nc pattern.
7606         ("*nc"): New insn.  New peephole to merge adjacent NCs.
7607         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
7608         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
7609         transform Q->Q alternatives to *oc pattern.
7610         ("*oc"): New insn.  New peephole to merge adjacent OCs.
7611         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
7612         transform Q->Q alternatives to *xc pattern.
7613         ("*xc"): New insn.  New peephole to merge adjacent XCs.
7614         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
7615
7616 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
7617
7618         * gimplify.c (gimple_push_condition): Make sure that we don't
7619         have any saved condition cleanup if we were at the top level.
7620
7621 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
7622
7623         * config/frv/frv.md (*adddi3_internal): Change name to...
7624         (adddi3): ...replacing the exisiting define_expand.  Combine
7625         alternatives.  Fix the range of the constant constraints ('J' instead
7626         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
7627         to extract the lower and upper halves of the DImode operands.
7628         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
7629         (adddi3_lower): Fix the range of the constant constraints and
7630         remove the bogus operands[2] check.
7631         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
7632         operand 2.  Use addxi to handle constant operands.
7633         (subdi3_lower, subdi3_upper): Don't handle constant operands.
7634
7635 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
7636
7637         * gengtype-lex.l: Add commented } & ) characters to unconfuse
7638         editor's paren matching. Allow #define inside a struct.
7639
7640 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
7641
7642         PR middle-end/17703
7643         part of PR c++/17657
7644         * fold-const.c (fold_build_cleanup_point_expr): New function.
7645         * tree.h (fold_build_cleanup_point_expr): Prototype.
7646
7647 2004-10-10  Eric Christopher  <echristo@redhat.com>
7648
7649         * dwarf2out.c: Move attribute to subprogram declaration
7650         instead of subroutine type.
7651
7652 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7653
7654         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
7655         hoist_insn_after, and hoist_insn_to_edge.
7656         * rtl.h: Remove the prototypes for reg_referenced_between_p,
7657         no_jumps_between_p, and insn_dependent_p.
7658         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
7659         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
7660         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
7661         hoist_insn_to_edge): Remove.
7662
7663 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7664
7665         PR c/17881
7666         * c-decl.c (grokparms): Don't warn for parameters of incomplete
7667         type in declarations that are not definitions except for the case
7668         of parameters of void type.
7669
7670 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7671
7672         * tree-cfg.c: Fix comment typos.
7673
7674 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7675
7676         PR c/17301
7677         * builtins.c (expand_builtin_va_start): Check for too few
7678         arguments to va_start.
7679
7680 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7681
7682         PR c/17189
7683         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
7684         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
7685         pedantic.
7686         * c-parse.in (component_decl): Don't pedwarn here for unnamed
7687         fields.
7688
7689 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
7690
7691         PR tree-optimization/17906
7692         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
7693         copy non-gimple reg arguments.
7694
7695 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7696
7697         PR rtl-optimization/17853
7698         * simplify-rtx.c (simplify_relational_operation): Correct comment.
7699         Reorganize handling of comparison operations with floating point
7700         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
7701         Likewise, introduce support for comparison operations with vector
7702         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
7703
7704         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
7705         * doc/tm.texi: Likewise.
7706
7707 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7708
7709         * regs.h (struct reg_info_def): Remove the last_node_uid and
7710         changes_mode fields.
7711         (REGNO_LAST_NOTE_UID): Don't define.
7712         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
7713         * regmove.c (copy_src_to_dest): Likewise.
7714
7715 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7716
7717         PR middle-end/17894
7718         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
7719         relational comparison operator op needs to be swapped/reversed when
7720         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
7721
7722 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7723
7724         PR tree-opt/17902
7725         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
7726         instead of bsi_start.
7727         (value_replacement): Likewise.
7728         (abs_replacement): Likewise
7729
7730 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7731
7732         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
7733         (expand_gimple_cond_expr, expand_gimple_tailcall,
7734         expand_gimple_basic_block): Use it to dump RTL for each stmt.
7735         (tree_expand_cfg): Announce full RTL function dump.
7736         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
7737         not the graph version.
7738         * tree-pretty-print.c (dump_generic_node): Allow empty statements
7739         in the arms of a COND_EXPR for lowered nodes.
7740
7741 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
7742
7743         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
7744         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
7745         strtoufix16, strtoufix32, strtoufix64): Declare.
7746
7747 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7748
7749         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
7750         for an out-of-range floating point constant.
7751         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
7752         warning if the target format does not support infinities.
7753
7754 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7755
7756         * emit-rtl.c (last_label_num, base_label_num): Remove.
7757         (max_label_num): Always return label_num.
7758         (set_new_last_label_num, restore_emit_status): Remove.
7759         (init_emit): Don't initialize last_label_num.
7760         * function.c (pop_function_context_from): Don't call
7761         restore_emit_status.
7762         * function.h: Remove the prototype for restore_emit_status.
7763         * rtl.h: Remove the prototype for set_new_last_label_num.
7764
7765 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7766
7767         * stmt.c (expand_decl_init): Remove.
7768         * tree.h: Remove the corresponding prototype.
7769
7770 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7771
7772         * integrate.c (try_constants, subst_constants, mark_stores):
7773         Remove.
7774         * integrate.h: Remove the prototype for try_constants.
7775
7776 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7777
7778         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
7779         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
7780         comments about its relevance to errors.
7781         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
7782
7783 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7784
7785         PR c/16999
7786         * c-ppoutput.c (cb_ident): Don't quote string as it is already
7787         quoted.
7788
7789 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
7790
7791         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
7792         reference_node_pool.
7793
7794 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7795
7796         * tree-cfg.c: Fix a comment typo.
7797
7798 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
7799
7800         * config/s390/s390.c (s390_register_info): Don't save fprs for
7801         -msoft-float.
7802         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
7803
7804 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
7805
7806         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
7807         (TARGET_DEFAULT): Use symbolic values.
7808         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
7809         (TARGET_DEFAULT): Use symbolic values.
7810         * config/s390/s390.c (s390_backchain_string): Initialize to
7811         TARGET_DEFAULT_BACKCHAIN.
7812
7813 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7814
7815         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
7816         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
7817         code.
7818         (expand_builtin_strcat): Accept a type parameter.
7819         (fold_builtin_mempcpy): Accept a type and endp parameter.
7820
7821         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
7822         Accept an `exp' instead of an `arglist'.
7823
7824 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
7825
7826         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
7827         reverting my 2004-09-07 patch to use build_int_cst.
7828
7829 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7830
7831         PR target/17245
7832         * config/sparc/sparc.c (input_operand): Remove redundant code
7833         for handling LO_SUM.
7834         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
7835         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
7836         Otherwise only accept it for TFmode if quad move insns are available.
7837
7838 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7839
7840         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
7841         common cases will be caught earlier than others.
7842
7843 2004-10-08  Michael Matz  <matz@suse.de>
7844
7845         * loop-doloop.c (doloop_optimize): Extend count.
7846
7847 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7848
7849         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
7850         (prefetch): Convert to expander.
7851
7852 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7853
7854         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
7855         first argument of CALL.
7856         (tls_local_dynamic): Likewise.
7857
7858 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7859
7860         * c-typeck.c (enum impl_conv): New.
7861         (convert_for_assignment): Use it.  Take tree for function called
7862         instead of its name.  Handle ObjC selectors for diagnostics at
7863         start of function.  Select diagnostic text within the function
7864         using full sentences for diagnsotics.  Use %qE to name functions
7865         in diagnostics.
7866         (convert_arguments, build_modify_expr,
7867         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
7868         callers to convert_for_assignment.
7869         (warn_for_assignment): Remove.
7870
7871 2004-10-08  Nick Clifton  <nickc@redhat.com>
7872
7873         * config/sh/symbian.c (symbian_possibly_export_base_class):
7874         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
7875         TYPE_CONTAINS_VPTR_P.
7876
7877 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7878
7879         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
7880         fixed registers form all_used_regs. Update call_really_used_regs.
7881         (CALL_REALLY_USED_REGISTERS): Define.
7882         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
7883         with call_really_used_regs.
7884
7885 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
7886
7887         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
7888         for -profile as well as -p and -pg.
7889
7890 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
7891
7892         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
7893
7894 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7895
7896         * tree-cfg.c (tree_block_forwards_to): Remove.
7897         * tree-flow.h: Remove the corresponding prototype.
7898
7899 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7900
7901         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
7902         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
7903
7904 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
7905
7906         Radar 3813796
7907         * config/rs6000/rs6000.c (rs6000_generate_compare): When
7908         flag_trapping_math is in effect, don't generate subtract
7909         instructions.
7910
7911 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
7912
7913         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
7914         * config/s390/s390.c (s390_narrow_logical_operator): New function.
7915         (s390_extra_constraint_str): Add 'A' constraints.
7916         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
7917         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
7918         (CONSTRAINT_LEN): Likewise.
7919         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
7920         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
7921         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
7922         ("*iordi3"): Add OI alternative and splitter.
7923         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
7924         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
7925         ("*xordi3"): Add XI alternative and splitter.
7926         ("*xorsi3", "*xorhi3"): Likewise.
7927
7928 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7929
7930         * config/mips/mips.c (mips_function_rodata_section): New function.
7931         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
7932
7933 2004-10-07  Devang Patel  <dpatel@apple.com>
7934
7935         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
7936         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
7937         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
7938         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
7939         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
7940         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
7941         UNSPEC_VCONDU_V16QI): New constant defines.
7942         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
7943         vconduv16qi): New patterns.
7944         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
7945         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
7946         (get_vec_cmp_insn): Same.
7947         (get_vsel_insn): Same.
7948         (rs6000_emit_vector_compare): Same.
7949         (rs6000_emit_vector_select): Same.
7950         (INSN_NOT_AVAILABLE): New.
7951
7952 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7953
7954         PR tree-optimization/17749
7955         * tree-tailcall.c (find_tail_calls): Check that parameter is
7956         a gimple_reg.
7957
7958 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7959
7960         * config/ia64/ia64.c: Fix a comment typo.
7961
7962 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7963
7964         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
7965
7966 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7967
7968         PR c++/17115
7969         * tree-inline.c (expand_call_inline): Do not warn for functions
7970         marked with attribute noinline.
7971
7972 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7973
7974         PR target/17862
7975         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
7976         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
7977
7978         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
7979         of 0 as 4th argument to pass_by_reference.
7980         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
7981
7982 2004-10-06  Eric Christopher  <echristo@redhat.com>
7983
7984         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
7985         attribute.
7986
7987 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7988
7989         PR target/17770
7990         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
7991
7992 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7993
7994         PR rtl-optimization/17791
7995         * loop-doloop.c (doloop_modify): Take number of iterations as
7996         argument.
7997         (doloop_optimize): Extend or shorten the number of iterations
7998         when changing mode of counter register.
7999         * loop-iv.c (lowpart_subreg): Export.
8000         * rtl.h (lowpart_subreg): Declare.
8001
8002 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
8003
8004         PR tree-optimization/17806
8005         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
8006         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
8007         flags moved to split_edge.
8008
8009 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8010
8011         PR middle-end/17835
8012         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
8013         before tentatively building the conditional move sequence.
8014
8015 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8016
8017         PR target/16815
8018         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
8019         check.
8020         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
8021         function_arg_padding.
8022
8023 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8024
8025         PR bootstrap/17857
8026         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
8027
8028 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
8029
8030         * hooks.c (hook_int_void_1, hook_void_int): Remove.
8031         * hooks.h: Remove the corresponding prototypes.
8032
8033 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
8034
8035         PR middle-end/17849
8036         * tree-nested.c (walk_stmt_info): Add changed field.
8037         (convert_nonlocal_reference): Set changed to when we
8038         change a decl to unnested decl.
8039         <case ADDR_EXPR>: Instead of checking if the immediate part
8040         of the ADDR_EXPR changed, check the field changed.
8041         Use recompute_tree_invarant_for_addr_expr instead of unsetting
8042         TREE_INVARIANT.
8043         (convert_local_reference):  Set changed to when we
8044         change a decl to unnested decl.
8045         <case ADDR_EXPR>: Instead of checking if the immediate part
8046         of the ADDR_EXPR changed, check the field changed.
8047         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
8048
8049 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
8050
8051         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
8052         * dwarf2out.c (dwarf2out_init): Remove references to
8053         DWARF2_GENERATE_TEXT_SECTION_LABEL.
8054         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
8055         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
8056
8057 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
8058
8059         * c-typeck.c (convert_arguments): Take expression for called
8060         function rather than its name.  Handle ObjC selectors directly
8061         rather than relying on warn_for_assignment to do so.  Call warning
8062         directly rather than warn_for_assignment.  Use %qE in diagnostics.
8063         Say "argument" rather than "arg" in diagnostics.
8064         (build_function_call): Update call to convert_arguments.
8065
8066 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
8067
8068         PR debug/17787
8069         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
8070         ENUMs specially instead of just saying we do.
8071
8072 2004-10-06  Eric Christopher  <echristo@redhat.com>
8073
8074         * dwarf2.h: Sync with include/elf/dwarf2.h
8075
8076 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8077
8078         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
8079         and TREE_VEC nodes.
8080
8081 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8082
8083         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
8084         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
8085
8086 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8087
8088         * lambda-code.c (compute_nest_using_fourier_motzkin): New
8089         function.
8090         (lambda_compute_auxillary_space): Split from here.
8091
8092 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8093
8094         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
8095         * tree-flow.h: Add prototype.
8096         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
8097         expr_invariant_in_loop.
8098
8099 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
8100
8101         * tree-cfg.c (thread_jumps): Remove a duplicate check for
8102         EXIT_BLOCK_PTR.
8103
8104 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
8105
8106         * config/s390/s390-protos.h (s_imm_operand): Remove.
8107         (s390_pool_operand): Add prototype.
8108         * config/s390/s390.c (general_s_operand): Remove.
8109         (s_imm_operand): Remove.
8110         (s_operand): Merge contents of general_s_operand.
8111         (s390_pool_operand): New function.
8112         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
8113         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
8114         ("*cmpdi_ccu"): Merge Q->Q alternative.
8115         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
8116         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
8117         ("*cli"): Remove.
8118         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
8119         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
8120         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
8121
8122 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
8123
8124         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
8125         call ia64_function_arg_boundary.
8126         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
8127         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
8128         (ia64_function_arg_advance): Do not put 128 bit floats into
8129         FP registers.
8130
8131 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8132
8133         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
8134         Accept an expression instead of an arglist.
8135         (expand_builtin_stpcpy): Accept an expression instead of an
8136         arglist.
8137
8138 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8139
8140         PR target/16007
8141         * doc/install.texi (*-*-solaris2*): Mention potential problem
8142         with Sun assembler + GNU linker and C++ programs.
8143         Document status of binutils 2.15 release.
8144
8145 2004-10-06  Jan Hubicka  <jh@suse.cz>
8146
8147         * cse.c (cse_main): Kill push/pop context.
8148
8149 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
8150
8151         * pretty-print.c: Include tree.h.
8152         (pp_base_prepare_to_format): New function, logic from
8153         text_specifies_location.
8154         (pp_base_format_text): Use gcc_assert.
8155         * pretty-print.h (pp_prepare_to_format): New macro.
8156         (pp_base_prepare_to_format): Prototype.
8157         * diagnostic.c (text_specifies_location): Delete.
8158         (bug_report_request): Delete.
8159         (diagnostic_set_info): Don't call text_specifies_location.
8160         (diagnostic_action_after_output): Put text from
8161         bug_report_request inline here.  Use gcc_unreachable.
8162         (diagnostic_report_current_function): Fix comment.
8163         (diagnostic_report_diagnostic): Clarify logic for error recursion.
8164         Call pp_prepare_to_format before diagnostic_starter.
8165         (trim_filename): Use IS_DIR_SEPARATOR.
8166         (fatal_error, internal_error): Use gcc_unreachable.
8167         (error_recursion): Call diagnostic_action_after_output to
8168         issue the bug_report_request message and exit.
8169         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
8170
8171         * c-parse.in: Add list of diagnostic messages to insulate
8172         translation template from version of yacc/bison used to
8173         compile the grammar.
8174
8175 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
8176
8177         PR 16406
8178         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
8179
8180 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8181
8182         * basic-block.h: Remove the prototype for
8183         flow_preorder_transversal_compute.
8184         * cfganal.c (dfst_node): Remove.
8185         (flow_preorder_transversal_compute): Likewise.
8186         * rtl.h: Remove the prototype for get_jump_table_offset.
8187         * rtlanal.c (get_jump_table_offset): Remove.
8188
8189 2004-10-05  Richard Henderson  <rth@redhat.com>
8190
8191         PR 17756
8192         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
8193
8194 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
8195
8196         PR bootstrap/17817
8197         * Makefile.in: Stage the build directory too.
8198
8199 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
8200
8201         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
8202
8203         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
8204         (frv_emit_move): Same.
8205
8206         * config/frv/frv.c (frv_emit_move): New.
8207         (frv_legitimize_address): New.
8208
8209         * config/frv/frv.md ("movsi"): Call frv_emit_move.
8210         ("movqi"): Same.
8211         ("movhi"): Same.
8212         ("movdi"): Same.
8213         ("movsf"): Same.
8214         ("movdf"): Same.
8215
8216 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8217
8218         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
8219         system headers.
8220
8221 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8222
8223         * c-decl.c (pushdecl): When an extern declaration at block scope
8224         refers to a visible entity with internal linkage, use the old DECL
8225         rather than the new one.
8226
8227 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8228
8229         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
8230         comments.
8231
8232 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8233
8234         * tree-cfg.c (thread_jumps): Remove a duplicate check for
8235         an infinite loop.
8236
8237 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8238
8239         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
8240         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
8241         blocks.
8242
8243 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8244
8245         * tree-cfg.c (cleanup_tree_cfg): Don't call
8246         delete_unreachable_blosk() after thread_jumps().
8247         (thread_jumps): Always remove basic blocks as they become
8248         unreachable.
8249
8250 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8251
8252         * tree-cfg.c (cleanup_tree_cfg): Remove variable
8253         something_changed.  Simplify the while loop.
8254
8255 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8256
8257         * builtins.c (expand_builtin_memmove): Delete duplicate code
8258         and accept a tree type for the result.
8259         (expand_builtin_bcopy): Accept a tree type for the result.
8260         (fold_builtin_memmove): Accept an arglist and tree type for
8261         the result.
8262
8263 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
8264
8265         * config/s390/s390.c (s390_dump_pool): Remove return value.
8266         Use gen_pool_align, gen_pool_section_start/end instead of
8267         gen_pool_start/end_31/64.
8268         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
8269         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
8270         ("pool_start_31", "pool_end_31"): Remove.
8271         ("pool_start_64", "pool_end_64"): Likewise.
8272         ("pool_align", "pool_section_start", "pool_section_end": New insns.
8273
8274         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
8275         (TARGET_CANNOT_COPY_INSN_P): Define.
8276         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
8277         (struct constant_pool): New member 'execute'.
8278         (s390_add_execute, s390_find_execute): New functions.
8279         (s390_execute_label, s390_execute_target): Likewise.
8280         (s390_dump_pool): Output in-pool execute target templates.
8281         (s390_dump_execute): New function.
8282         (s390_alloc_pool, s390_free_pool): Handle execute templates.
8283         (s390_mainpool_start, s390_mainpool_finish): Likewise.
8284         (s390_chunkify_start, s390_chunkify_finish): Likewise.
8285         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
8286         ("*execute"): New insn pattern.
8287         ("movmem_short", "*movmem_short"): Use splitters to generate
8288         explicit execute pattern, remove embedded execute.
8289         ("clrmem_short", "*clrmem_short"): Likewise.
8290         ("cmpmem_short", "*cmpmem_short"): Likewise.
8291
8292 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
8293
8294         * tree-ssa.c (verify_ssa): Verify phi arguments only
8295         contain renamed names.
8296
8297 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
8298
8299         * config/rs6000/linux.h: Formatting, whitespace.
8300         * config/rs6000/linux64.h: Likewise.
8301         * config/rs6000/rs6000-protos.h: Likewise.
8302         * config/rs6000/rs6000.c: Likewise.
8303         (easy_vector_splat_const): Add fall thru comments.
8304         (output_vec_const_move): Likewise.
8305
8306 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
8307
8308         * Makefile.in: Update -Wno-error exceptions for move to build dir.
8309
8310 2004-10-05  Chao-Ying Fu  <fu@mips.com>
8311             Richard Sandiford  <rsandifo@redhat.com>
8312
8313         * doc/invoke.texi (-mpaired-single): Link to the new description of the
8314         built-in functions.  Document dependencies.
8315         (-mips3d): Add link here too.
8316         * doc/extend.texi (MIPS Paired-Single Support): New section.
8317
8318 2004-10-04  Chao-ying Fu  <fu@mips.com>
8319
8320         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
8321
8322 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
8323
8324         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
8325         Initialize OPT_STATS to 0.
8326
8327 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
8328
8329         * tree-data-ref.c: Fix comment typos.
8330
8331 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
8332
8333         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
8334         the predicate cannot be computed, don't initialize the result to
8335         false.
8336
8337 2004-10-01  Eric Christopher  <echristo@redhat.com>
8338
8339         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
8340         locally defined enum.
8341         * dwarf2out.c (add_calling_convention_attribute): Don't
8342         emit DW_CC_normal.
8343
8344 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
8345
8346         PR c/17178, PR c/17820
8347         * c-decl.c (pop_scope): Do not warn about unused static
8348         variables as they warned in the middle-end.
8349
8350 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8351
8352         * builtins.c (expand_builtin_memcpy): Delete duplicate code
8353         and make the first parameter the expression not the arglist.
8354
8355 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
8356
8357         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
8358         as valid modes to expand address expressions.
8359
8360 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
8361
8362         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
8363         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
8364         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
8365         code formatting conventions.
8366
8367 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
8368
8369         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
8370
8371 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
8372
8373         PR tree-optimization/16632
8374         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
8375         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
8376         where | is used instead of &.
8377
8378 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
8379
8380         * ginclude/stddef.h: Fix a comment typo.
8381
8382 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8383
8384         PR target/17443
8385         * config.gcc (i?86-*-solaris2*): Restore correct logic
8386         for --enable-threads option.
8387         (sparc64-*-solaris2*): Likewise.
8388         (sparc-*-solaris2*): Likewise.
8389
8390 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
8391
8392         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
8393         (OS_MISSING_POWERPC64): Move, and comment.
8394         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
8395         (OS_MISSING_POWERPC64): Move, and comment.
8396
8397 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
8398
8399         * arm.c (output_call_mem): Add missing \t.
8400
8401 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8402
8403         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
8404         expand_builtin_strncmp): Delete duplicate code.
8405
8406 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
8407
8408         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
8409         take check-base and -limit arguments.
8410         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
8411         check ranges for ARRAY_REF and COMPONENT_REF.
8412         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
8413         instrumentation.
8414
8415 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
8416
8417         * c-objc-common.c (c_tree_printer): Correct description of %E.
8418         Don't fall through after printing an expression.
8419
8420 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
8421
8422         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
8423
8424 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
8425
8426         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
8427         delete_unrechable_blocks() only when necessary.
8428
8429 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
8430
8431         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
8432         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
8433         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
8434         __gthread_recursive_mutex_unlock): New functions.
8435
8436 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
8437
8438         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
8439         * config/s390/tpf-eh.c: Remove file.
8440         * config/s390/tpf-unwind.h: New file.
8441         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
8442         (MD_UNWIND_SUPPORT): Define.
8443
8444 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
8445
8446         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
8447
8448 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
8449
8450         * config/s390/s390-protos.h (s390_comparison): Add prototype.
8451         * config/s390/s390.c (s390_comparison): New function.
8452         (s390_branch_condition_mask): Return -1 for invalid comparisons.
8453         (s390_branch_condition_mnemonic): Assert valid comparison.
8454         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
8455         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
8456         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
8457         s390_comparison instead of comparison_operator.
8458
8459         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
8460         ("cmpmemdi"): Remove.
8461         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
8462         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
8463         ("cmpint_si"): Rename to ...
8464         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
8465         ("cmpint_di", "*cmpint_di"): Likewise.
8466         * config/s390/s390.c (s390_canonicalize_comparison): Remove
8467         redundant UNSPEC_CMPINT conversions.
8468         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
8469
8470 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
8471
8472         * collect2.c (COLLECT_PARSE_FLAG): Remove.
8473         (main): Remove a reference to COLLECT_PARSE_FLAG
8474         * system.h: Poison COLLECT_PARSE_FLAG.
8475         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
8476
8477 2004-10-01  Paul Brook  <paul@codesourcery.com>
8478
8479         * config/arm/crti.asm: Give _init and _fini function type.
8480
8481 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
8482
8483         * common.opt (ftree-loop-ivcanon): Enable by default.
8484         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
8485         Enable complete loop unrolling.
8486         (canonicalize_induction_variables, tree_unroll_loops_completely):
8487         Reset scev info.
8488
8489 2004-10-01  Paul Brook  <paul@codesourcery.com>
8490
8491         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
8492         not register number.
8493         (thumb_find_work_register): Search full register range.
8494
8495 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
8496
8497         PR tree-opt/17343
8498         * tree-cfg.c (group_case_labels): Get the label and not
8499         the case expr for the default case.
8500         When the label we looking at is the default, decrement the
8501         new_size.
8502
8503 2004-10-01  Jan Hubicka  <jh@suse.cz>
8504
8505         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
8506         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8507         * toplev.h (tree_rest_of_compilation): Update prototype.
8508         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
8509
8510 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
8511
8512         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
8513         cleanup_control_flow() out of the while loop.
8514
8515 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
8516
8517         * tree-vectorizer.c (vectorizable_operation): Fail unless
8518         the mode for the vector type is indeed a vector mode.
8519
8520 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
8521
8522         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
8523         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
8524         of convert.
8525         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
8526         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
8527         follow_ssa_edge_in_rhs): Ditto.
8528         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
8529         (dump_iv): Dump base_object.
8530         (dump_use, dump_cand): Use dump_iv.
8531         (determine_base_object): New function.
8532         (alloc_iv): Initialize base_object field.
8533         (record_use): Clear the ssa_name field of iv.
8534         (get_computation_cost_at): Do not use difference of addresses of
8535         two different objects.
8536         (may_eliminate_iv): Do not require the loop to have just single exit.
8537         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
8538         (nonzero_p): New function.
8539         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
8540         tree_simplify_using_condition, simplify_using_initial_conditions,
8541         loop_niter_by_eval, find_loop_niter_by_eval,
8542         estimate_numbers_of_iterations_loop, compare_trees,
8543         upper_bound_in_type, lower_bound_in_type,
8544         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
8545         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
8546         instead of integer_(non)zerop.
8547
8548 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
8549
8550         Revert
8551         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8552
8553         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8554         and TI_VA_LIST_FPR_COUNTER_FIELD.
8555         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8556         * tree-pass.h (pass_stdarg): Add.
8557         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8558         * tree-stdarg.c: New file.
8559         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8560         (tree-stdarg.o): Add dependencies.
8561         * function.h (struct function): Add va_list_gpr_size and
8562         va_list_fpr_size fields.
8563         * function.c (allocate_struct_function): Initialize them.
8564
8565         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8566         va_list_{g,f}pr_counter_field.
8567         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8568         area will not be used.  Only save registers that tree-stdarg.c
8569         detected they need saving.
8570         (ix86_va_start): Don't set up fields that won't be used.
8571
8572         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8573         va_list_{g,f}pr_counter_field.
8574         (setup_incoming_varargs): Don't do anything if reg_save
8575         area will not be used.  Only save registers that tree-stdarg.c
8576         detected they need saving.
8577         (rs6000_va_start): Don't set up fields that won't be used.
8578
8579 2004-09-30  Eric Christopher  <echristo@redhat.com>
8580
8581         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
8582         sh abi.
8583         * dwarf2out.c (add_calling_convention_attribute): New function.
8584         (gen_subroutine_type_die): Use.
8585         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
8586         * target.h (gcc_target): Add dwarf_calling_convention.
8587         * hooks.c (hook_int_tree_0): New function.
8588         * hooks.h: Prototype.
8589         * config/sh/sh.c: Include dwarf2.h.
8590         (sh_dwarf_calling_convention): New function.
8591         (TARGET_DWARF_CALLING_CONVENTION): Use.
8592         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
8593
8594 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8595
8596         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8597         expand_builtin_strrchr, expand_builtin_strpbrk,
8598         expand_builtin_strncat, expand_builtin_strspn,
8599         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
8600         code.
8601
8602 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8603
8604         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
8605         prototype.
8606         (s390_logical_operator_ok_p): Likewise.
8607         * config/s390/s390.c (s390_expand_logical_operator): New function.
8608         (s390_logical_operator_ok_p): Likewise.
8609         * config/s390/s390.md ("anddi3"): New expander.
8610         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
8611         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
8612         ("andsi3"): Use s390_expand_logical_operator.
8613         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
8614         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
8615         ("andhi3"): New expander.
8616         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
8617         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
8618         ("andqi3"): New expander.
8619         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
8620         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
8621         ("iordi3"): New expander.
8622         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
8623         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
8624         ("iorsi3"): Use s390_expand_logical_operator.
8625         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
8626         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
8627         ("iorhi3"): New expiorer.
8628         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
8629         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
8630         ("iorqi3"): New expiorer.
8631         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
8632         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
8633         ("xordi3"): New expander.
8634         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
8635         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
8636         ("xorsi3"): New expander.
8637         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
8638         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
8639         ("xorhi3"): New expander.
8640         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
8641         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
8642         ("xorqi3"): New expander.
8643         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
8644         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
8645
8646 2004-09-30  Roger Sayle  <roger@eyesopen.com>
8647
8648         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
8649         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
8650         machine mode as the result.
8651
8652 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8653
8654         PR bootstrap/17761
8655         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
8656         FOR_EACH_EDGE macros.
8657
8658 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8659
8660         * c-tree.h (readonly_error): Remove.
8661         * c-typeck (enum lvalue_use): New.
8662         (lvalue_or_else, readonly_error): Use it.  All callers changed.
8663         (readonly_error): Make static.
8664
8665 2004-09-30  Jan Hubicka  <jh@suse.cz>
8666
8667         PR debug/13974
8668         * cfgrtl.c (try_redirect_by_replacing_jump,
8669         force_nonfallthru_and_redirect, commit_one_edge_insertion,
8670         cfg_layout_merge_blocks):  Do not attach any line number information
8671         to newly inserted instructions.
8672         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
8673         emit_insn_*_noloc.
8674         (emit_*insn_before, emit_insn*_after): New.
8675         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
8676         existing locators.
8677         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
8678         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
8679
8680 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8681
8682         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
8683         (s390_return_address_offset): Remove.
8684         (s390_can_eliminate): Add prototype.
8685         (s390_initial_elimination_offset): Add prototype.
8686         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
8687         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
8688         * config/s390/s390.c (s390_arg_frame_offset): Remove.
8689         (s390_return_address_offset): Remove.
8690         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
8691         (struct machine_function): New member split_branches_pending_p.
8692         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
8693         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
8694         (s390_optimize_prologue): Remove base_used argument.  Call
8695         s390_update_frame_layout instead of s390_register_info.  Handle
8696         prologue/epilogue insns that touch only RETURN_REGNUM.
8697         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
8698         (s390_register_info): Remove base_used and return_addr_used
8699         arguments, compute special register usage inline.  Return live
8700         register data to caller.
8701         (s390_frame_info): Remove arguments, do not call s390_register_info.
8702         (s390_init_frame_layout): New function.
8703         (s390_update_frame_layout): Likewise.
8704         (s390_emit_prologue): Call s390_update_frame_layout; some code
8705         move to there.  Do not emit pool placeholder insn if unnecessary.
8706
8707 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8708
8709         * config/s390/s390.c (legitimate_reload_constant_p): Remove
8710         floating point constant workaround.
8711         (s390_secondary_input_reload_class): Handle PLUS reloads
8712         with too-large constant.
8713         (s390_expand_plus_operand): Likewise.
8714         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
8715         ("movsi"): Likewise.  Also, remove workaround for non-general
8716         operands.
8717         ("movdf"): Do not call force_const_mem.
8718         ("movsf"): Likewise.  Merge expander with *movsf insn.
8719         ("*movsf"): Remove, merge with movsf expander.
8720
8721 2004-09-30  Paul Brook  <paul@codesourcery.com>
8722
8723         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
8724         (ENDFILE_SPEC): Define.
8725         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
8726
8727 2004-09-30  Richard Henderson  <rth@redhat.com>
8728
8729         * config/alpha/qrnnd.asm: Mark for noexecstack.
8730
8731 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8732
8733         * protoize.c, tree-cfg.c: Fix comment typos.
8734
8735 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8736
8737         PR c/17730
8738         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
8739
8740 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
8741
8742         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
8743         expressions...
8744         (add_pointed_to_expr): ... here.
8745         Call add_pointed_to_expr for variables with DECL_INITIAL set.
8746         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
8747         pointer variable, if set.
8748
8749 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8750
8751         * config/sh/sh.c: Follow spelling conventions.
8752
8753 2004-09-29  Richard Henderson  <rth@redhat.com>
8754
8755         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
8756         * doc/tm.texi (DWARF_ZERO_REG): New.
8757
8758         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
8759         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
8760         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
8761
8762 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
8763
8764         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
8765         with a PLUS as source operand.
8766         (expand_movstr): Likewise.
8767         (expand_builtin_stpcpy): Likewise.
8768
8769 2004-09-29  Richard Henderson  <rth@redhat.com>
8770
8771         PR 17739
8772         * tree-gimple.c (is_gimple_reg): Reject hard registers.
8773         (is_gimple_asm_val): New.
8774         * tree-gimple.h (is_gimple_asm_val): Declare.
8775         * gimplify.c (gimplify_asm_expr): Use it.
8776         * tree-pretty-print.c (print_declaration): Dump hard regs.
8777         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
8778         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8779         * tree-ssa-pre.c (is_undefined_value): Likewise.
8780         * tree-ssa-copy.c (may_propagate_copy): Likewise.
8781         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
8782         * tree-ssa.c (warn_uninit): Likewise.
8783         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
8784
8785 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
8786
8787         * c-decl.c (merge_decls): Use comptype when comparing
8788         types to decide on DECL_SIZE save of olddecl.
8789
8790 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
8791
8792         * tree.h (INDIRECT_REF_P): New macro.
8793         * alias.c (get_alias_set): Use it
8794         (nonoverlapping_memrefs_p): Ditto.
8795         * emit-rtl.c (mem_expr_equal_p): Ditto.
8796         (set_mem_attributes_minus_bitpos): Ditto.
8797         (is_gimple_addressable): Ditto.
8798         (get_base_address): Ditto.
8799         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
8800         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
8801         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
8802         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
8803         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
8804         (add_address_candidates): Ditto.
8805         (rewrite_address_base): Ditto.
8806
8807 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8808
8809         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
8810         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
8811         (rewrite_ssa_into_ssa): Likewise.
8812         * tree-phinodes.c (create_phi_node): Access the number of
8813         predecessor edges using EDGE_COUNT() and not num_preds.
8814
8815 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
8816
8817         PR c/7425
8818         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
8819
8820 2004-09-29  Eric Christopher  <echristo@redhat.com>
8821
8822         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
8823
8824 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
8825
8826         * config/cris/cris.md (moverside, movemside): With MEM, make sure
8827         the address is (plus reg mem).
8828
8829 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
8830
8831         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
8832
8833 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8834
8835         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
8836         cascaded if ... else if with a switch.
8837
8838 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8839
8840         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
8841
8842 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8843
8844         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8845         and TI_VA_LIST_FPR_COUNTER_FIELD.
8846         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8847         * tree-pass.h (pass_stdarg): Add.
8848         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8849         * tree-stdarg.c: New file.
8850         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8851         (tree-stdarg.o): Add dependencies.
8852         * function.h (struct function): Add va_list_gpr_size and
8853         va_list_fpr_size fields.
8854         * function.c (allocate_struct_function): Initialize them.
8855
8856         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8857         va_list_{g,f}pr_counter_field.
8858         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8859         area will not be used.  Only save registers that tree-stdarg.c
8860         detected they need saving.
8861         (ix86_va_start): Don't set up fields that won't be used.
8862
8863         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8864         va_list_{g,f}pr_counter_field.
8865         (setup_incoming_varargs): Don't do anything if reg_save
8866         area will not be used.  Only save registers that tree-stdarg.c
8867         detected they need saving.
8868         (rs6000_va_start): Don't set up fields that won't be used.
8869
8870 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8871
8872         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
8873         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
8874         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
8875         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
8876         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
8877         ATTR_NONNULL_1_4): New.
8878
8879 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8880
8881         PR tree-optimization/17697
8882         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
8883         cfg if needed.
8884
8885 2004-09-28  Per Bothner  <per@bothner.com>
8886
8887         * profile.c (branch_prob): Pass correct value to output_location,
8888         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
8889
8890 2004-09-28  Richard Henderson  <rth@redhat.com>
8891
8892         PR 15089
8893         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
8894         * tree-flow.h (may_propagate_copy_into_asm): Declare.
8895         * tree-ssa-ccp.c (replace_uses_in): Use it.
8896         * tree-ssa-dom.c (cprop_operand): Likewise.
8897
8898 2004-09-28 Jeff Law  <law@redhat.com>
8899
8900         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
8901         that no outgoing edges be left in the duplicate block.  Do no
8902         update information on outgoing edges or PHI nodes in target
8903         blocks here.
8904         (remove_ctrl_stmt_and_useless_edges): Renamed from
8905         remove_last_stmt_and_useless_edges.  Handle case where the
8906         block is empty or has no control statements.  Do not update edge
8907         flags here.
8908         (thread_block): Create a template block rather than copying the
8909         original block every time.  Create outgoing edges from the
8910         duplicate blocks and update PHIs at the target of the outgoing
8911         edges here.  Fix edge flags for the original block if necessary.
8912         * cfghooks (duplicate_block): No longer assert that the original
8913         block has incoming edges.
8914
8915 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
8916
8917         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
8918         Reg Vars to enforce register allocation with general constraints.
8919         (Explicit Reg Vars): Clarify relation to asm statements.
8920         (Local Reg Vars): Similar.
8921
8922 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8923
8924         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
8925         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
8926         build_control_flow, new_edge): Remove.
8927         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
8928         (bitlst, bitlst_table_last, bitlst_table): Remove.
8929         (bblst): Store basic_block pointer instead of block index.
8930         (bblst_table): Likewise.
8931         (edgelst): Store edge pointer instead of edge index.
8932         (edgelst_table, edgelst_last): New variables.
8933         (extract_bitlst): Rename to ...
8934         (extract_edgelst): ... this.  Return edge pointers, not indices.
8935         (split_edges): Update call.
8936         (rgn_edges): Store edge pointers instead of indices.
8937         (edge_to_bit): Remove.
8938         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
8939         (SET_EDGE_TO_BIT): New macro.
8940         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
8941         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
8942         data structures instead of haifa_edge et al.  Use edge pointers
8943         instead of edge indices everywhere.
8944         (compute_dom_prob_ps): Use standard CFG data structures.  Account
8945         for exit edges.
8946         (compute_trg_info): Likewise.
8947         (propagate_deps): Likewise.
8948         (debug_candidate): Account for bblst data structure change.
8949         (check_live_1, update_live_1, is_pfree): Likewise.
8950         (IS_REACHABLE): Use standard CFG data structures.
8951         (init_ready_list): Update bblst_table/edgelst_table allocation.
8952         (schedule_region): Update alloc/cleanup code to data structure
8953         changes.  Use edge->aux to store per-region edge index.
8954         (init_regions): No longer call build_control_flow.  Do not
8955         create edge list any more.
8956
8957 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8958
8959         * cse.c (cse_insn): Avoid creating direct non-local jumps.
8960         * combine.c (can_combine_p): Likewise.
8961         * local-alloc. (update_equiv_regs): Likewise.
8962
8963 2004-09-28  Richard Henderson  <rth@redhat.com>
8964
8965         PR 17531
8966         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
8967         Don't check VOIDmode here.  Force PLUS operands to common type.
8968         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
8969         Pmode if given a non pointer type.
8970
8971 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8972
8973         PR 17531
8974         * optabs.c (expand_binop): Force constants to the correct mode.
8975
8976 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8977
8978         * config/s390/s390.c (s390_adjust_cost): Remove.
8979         (TARGET_SCHED_ADJUST_COST): Do not redefine.
8980         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
8981         * config/s390/s390.md ("main_pool"): Use "larl" type
8982         attribute if TARGET_CPU_ZARCH.
8983
8984 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
8985
8986         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
8987         variable.
8988
8989 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8990
8991         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
8992         name to the pass.
8993
8994 2004-09-28  Steven Bosscher  <stevenb@suse.de>
8995
8996         * common.opt (flag_gcse_sm): Disable by default.
8997         (flag_gcse_las): Likewise.
8998         (flag_web): Likewise.  Create from this file.
8999         * flags.h: Remove flag_web declaration.
9000         * toplev.c (flag_web): Likewise.
9001         (process_options): Never set flag_web.
9002
9003 2004-09-28  Steven Bosscher  <stevenb@suse.de>
9004
9005         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
9006         * tree-ssa-propagate.c: Include vec.h.
9007         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
9008         instead of varrays.
9009         (cfg_blocks_add): Assert the block is not already in the worklist.
9010         Update uses of interesting_ssa_edges and varying_ssa_edges.
9011         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
9012         ssa_propagate): Likewise.
9013
9014 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9015
9016         PR c/16409
9017         * c-decl.c (start_decl): Check for initializing incomplete array
9018         of VLAs.
9019         (build_compound_literal): Check for TYPE being error_mark_node.
9020         * c-parse.in (primary): Check for VLA compound literals.
9021
9022 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9023
9024         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
9025         with --disable-checking.
9026
9027 2004-09-28  Devang Patel  <dpatel@apple.com>
9028
9029         * tree-pretty-print.c (dump_generic_node): Print vector types.
9030
9031 2004-09-28  Nick Clifton  <nickc@redhat.com>
9032
9033         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
9034         invocation of the function sh_init_cumulative_args.
9035         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
9036         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
9037         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
9038         * config/sh/sh.c (sh_init_cumulative_args): New function based
9039         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
9040         heuristic added to determine the setting of force_mem when a
9041         library function is being called.
9042
9043 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9044
9045         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
9046         Skip constant arguments.
9047
9048 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9049
9050         * tree-ssa-alias.c (create_name_tags): If PTR points to a
9051         volatile type, mark the tag volatile.
9052         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
9053         volatile.
9054
9055 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
9056
9057         * tree.def (vec_cond_expr): Fix. Change 'e'
9058         to tcc_expression.
9059
9060 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
9061
9062         * basic-block.h: Fix a comment typo.
9063
9064 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
9065
9066         * optabs.c, optabs.h: Fix comment typos.
9067
9068 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
9069
9070         * config/sparc/sparc.md (call_address_struct_value_sp32):
9071         Properly mask the immediate field of the 'unimp' instruction.
9072         (call_symbolic_struct_value_sp32): Likewise.
9073
9074 2004-09-28  Ben Elliston  <bje@au.ibm.com>
9075             Steven Bosscher  <stevenb@suse.de>
9076             Andrew Pinski  <pinskia@physics.uc.edu>
9077
9078         Merge from edge-vector-branch:
9079         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
9080         (struct edge_def): Remove pred_next, succ_next members.
9081         (struct basic_block_def): Remove pred, succ members.  Add preds
9082         and succs members of type VEC(edge).
9083         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
9084         (BRANCH_EDGE): Likewise.
9085         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
9086         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
9087         (edge_iterator): New.
9088         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
9089         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
9090         (FOR_EACH_EDGE): New.
9091         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
9092         where applicable.
9093         (rotate_loop): Likewise.
9094         (find_traces_1_route): Likewise.
9095         (bb_to_key): Likewise.
9096         (connect_traces): Likewise.
9097         (copy_bb_p): Likewise.
9098         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
9099         (add_labels_and_missing_jumps): Likewise.
9100         (fix_up_fall_thru_edges): Likewise.
9101         (find_jump_block): Likewise.
9102         (fix_crossing_conditional_branches): Likewise.
9103         (fix_crossing_unconditional_branches): Likewise.
9104         (add_reg_crossing_jump_notes): Likewise.
9105         * bt-load.c (augment_live_range): Likewise.
9106         * cfg.c (clear_edges): Likewise.
9107         (unchecked_make_edge): Likewise.
9108         (cached_make_edge): Likewise.
9109         (make_single_succ_edge): Likewise.
9110         (remove_edge): Likewise.
9111         (redirect_edge_succ_nodup): Likewise.
9112         (check_bb_profile): Likewise.
9113         (dump_flow_info): Likewise.
9114         (alloc_aux_for_edges): Likewise.
9115         (clear_aux_for_edges): Likewise.
9116         (dump_cfg_bb_info): Likewise.
9117         * cfganal.c (forwarder_block_p): Likewise.
9118         (can_fallthru): Likewise.
9119         (could_fall_through): Likewise.
9120         (mark_dfs_back_edges): Likewise.
9121         (set_edge_can_fallthru_flag): Likewise.
9122         (find_unreachable_blocks): Likewise.
9123         (create_edge_list): Likewise.
9124         (verify_edge_list): Likewise.
9125         (add_noreturn_fake_exit_edges): Likewise.
9126         (connect_infinite_loops_to_exit): Likewise.
9127         (flow_reverse_top_sort_order_compute): Likewise.
9128         (flow_depth_first_order_compute): Likewise.
9129         (flow_preorder_transversal_compute): Likewise.
9130         (flow_dfs_compute_reverse_execute): Likewise.
9131         (dfs_enumerate_from): Likewise.
9132         (compute_dominance_frontiers_1): Likewise.
9133         * cfgbuild.c (make_edges): Likewise.
9134         (compute_outgoing_frequencies): Likewise.
9135         (find_many_sub_basic_blocks): Likewise.
9136         (find_sub_basic_blocks): Likewise.
9137         * cfgcleanup.c (try_simplify_condjump): Likewise.
9138         (thread_jump): Likewise.
9139         (try_forward_edges): Likewise.
9140         (merge_blocks_move): Likewise.
9141         (outgoing_edges_match): Likewise.
9142         (try_crossjump_to_edge): Likewise.
9143         (try_crossjump_bb): Likewise.
9144         (try_optimize_cfg): Likewise.
9145         (merge_seq_blocks): Likewise.
9146         * cfgexpand.c (expand_gimple_tailcall): Likewise.
9147         (expand_gimple_basic_block): Likewise.
9148         (construct_init_block): Likewise.
9149         (construct_exit_block): Likewise.
9150         * cfghooks.c (verify_flow_info): Likewise.
9151         (dump_bb): Likewise.
9152         (delete_basic_block): Likewise.
9153         (split_edge): Likewise.
9154         (merge_blocks): Likewise.
9155         (make_forwarder_block): Likewise.
9156         (tidy_fallthru_edges): Likewise.
9157         (can_duplicate_block_p): Likewise.
9158         (duplicate_block): Likewise.
9159         * cfglayout.c (fixup_reorder_chain): Likewise.
9160         (fixup_fallthru_exit_predecessor): Likewise.
9161         (can_copy_bbs_p): Likewise.
9162         (copy_bbs): Likewise.
9163         * cfgloop.c (flow_loops_cfg_dump): Likewise.
9164         (flow_loop_entry_edges_find): Likewise.
9165         (flow_loop_exit_edges_find): Likewise.
9166         (flow_loop_nodes_find): Likewise.
9167         (mark_single_exit_loops): Likewise.
9168         (flow_loop_pre_header_scan): Likewise.
9169         (flow_loop_pre_header_find): Likewise.
9170         (update_latch_info): Likewise.
9171         (canonicalize_loop_headers): Likewise.
9172         (flow_loops_find): Likewise.
9173         (get_loop_body_in_bfs_order): Likewise.
9174         (get_loop_exit_edges): Likewise.
9175         (num_loop_branches): Likewise.
9176         (verify_loop_structure): Likewise.
9177         (loop_latch_edge): Likewise.
9178         (loop_preheader_edge): Likewise.
9179         * cfgloopanal.c (mark_irreducible_loops): Likewise.
9180         (expected_loop_iterations): Likewise.
9181         * cfgloopmanip.c (remove_bbs): Likewise.
9182         (fix_bb_placement): Likewise.
9183         (fix_irreducible_loops): Likewise.
9184         (remove_path): Likewise.
9185         (scale_bbs_frequencies): Likewise.
9186         (loopify): Likewise.
9187         (unloop): Likewise.
9188         (fix_loop_placement): Likewise.
9189         (loop_delete_branch_edge): Likewise.
9190         (duplicate_loop_to_header_edge): Likewise.
9191         (mfb_keep_just): Likewise.
9192         (create_preheader): Likewise.
9193         (force_single_succ_latches): Likewise.
9194         (loop_split_edge_with): Likewise.
9195         (create_loop_notes): Likewise.
9196         * cfgrtl.c (rtl_split_block): Likewise.
9197         (rtl_merge_blocks): Likewise.
9198         (rtl_can_merge_blocks): Likewise.
9199         (try_redirect_by_replacing_jump): Likewise.
9200         (force_nonfallthru_and_redirect): Likewise.
9201         (rtl_tidy_fallthru_edge): Likewise.
9202         (commit_one_edge_insertion): Likewise.
9203         (commit_edge_insertions): Likewise.
9204         (commit_edge_insertions_watch_calls): Likewise.
9205         (rtl_verify_flow_info_1): Likewise.
9206         (rtl_verify_flow_info): Likewise.
9207         (purge_dead_edges): Likewise.
9208         (cfg_layout_redirect_edge_and_branch): Likewise.
9209         (cfg_layout_can_merge_blocks_p): Likewise.
9210         (rtl_flow_call_edges_add): Likewise.
9211         * cse.c (cse_cc_succs): Likewise.
9212         * df.c (hybrid_search): Likewise.
9213         * dominance.c (calc_dfs_tree_nonrec): Likewise.
9214         (calc_dfs_tree): Likewise.
9215         (calc_idoms): Likewise.
9216         (recount_dominator): Likewise.
9217         * domwalk.c (walk_dominator_tree): Likewise.
9218         * except.c (emit_to_new_bb_before): Likewise.
9219         (connect_post_landing_pads): Likewise.
9220         (sjlj_emit_function_enter): Likewise.
9221         (sjlj_emit_function_exit): Likewise.
9222         (finish_eh_generation): Likewise.
9223         * final.c (compute_alignments): Likewise.
9224         * flow.c (calculate_global_regs_live): Likewise.
9225         (initialize_uninitialized_subregs): Likewise.
9226         (init_propagate_block_info): Likewise.
9227         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9228         * gcse.c (find_implicit_sets): Likewise.
9229         (bypass_block): Likewise.
9230         (bypass_conditional_jumps): Likewise.
9231         (compute_pre_data): Likewise.
9232         (insert_insn_end_bb): Likewise.
9233         (insert_store): Likewise.
9234         (remove_reachable_equiv_notes): Likewise.
9235         * global.c (global_conflicts): Likewise.
9236         (calculate_reg_pav): Likewise.
9237         * graph.c (print_rtl_graph_with_bb): Likewise.
9238         * ifcvt.c (mark_loop_exit_edges): Likewise.
9239         (merge_if_block): Likewise.
9240         (find_if_header): Likewise.
9241         (block_jumps_and_fallthru_p): Likewise.
9242         (find_if_block): Likewise.
9243         (find_cond_trap): Likewise.
9244         (block_has_only_trap): Likewise.
9245         (find_if_case1): Likewise.
9246         (find_if_case_2): Likewise.
9247         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
9248         (perfect_nestify): Likewise.
9249         * lcm.c (compute_antinout_edge): Likewise.
9250         (compute_laterin): Likewise.
9251         (compute_available): Likewise.
9252         (compute_nearerout): Likewise.
9253         * loop-doloop.c (doloop_modify): Likewise.
9254         * loop-init.c (loop_optimizer_init): Likewise.
9255         * loop-invariant.c (find_exits): Likewise.
9256         * loop-iv.c (simplify_using_initial_values): Likewise.
9257         (check_simple_exit): Likewise.
9258         (find_simple_exit): Likewise.
9259         * loop-unroll.c (peel_loop_completely): Likewise.
9260         (unroll_loop_constant_iterations): Likewise.
9261         (unroll_loop_runtime_iterations): Likewise.
9262         * loop-unswitch.c (may_unswitch_on): Likewise.
9263         (unswitch_loop): Likewise.
9264         * modulo-sched.c (generate_prolog_epilog): Likewise.
9265         (sms_schedule): Likewise.
9266         * postreload-gcse.c (eliminate_partially_redundant_load):
9267         Likewise.
9268         * predict.c (can_predict_insn_p): Likewise.
9269         (set_even_probabilities): Likewise.
9270         (combine_predictions_for_bb): Likewise.
9271         (predict_loops): Likewise.
9272         (estimate_probability): Likewise.
9273         (tree_predict_by_opcode): Likewise.
9274         (tree_estimate_probability): Likewise.
9275         (last_basic_block_p): Likewise.
9276         (propagate_freq): Likewise.
9277         (estimate_loops_at_level): Likewise.
9278         (estimate_bb_frequencies): Likewise.
9279         * profile.c (instrument_edges): Likewise.
9280         (get_exec_counts): Likewise.
9281         (compute_branch_probabilities): Likewise.
9282         (branch_prob): Likewise.
9283         * ra-build.c (live_in): Likewise.
9284         * ra-rewrite.c (rewrite_program2): Likewise.
9285         * ra.c (reg_alloc): Likewise.
9286         * reg-stack.c (reg_to_stack): Likewise.
9287         (convert_regs_entry): Likewise.
9288         (compensate_edge): Likewise.
9289         (convert_regs_1): Likewise,
9290         (convert_regs_2): Likewise.
9291         (convert_regs): Likewise.
9292         * regrename.c (copyprop_hardreg_forward): Likewise.
9293         * reload1.c (fixup_abnormal_edges): Likewise.
9294         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
9295         (sbitmap_insersection_of_preds): Likewise.
9296         (sbitmap_union_of_succs): Likewise.
9297         (sbitmap_union_of_preds): Likewise.
9298         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
9299         (fix_basic_block_boundaries): Likewise.
9300         (sched_ebbs): Likewise.
9301         * sched-rgn.c (build_control_flow): Likewise.
9302         (find_rgns): Likewise.
9303         * tracer.c (find_best_successor): Likewise.
9304         (find_best_predecessor): Likewise.
9305         (tail_duplicate): Likewise.
9306         * tree-cfg.c (make_edges): Likewise.
9307         (make_ctrl_stmt_edges): Likewise.
9308         (make_goto_expr_edges): Likewise.
9309         (tree_can_merge_blocks_p): Likewise.
9310         (tree_merge_blocks): Likewise.
9311         (cfg_remove_useless_stmts_bb): Likewise.
9312         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
9313         (tree_block_forwards_to): Likewise.
9314         (cleanup_control_expr_graph): Likewise.
9315         (find_taken_edge): Likewise.
9316         (dump_cfg_stats): Likewise.
9317         (tree_cfg2vcg): Likewise.
9318         (disband_implicit_edges): Likewise.
9319         (tree_find_edge_insert_loc): Likewise.
9320         (bsi_commit_edge_inserts): Likewise.
9321         (tree_split_edge): Likewise.
9322         (tree_verify_flow_info): Likewise.
9323         (tree_make_forwarder_block): Likewise.
9324         (tree_forwarder_block_p): Likewise.
9325         (thread_jumps): Likewise.
9326         (tree_try_redirect_by_replacing_jump): Likewise.
9327         (tree_split_block): Likewise.
9328         (add_phi_args_after_copy_bb): Likewise.
9329         (rewrite_to_new_ssa_names_bb): Likewise.
9330         (dump_function_to_file): Likewise.
9331         (print_pred_bbs): Likewise.
9332         (print_loop): Likewise.
9333         (tree_flow_call_edges_add): Likewise.
9334         (split_critical_edges): Likewise.
9335         (execute_warn_function_return): Likewise.
9336         (extract_true_false_edges_from_block): Likewise.
9337         * tree-if-conv.c (tree_if_conversion): Likewise.
9338         (if_convertable_bb_p): Likewise.
9339         (find_phi_replacement_condition): Likewise.
9340         (combine_blocks): Likewise.
9341         * tree-into-ssa.c (compute_global_livein): Likewise.
9342         (ssa_mark_phi_uses): Likewise.
9343         (ssa_rewrite_initialize_block): Likewise.
9344         (rewrite_add_phi_arguments): Likewise.
9345         (ssa_rewrite_phi_arguments): Likewise.
9346         (insert_phi_nodes_for): Likewise.
9347         (rewrite_into_ssa): Likewise.
9348         (rewrite_ssa_into_ssa): Likewise.
9349         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
9350         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
9351         (rewrite_trees): Likewise.
9352         * tree-pretty-print.c (dump_bb_header): Likewise.
9353         (dump_implicit_edges): Likewise.
9354         * tree-sra.c (insert_edge_copies): Likewise.
9355         (find_obviously_necessary_stmts): Likewise.
9356         (remove_data_stmt): Likewise.
9357         * tree-ssa-dom.c (thread_across_edge): Likewise.
9358         (dom_opt_finalize_block): Likewise.
9359         (single_incoming_edge_ignoring_loop_edges): Likewise.
9360         (record_equivalences_from_incoming_edges): Likewise.
9361         (cprop_into_successor_phis): Likewise.
9362         * tree-ssa-live.c (live_worklist): Likewise.
9363         (calculate_live_on_entry): Likewise.
9364         (calculate_live_on_exit): Likewise.
9365         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
9366         (copy_loop_headers): Likewise.
9367         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
9368         (fill_always_executed_in): Likewise.
9369         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
9370         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
9371         (compute_phi_arg_on_exit): Likewise.
9372         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
9373         (get_loops_exit): Likewise.
9374         (split_loop_exit_edge): Likewise.
9375         (ip_normal_pos): Likewise.
9376         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
9377         Likewise.
9378         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
9379         (replace_phi_with_stmt): Likewise.
9380         (value_replacement): Likewise.
9381         * tree-ssa-pre.c (compute_antic_aux): Likewise.
9382         (insert_aux): Likewise.
9383         (init_pre): Likewise.
9384         * tree-ssa-propagate.c (simulate_stmt): Likewise.
9385         (simulate_block): Likewise.
9386         (ssa_prop_init): Likewise.
9387         * tree-ssa-threadupdate.c (thread_block): Likewise.
9388         (create_block_for_threading): Likewise.
9389         (remove_last_stmt_and_useless_edges): Likewise.
9390         * tree-ssa.c (verify_phi_args): Likewise.
9391         (verify_ssa): Likewise.
9392         * tree_tailcall.c (independent_of_stmt_p): Likewise.
9393         (find_tail_calls): Likewise.
9394         (eliminate_tail_call): Likewise.
9395         (tree_optimize_tail_calls_1): Likewise.
9396         * tree-vectorizer.c (vect_transform_loop): Likewise.
9397         * var-tracking.c (prologue_stack_adjust): Likewise.
9398         (vt_stack_adjustments): Likewise.
9399         (vt_find_locations): Likewise.
9400         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9401         * config/i386/i386.c (ix86_pad_returns): Likewise.
9402         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9403         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9404
9405 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
9406
9407         PR target/16532
9408         * config/sparc/sparc.c (struct machine_function): New field
9409         'leaf_function_p' and 'prologue_data_valid_p'.
9410         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
9411         to conveniently access the above fields.
9412         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
9413         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
9414         of the generic flavor 'current_function_uses_only_leaf_regs'.
9415         (eligible_for_sibcall_delay): Likewise.
9416         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
9417         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
9418         (sparc_asm_function_prologue): Add sanity check for the assumption
9419         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
9420         (sparc_can_use_return_insn_p): New function.
9421         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
9422         (output_restore): Likewise.
9423         (output_sibcall): Likewise.
9424         (sparc_output_mi_thunk): Likewise.
9425         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
9426         * config/sparc/sparc.md (return): New expander.
9427
9428         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
9429
9430 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
9431
9432         PR c++/17642
9433         * stor-layout.c (layout_decl): Use fold_convert, not convert.
9434         (bit_from_pos): Likewise.
9435         (byte_from_pos): Likewise.
9436         (pos_from_bit): Likewise.
9437         (normalize_offset): Likewise.
9438         (place_field): Likewise.
9439         (finalize_type_size): Likewise.
9440         (layout_type): Likewise.
9441         * tree.c (build_index_type): Likewise.
9442
9443 2004-09-27  Devang Patel  <dpatel@apple.com>
9444
9445         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
9446         * genopinit.c (optabs): New entry for vcond_gen_code and
9447         vcondu_gen_code.
9448         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
9449         (get_rtx_code): New function.
9450         (vector_compare_rtx): New function.
9451         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
9452         (expand_vec_cond_expr_p): New function.
9453         (expand_vec_cond_expr): New function.
9454         (get_vcond_icode): New function.
9455         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
9456         (vcond_gen_code, vcondu_gen_code): Same.
9457
9458 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
9459
9460         * Makefile.in (STAGESTUFF): Split into ...
9461         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
9462         (mostlyclean): Update.
9463         (stage1-start, stage2-start, stage3-start, stage4-start,
9464         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
9465         Move the STAGEMOVESTUFF.
9466
9467 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9468
9469         * system.h (getpagesize): Return 'int' instead of 'long'.
9470
9471 2004-09-27  Michael Matz <matz@suse.de>
9472
9473         PR bootstrap/17698
9474         PR bootstrap/17702
9475         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
9476         bmp_iter_and_init): Shift by bit_in_word.
9477
9478 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
9479
9480         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
9481         * configure.ac: Don't sinclude it here.
9482         * configure: Regenerate.
9483
9484 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
9485
9486         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
9487         Handle AND pattern
9488
9489 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
9490
9491         PR c/13804
9492         * c-typeck.c (build_component_ref): Name type involved in
9493         diagnostic for structure or union without a member of the given
9494         name.
9495
9496 2004-09-27  DJ Delorie  <dj@redhat.com>
9497
9498         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
9499         .comm alignment is bytes, not bits.
9500
9501 2004-09-27  Devang Patel  <dpatel@apple.com>
9502
9503         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9504         (print_call_name): Do not print VEC_COND_EXPR.
9505
9506 2004-09-27  Devang Patel  <dpatel@apple.com>
9507
9508         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9509
9510 2004-09-27  Jan Hubicka  <jh@suse.cz>
9511
9512         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
9513
9514 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
9515
9516         * bitmap.h: Fix a comment typo.
9517
9518 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9519
9520         * libgcc2.c (getpagesize): Change type of return value to int.
9521
9522 2004-09-26  Matt Austern  <austern@apple.com>
9523
9524         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
9525         using mmap.
9526
9527 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9528
9529         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
9530         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
9531         (bitmap_iterator): New type.
9532         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
9533         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
9534         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
9535         bmp_iter_and_init, bmp_iter_and_next): New functions.
9536         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
9537         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
9538         use iterator-style EXECUTE_IF_IN_BITMAP macros.
9539         * bitmap.c (bitmap_print): Ditto.
9540         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
9541         btr_def_live_range): Ditto.
9542         * cfganal.c (compute_dominance_frontiers_1) Ditto.
9543         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
9544         Ditto.
9545         * ddg.c (build_inter_loop_deps): Ditto.
9546         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
9547         Ditto.
9548         * except.c (remove_eh_handler): Ditto.
9549         * flow.c (reg_set_to_hard_reg_set): Ditto.
9550         * gcse.c (clear_modify_mem_tables): Ditto.
9551         * global.c (build_insn_chain): Ditto.
9552         * ifcvt.c (dead_or_predicable): Ditto.
9553         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
9554         Ditto.
9555         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
9556         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
9557         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
9558         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
9559         tree_purge_all_dead_eh_edges): Ditto.
9560         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
9561         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
9562         rewrite_ssa_into_ssa): Ditto.
9563         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
9564         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
9565         Ditto.
9566         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
9567         compute_flow_sensitive_aliasing, maybe_create_global_var,
9568         dump_points_to_info_for): Ditto.
9569         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
9570         * tree-ssa-dse.c (dse_finalize_block): Ditto.
9571         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
9572         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
9573         Ditto.
9574         * tree-ssa-loop-ivopts.c (find_induction_variables,
9575         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
9576         determine_use_iv_costs, determine_set_costs, find_best_candidate,
9577         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
9578         Ditto.
9579         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
9580         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
9581         add_call_read_ops): Ditto.
9582         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
9583
9584 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9585
9586         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
9587         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
9588
9589 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9590
9591         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
9592         reflect size of memory regions being compared.
9593
9594 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9595
9596         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
9597         expressions.  Always clear MEM_SIZE and alias set.
9598
9599 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9600             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9601
9602         PR middle-end/17112
9603         * stor-layout.c (compute_record_mode): For records with a single
9604         field, only use the field's mode if its size matches what we'd
9605         have choosen for the record ourselves.  This forces the use of
9606         BLKmode for packed records that don't completely fill a mode.
9607
9608 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9609
9610         PR middle-end/17151
9611         * combine.c (force_to_mode): Remove dubious early return test that
9612         inhibits further optimization.
9613
9614 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
9615
9616         * profile.c: Fix a comment typo.
9617
9618 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9619
9620         PR bootstrap/17591
9621         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
9622         with varying offset.
9623         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
9624         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
9625         ARRAY_REFS.
9626         (expr_invariant_in_loop_p): New function.
9627         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
9628         component_ref_field_offset for COMPONENT_REFs.  Do not allow
9629         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
9630         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
9631         MISALIGNED_INDIRECT_REFs.
9632         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
9633         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
9634         MISALIGNED_INDIRECT_REFs.
9635
9636 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9637
9638         PR c/11459
9639         * gcc.c (cpp_options, cc1_options): Preserve relative order of
9640         -std and -ansi options.
9641
9642 2004-09-26  Jan Hubicka  <jh@suse.cz>
9643
9644         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
9645         for nested functions whose proper parent has not been output.
9646
9647         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
9648         when re-constructing profile previously invalidated by loop.
9649
9650 2004-09-25  Dale Johannesen  <dalej@apple.com>
9651
9652         * tree-gimple.c:  Move GIMPLE definition...
9653         * doc/tree-ssa.texi:  here.
9654
9655 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9656
9657         * tree-vectorizer.c: Fix a comment typo.
9658
9659 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9660
9661         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
9662         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
9663         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
9664         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
9665
9666 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9667
9668         * tree-ssa-loop-unswitch.c: Fix a comment typo.
9669
9670 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9671
9672         * doc/passes.texi: Fix a typo.
9673
9674 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9675
9676         * tree-optimize.c (init_tree_optimization_passes): Add
9677         pass_record_bounds.
9678         * tree-pass.h (pass_record_bounds): Declare.
9679         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
9680         New pass.
9681
9682 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9683
9684         PR tree-optimization/17474
9685         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
9686         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
9687
9688 2004-09-25  Jan Hubicka  <jh@suse.cz>
9689
9690         * predict.c (counts_to_freqs): Make global.
9691         * predict.h (counts_to_freqa): Declare.
9692         * profile.c (compute_branch_probabilities): Compute frequencies
9693         * tree-profile.c (do_tree_profiling): Refine conditional on when
9694         tree profiling pass is needed.
9695
9696         * passes.c (rest_of_handle_cfg): Disable const/pure function
9697         detection when doing tree based profiling.
9698
9699         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
9700         conditional.
9701
9702 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9703
9704         * config/mips/mips.h (struct mips_args): Clarify comments.
9705         * config/mips/mips.c (struct mips_arg_info): Likewise.
9706         (mips_arg_info): Don't allow fpr_p to affect the register or
9707         stack alignment.  Remove o64 silliness.
9708         (function_arg): Deal with the o32 float,float case specially.
9709
9710 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9711
9712         * config/mips/mips.md (loadx, storex): Define for V2SF.
9713
9714 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
9715
9716         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
9717         * config/s390/s390.c (s390_back_chain_rtx): New function.
9718         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
9719         Call anti_adjust_stack.
9720         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
9721         only if compiling with back chain.
9722         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
9723         back chain only if back chain enabled.  Use s390_back_chain_rtx.
9724
9725 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9726
9727         * doc/trouble.texi: Remove obsolete information.  Update
9728         information on how to regenerate fixincluded headers.
9729
9730 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9731
9732         PR c/12951
9733         * doc/invoke.texi: Document that
9734         -Wno-error-implicit-function-declaration is not accepted.
9735
9736 2004-09-24  Richard Henderson  <rth@redhat.com>
9737
9738         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
9739         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
9740         on TARGET_MAX.
9741         (alpha_expand_mov): Allow unaligned vectors.
9742         (alpha_expand_unaligned_store): Use CONST0_RTX.
9743         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
9744
9745 2004-09-24 Jeff Law  <law@redhat.com>
9746
9747         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
9748         aliasing rules.
9749         (simplify_cond_and_lookup_avail_expr): Likewise.
9750
9751 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9752
9753         PR c/12802
9754         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
9755         title.  Document interaction with -fms-extensions.
9756         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
9757         section.
9758
9759 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9760
9761         PR c/12713
9762         * doc/extend.texi: Document interaction of attribute noreturn and
9763         longjmp.
9764
9765 2004-09-24  Richard Henderson  <rth@redhat.com>
9766
9767         PR rtl-opt/17503
9768         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
9769         (som_hash, som_eq): New.
9770         (init_subregs_of_mode, record_subregs_of_mode): New.
9771         (cannot_change_mode_set_regs): Rewrite for htab implementation.
9772         (invalid_mode_change_p): Likewise.
9773         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
9774         * flow.c (mark_used_regs): Likewise.
9775         (life_analysis): Use init_subregs_of_mode.
9776         * regs.h (subregs_of_mode): Remove.
9777         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
9778
9779 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9780
9781         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
9782         type with the copy of the conditional.
9783
9784 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9785
9786         PR tree-opt/16954
9787         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9788         Prevent renaming if the aliasing sets of the type which the
9789         pointer points to are different.
9790
9791 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9792
9793         PR c/17188
9794         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
9795         declarations of enumerators.
9796         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
9797         for redefinition.  Check for nested redefinition.
9798         (finish_struct): Don't check for nested redefinition.
9799         (start_enum): Check for nested redefinition.
9800
9801 2004-09-24  Devang Patel  <dpatel@apple.com>
9802
9803         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
9804         only when necesssary.
9805         (combine_blocks): Combine loop header and exit block.
9806
9807 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
9808
9809         * hooks.c (hook_tree_tree_bool_null): New.
9810         * hooks.h (hook_tree_tree_bool_null): Declare it.
9811         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
9812         * targhooks.c (default_fold_builtin): Remove.
9813         * targhooks.h (default_fold_builtin): Remove.
9814
9815 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9816
9817         PR rtl-optimization/17625
9818         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
9819
9820 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9821
9822         PR tree-opt/17624
9823         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
9824         Reject if any of the operands occur in an abnormal PHI.
9825
9826 2004-09-24  Andreas Schwab  <schwab@suse.de>
9827
9828         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
9829         rules.
9830
9831 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9832
9833         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
9834         if the GNU assembler is used.
9835         (sparc-*-solaris2*): Likewise.
9836         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
9837         (dbxout_function_end): Protect N_ENSYM with it.
9838         (dbxout_begin_prologue): Protect N_BNSYM with it.
9839         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
9840         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
9841         * config/sparc/sol2-gas.h: New file.
9842
9843 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
9844
9845         PR bootstrap/17369
9846         * Makefile.in (@set_gcc_lib_path@): Added.
9847
9848         * configure.ac: Include ../config/gcc-lib-path.m4. Use
9849         TL_AC_GNU_MAKE_GCC_LIB_PATH.
9850         * configure: Regenerated.
9851
9852 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9853
9854         PR c/6980
9855         * c-typeck.c (build_c_cast): Improve wording of
9856         -Wbad-function-cast diagnostic.
9857
9858 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
9859
9860         PR target/17626
9861         * config/cris/cris.md (moverside, movemside): Rename variable
9862         "reg" to "otherop".  To generate canonical RTX, check that otherop
9863         isn't constant instead of checking that operand 1 is a register.
9864
9865 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
9866
9867         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
9868
9869 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
9870             Jakub Jelinek  <jakub@redhat.com>
9871
9872         * tree-flow.h (find_new_referenced_vars): Add prototype.
9873         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
9874         Move to...
9875         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
9876         ... here.
9877         (mark_new_vars_to_rename): Walk through all operands.
9878         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
9879         (execute_fold_all_builtins): Use it.
9880         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
9881
9882 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
9883
9884         * gthr-tpf.h: New file.
9885         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
9886         * gthr.h: Use gthr-tpf.h on TPF OS.
9887
9888 2004-09-23 Jeff Law  <law@redhat.com>
9889
9890         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
9891         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
9892         (substitute_and_fold):  Likewise.
9893         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
9894         except invariants from SSA_NAME_VALUE.
9895         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
9896         and SET_SSA_NAME_EQUIV.
9897         (restore_vars_to_original_value, record_const_or_copy): Likewise.
9898         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
9899         (record_equality, cprop_into_successor_phis): Likewise.
9900         (record_equivalences_from_stmt, cprop_operand): Likewise.
9901         (lookup_avail_expr): Likewise.
9902         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
9903         from SSA_NAME_VALUE.
9904         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
9905         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
9906         annotation from the VALUE_HANDLE field.
9907
9908 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
9909
9910         PR c++/13989
9911         PR c++/9844
9912         * tree.c (reconstruct_complex_type): Remove extra "this".
9913         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
9914         Add V4SFmode to case statement.
9915
9916 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
9917
9918         PR c/16833
9919         * doc/extend.texi, doc/invoke.texi: Document interaction of
9920         -fno-builtin with format checks.  Note that built-in functions
9921         have effects beyond generating code that avoids calls to those
9922         functions.
9923
9924 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
9925
9926         PR tree-optimization/17533
9927         * dominance.c (verify_dominators): Tolerate even more incorrect
9928         dominance data during error message printing.
9929         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
9930         and edges more correctly.
9931
9932 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
9933
9934         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
9935         New tree-codes.
9936         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
9937         MISALIGNED_INDIRECT_REF.
9938         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
9939         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
9940         Likewise.
9941         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
9942         (find_interesting_uses_address): Likewise.
9943         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
9944         (build_fold_addr_expr_with_type): Likewise.
9945         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
9946         * print-rtl.c (print_mem_expr): Likewise.
9947         * tree-dump.c (dequeue_and_dump): Likewise.
9948         * tree-eh.c (tree_could_trap_p): Likewise.
9949         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
9950         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
9951         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
9952         Likewise.
9953         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9954         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
9955         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
9956         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
9957         (add_address_candidates, rewrite_address_base): Likewise.
9958         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
9959         Likewise.
9960         * tree.c (staticp, build1_stat): Likewise.
9961
9962         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
9963         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
9964         * tree-ssa-operands.c (get_expr_operands): Likewise.
9965         * expr.c (expand_expr_real_1): Likewise.
9966
9967         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
9968         optabs.
9969         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
9970         for the new optabs.
9971         (expand_ternary_op): New function.
9972         * genopinit.c (optabs): Handle the new optabs.
9973         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
9974         (init_optabs): Initialize vec_realign_load_optab.
9975         (expand_ternary_op): New functions.
9976
9977         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
9978         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
9979         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
9980         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
9981         * target.h (struct vectorize): New member for struct gcc_target.
9982         (misaligned_mem_ok): New member for targetm.vectorize.
9983         (builtin_mask_for_load): Likewise.
9984         (builtin_mask_for_store): Likewise.
9985         * targethooks.c (default_vect_misaligned_mem_ok): New function.
9986         * targethooks.h (default_vect_misaligned_mem_ok): New function.
9987
9988         * config/rs6000/altivec.md (build_vector_mask_for_load): New
9989         define_expand.
9990         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
9991         (vec_realign_load_v16qi): New define_insn.
9992         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
9993         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
9994         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
9995         (altivec_builtin_mask_for_store): New variables.
9996         (rs6000_builtin_mask_for_load): New function. Implements
9997         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
9998         (rs6000_builtin_mask_for_store): New function. Implements
9999         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
10000         (rs6000_expand_builtin): Expand the target builtins
10001         builtin_mask_for_load and builtin_mask_for_store.
10002         (altivec_init_builtins): Initialize the new target builtins.
10003         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
10004         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
10005
10006         * tree-vectorizer.c (vect_create_data_ref): Renamed to
10007         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
10008         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
10009         (vectorizable_store): Call vect_create_data_ref_ptr with additional
10010         arguments, and create an indirect_ref with its return value data_ref.
10011         Check aligned_access_p.
10012         (vectorizable_load): Handle misaligned loads, using software-pipelined
10013         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
10014         vec_realign_load_optab is supported, or using a scheme without
10015         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
10016         misaligned_mem_ok is supported.
10017
10018         (vect_finish_stmt_generation): Typo.
10019         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
10020         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
10021         presence of misaligned loads.
10022         (vect_analyze_data_ref_access): Add check for constant init.
10023         (vect_get_symbl_and_dr): Remove duplicate line.
10024         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
10025
10026 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
10027
10028         * builtins.c: Fix a comment typo.
10029
10030 2004-09-23  Jan Hubicka  <jh@suse.cz>
10031
10032         * profile.c (branch_prob): Do not verify flow info in the middle of the
10033         pass.
10034
10035 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10036
10037         * cfgloop.h (update_single_exits_after_duplication): Declare.
10038         (loopify, split_loop_bb): Declaration changed.
10039         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
10040         of rtx.
10041         (loopify): Added redirect_all_edges argument.
10042         (update_single_exits_after_duplication): Export.
10043         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
10044         * tree-flow.h (tree_duplicate_loop_to_header_edge,
10045         tree_ssa_loop_version): Declare.
10046         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
10047         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
10048         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
10049         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
10050
10051         * tree-ssa-loop-unswitch.c: New file.
10052         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
10053         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
10054         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
10055         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
10056         * tree-pass.h (pass_unswitch): Declare.
10057         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
10058         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
10059         * doc/passes.texi: Documen tree level loop unswitching.
10060
10061 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
10064
10065 2004-09-22  Eric Christopher  <echristo@redhat.com>
10066
10067         * builtins.c (simplify_builtin_va_start): Remove.
10068         (simplify_builtin): Ditto.
10069         (fold_builtin_strchr): Ditto.
10070         (simplify_builtin_*): Rename remainders to fold_builtin_*.
10071         (expand_builtin): Fix up for above changes.
10072         (fold_builtin_1): Add new folders. Change for above.
10073         (expand_builtin_va_start): Call fold_builtin_next_arg.
10074         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
10075         * tree.h: Remove prototype for simplify_builtin.
10076
10077 2004-09-23  Jan Hubicka  <jh@suse.cz>
10078
10079         PR debug/17389
10080         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
10081         of fully inlined functions.
10082         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
10083         inlined.
10084
10085         * cfgexpand.c (add_reg_br_prob_note): New function.
10086         (expand_gimple_cond_expr): Use it.
10087         (tree_expand_cfg): No longer kill the profile.
10088         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
10089         only if it is present.
10090         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
10091         * predict.c (combine_predictions_for_insn): Set the probabilities
10092         based on REG_BR_PROB note if present.
10093         * predict.c (branch_prob): Profile is read only with
10094         flag_branch_probabilities.
10095
10096 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10097
10098         * aclocal.m4: Add in gettext's m4 includes.
10099         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
10100         * configure.ac: Add in check for iconv.h
10101         * configure: Regenerate.
10102
10103 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10104
10105         * aclocal.m4: Update for rename of gettext-sister.m4.
10106
10107 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
10108
10109         Fix PR tree-optimization/17587
10110         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
10111         (insert_aux): Instead of here.
10112
10113 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
10114
10115         PR tree-optimization/16721
10116         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
10117         * tree-ssa-alias.c (create_memory_tag): Move setting of
10118         TREE_THIS_VOLATILE ...
10119         (get_tmt_for): ... here.
10120
10121 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10122
10123         * config/sparc/sparc.md (cmove splitter): Fix formatting.
10124         (conditional_trap expander): Reject inappropriate CCmodes.
10125         (conditional trap insn): Use V9 syntax if possible.
10126
10127 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10128
10129         PR c/16566
10130         * c-typeck.c (build_component_ref): Don't special-case
10131         COMPOUND_EXPR.
10132
10133 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
10134
10135         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
10136         returns NULL.
10137
10138 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
10139
10140         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
10141         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
10142         TRUTH_XOR_EXPR): Mention the restriction on types.
10143
10144 2004-09-22  Matt Austern  <austern@apple.com>
10145
10146         * config/darwin.c (darwin_make_decl_one_only):
10147         Allow coalesced symbol to appear in static archive's table of contents
10148
10149 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
10150
10151         PR tree-optimization/17512
10152         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
10153         special cases.
10154
10155 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
10156
10157         * dbxout.c (get_lang_number): Do not define if
10158         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
10159
10160 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
10161
10162         PR target/15583
10163         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
10164         builtin_define ("__USE_INIT_FINI__").
10165
10166 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
10167
10168         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
10169         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
10170         * config/s390/s390.h (TARGET_TPF): New macro.
10171         * config/s390/s390.md ("eh_return"): New expander.
10172         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
10173         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
10174         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
10175         * config/s390/tpf.h (TARGET_TPF): Define to 1.
10176         (STACK_POINTER_OFFSET): Increase to 448.
10177         (TARGET_DEFAULT): Set -mtpf-trace on as default.
10178         (TPF_LOC_DIFF_OFFSET): New macro.
10179         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
10180         encoding.
10181         (__isPATrange): Add prototype.
10182         (MD_FALLBACK_FRAME_STATE_FOR): Define.
10183         * config/s390/tpf-eh.c: New file.
10184
10185 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
10186
10187         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
10188         operands in an integer comparison.
10189         * tree-cfg.c (find_taken_edge): Call fold() to determine
10190         whether the predicate is known.
10191
10192 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10193
10194         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
10195         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
10196         Create build and doc directories along with the language directories.
10197         Don't create doc directory separately.
10198         * configure: Regenerate.
10199         * Makefile.in: Create all object and executables files built
10200         with the build compiler in a build/ directory.
10201         (genobjnames): Add missing build objects.
10202         (STAGESTUFF): Don't stage the gen* programs.
10203         (ggc-none.o): Define dependencies for the target compiler.
10204         (build-print-rtl.o): Rename to build/print-rtl.o.
10205         (build-errors.o): Rename to build/errors.o.
10206         (build-varray.o): Rename to build/varray.o.
10207         (maintainerclean): Delete the contents of the build directory.
10208         ($(genobjs): %.o): Explicitly use -o.
10209         (build/insn-conditions.o): Delete specfic rule to use generic rule.
10210         (build/gengtype-lex.o): Likewise.
10211         (build/gengtype-yacc.o): Likewise.
10212         (build/gcov-iov.o): Likewise.
10213
10214 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
10215
10216         * vec.h (VEC_space): Return true if there _is_ space.
10217         (VEC_reserve): Adjust.
10218
10219 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
10220
10221         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
10222         use FPRs for scalar, complex and vector types only.
10223
10224 2004-09-21 Jeff Law  <law@redhat.com>
10225
10226         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
10227         the opt_stats_d structure.
10228         (vrp_data): Change from a varray into a hash table.
10229         (vrp_hash_elt): New structure for elements in the vrp hash table.
10230         (vrp_hash, vrp_eq):New functions for hashing and testing equality
10231         in the vrp hash table.
10232         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
10233         initialization slightly to make it easier to read.  No longer need
10234         to grow/clear the varray.  Instead empty and delete the hash table.
10235         (dom_opt_finalize_block): Update due to change of VRP_DATA from
10236         a varray to a hash table.
10237         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
10238
10239         * tree-ssa-ccp.c (get_default_value): If we have a constant
10240         value recorded for an SSA_NAME, then use that constant as
10241         the initial lattice value.
10242         (substitute_and_fold): Transfer equivalences discovered into
10243         SSA_NAME_EQUIV.
10244
10245         * tree.h (SSA_NAME_EQUIV): Add comments.
10246         (SET_SSA_NAME_EQUIV): Similarly.
10247
10248 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
10249
10250         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
10251
10252         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
10253
10254 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
10255
10256         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
10257         (finish_decl): Likewise.
10258
10259 2004-09-21  Devang Patel  <dpatel@apple.com>
10260
10261         * tree.def (VEC_COND_EXPR): New tree node.
10262         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
10263
10264 2004-09-21  Stan Shebs  <shebs@apple.com>
10265
10266         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
10267         * config/rs6000/darwin-world.asm: Likewise.
10268
10269 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
10270
10271         * tree-ssa.c (verify_def): Use print_generic_stmt,
10272         not debug_generic_stmt.
10273         (verify_use): Ditto.
10274         (verify_phi_args): Ditto.
10275         (verify_ssa): Ditto.
10276
10277 2004-09-21  Paul Brook  <paul@codesourcery.com>
10278
10279         * varasm.c (default_assemble_integer): Return false for values wider
10280         than the target word size.  Works around GAS bug.
10281
10282 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
10283
10284         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
10285         gets value 0.
10286         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
10287         if it has value 0.
10288
10289 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
10290
10291         * c-typeck.c (build_function_call): Give name of object
10292         we are attempting to call in error message.
10293         * c-objc-common.c (c_tree_printer): Call pp_expression,
10294         not return false, for 'E' case.
10295
10296 2004-09-21  Steven Bosscher  <stevenb@suse.de>
10297
10298         PR rtl-optimization/17482
10299         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
10300         load_killed_in_block_p): Clarify comments.
10301         (record_last_reg_set_info): Make static inline.
10302         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
10303         (record_opr_changes): New function to replace the above.
10304         (compute_hash_table): Clarify comments.  Use record_opr_changes.
10305         (reg_set_between_after_reload_p): Clean up.
10306         (reg_used_between_after_reload_p): Likewise.
10307         (eliminate_partially_redundant_load): Clarify comments.
10308
10309 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
10310
10311         PR rtl-optimization/17266
10312         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
10313
10314 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
10315
10316         PR rtl-optimization/14851
10317         * rtlanal.c (commutative_operand_precedence): Calculate
10318         precedence of stripped constant.
10319
10320 2004-09-20 Jeff Law  <law@redhat.com>
10321            Jan Hubicka  <jh@suse.cz>
10322
10323         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
10324         initialize key elements here.
10325         (release_ssa_name): Zero the released SSA_NAME here.
10326         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
10327         (struct tree_ssa_name): Add new "equiv" field.
10328         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
10329         (tree_ssa_dominator_optimize): No longer allocate, resize or
10330         clear CONST_AND_COPIES.
10331         (get_value_for, set_value_for): Kill.
10332         (thread_across_edge): Get/set the equivalency using
10333         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
10334         (restore_vars_to_original_value): Likewise.
10335         (record_equivalences_from_phis): Likewise.
10336         (record_dominating_conditions): Likewise.
10337         (record_const_or_copy, record_equality): Likewise.
10338         (lookup_avail_expr): Likewise.
10339         (record_equivalences_from_stmt, cprop_operand): Likewise.
10340         (cprop_into_successor_phis): No longer need to pass around
10341         CONST_AND_COPIES.  Callers updated. Get equivalences via
10342         SSA_NAME_EQUIV.
10343         (cprop_into_phis): Likewise.
10344
10345 2004-09-20  Matt Austern <austern@apple.com>
10346             Zack Weinberg  <zack@codesourcery.com>
10347
10348         * c-common.c (fix_string_type): Build the unqualified array
10349         type unconditionally, then use c_build_qualified_type to get
10350         the proper const-qualified variant, and set its
10351         TYPE_MAIN_VARIANT to refer to the unqualified type.
10352         * c-lex.c (c_lex_return_raw_string): New global.
10353         (c_lex_with_flags): Honor it.
10354         * c-pragma.h: Declare it.
10355
10356 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
10357
10358         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
10359
10360 2004-09-21  Jan Hubicka  <jh@suse.cz>
10361
10362         PR middle-end/17126
10363         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
10364         (tree_rest_of_compilation): Cleanup.
10365
10366 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
10367
10368         * config/s390/s390.c (s390_select_rtx_section): Remove.
10369         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
10370
10371 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10372
10373         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
10374         note to pretend a direct save from the original register when an
10375         intermediate register is used for the save.
10376
10377 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10378
10379         * tsystem.h (alloca): Provide a default definition.
10380
10381         Revert:
10382         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10383             * unwind-dw2.c: Call __builtin_alloca, not alloca.
10384
10385 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
10386
10387         PR tree-opt/17558
10388         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
10389         aliasing sets are the same rather than just conflicting.
10390
10391 2004-09-20  Jan Hubicka  <jh@suse.cz>
10392
10393         PR middle-end/16460
10394
10395         * cgraph.c (cgraph_unnest_node): New function.
10396         (c_finalize): Rename to ....
10397         (c_warn_unused_result_recursivly): ... this one; do only the warning
10398         (finish_function): Finalize the toplevel function; do not lower nested tree.
10399         * cgraph.h (cgraph_unnest_node): Declare.
10400         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
10401         nestedness datastructure.
10402         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
10403         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
10404         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
10405
10406 2004-09-20  Richard Henderson  <rth@redhat.com>
10407
10408         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
10409         from some_small_symbolic_operand_1; export.
10410         (some_small_symbolic_operand): Remove.
10411         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
10412         extra C check.
10413         * config/alpha/predicates.md (some_small_symbolic_operand): New.
10414
10415 2004-09-20  Jan Hubicka  <jh@suse.cz>
10416
10417         * predict.c (return_prediction): New function.
10418         (apply_return_prediction): Likewise.
10419         (tree_bb_level_predictions): Likewise.
10420         (tree_estimate_probability): Add noreturn exit edges; call
10421         bb_level_predictions; fix logic of return heuristics.
10422         (predict_paths_leading_to):  Rescuesce from old CVS version of
10423         process_note_prediction function.
10424         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
10425
10426 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
10427
10428         * config/s390/s390.c (s390_frame_info): Added alignment statement for
10429         floating point register area on stack.
10430
10431 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
10432
10433         * predict.c (expr_expected_value): Use *_CLASS_P macros.
10434
10435 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
10436
10437         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
10438         generating useless garbage.
10439
10440 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
10441
10442         * builtins.c (fold_builtin): Call the new omonymous
10443         target hook for machine-dependent built-ins.
10444         * target-def.h (TARGET_FOLD_BUILTIN): New.
10445         * target.h (struct gcc_target): Add the fold_builtin hook.
10446         * targhooks.c (default_fold_builtin): New.
10447         * targhooks.h (default_fold_builtin): Declare it.
10448
10449 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
10450
10451         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
10452         comment typos.
10453
10454 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
10455
10456         PR target/17565
10457         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
10458
10459 2004-09-20  Jan Hubicka  <jh@suse.cz>
10460
10461         * predict.c (estimate_probability): Remove unnecesary code.
10462
10463 2004-09-19  Ira Rosen  <irar@il.ibm.com>
10464
10465         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
10466         (STMT_VINFO_VECT_DR_BASE): Declare.
10467         (VECT_SMODULO): Declare.
10468         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
10469         (vect_compute_array_base_alignment): New function.
10470         (vect_analyze_data_ref_access): Check array indices. Remove one
10471         dimensional arrays restriction.
10472         (vect_get_ptr_offset): New function.
10473         (vect_get_symbl_and_dr): New function.
10474         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
10475         (former name vect_get_base_decl_and_bit_offset).
10476         (vect_create_index_for_array_ref): Removed.
10477         (vect_create_index_for_vector_ref): New function.
10478         (vect_create_addr_base_for_vector_ref): New function.
10479         (vect_create_data_ref): Handle additional data refs. Call
10480         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
10481         (vect_compute_data_ref_alignment): Support the changes. Call
10482         vect_get_base_and_bit_offset.
10483         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
10484         data refs. Store vect_dr_base.
10485         (vect_analyze_data_ref_accesses): Support nonconstant init.
10486         (new_stmt_vec_info): Initialize vect_dr_base field.
10487         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
10488         (get_vectype_for_scalar_type): Check for BLKmode.
10489         * tree-chrec.h (initial_condition_in_loop_num): Declare.
10490         * tree-chrec.c (initial_condition_in_loop_num): New function.
10491         (chrec_component_in_loop_num): New function.
10492         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
10493         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
10494         to be pointer to varray_type.
10495
10496 2004-09-19  Jan Hubicka  <jh@suse.cz>
10497
10498         * basic-block.h (update_bb_profile_after_threading): Declare.
10499         * cfg.c (update_bb_profile_after_threading): Break out from ...
10500         * cfgcleanup.c (try_forward_edges): ... here; use it.
10501         * tree-ssa-dom.c (thread_across_edge): Use it.
10502         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
10503         profile of the new BB.
10504
10505 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
10506
10507         * tree-ssa-pre.c (insert_into_set): Don't put
10508         is_gimple_min_invariant values into the set.
10509
10510 2004-09-19  Andreas Jaeger  <aj@suse.de>
10511
10512         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
10513         prototype.
10514
10515 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10516
10517         * config/cris/cris.h: Preserve the original spelling in a
10518         quote.
10519
10520 2004-09-18 Jeff Law  <law@redhat.com>
10521
10522         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
10523         global varrays to replace the block local varrays.
10524         (struct dom_walk_block_data): Remove, no longer used.
10525         (get_eq_expr_value): No longer need to pass around pointers to local
10526         varrays.  Callers updated.  Unused markers added to unused parameters.
10527         (record_range, record_equivalences_from_stmt): Likewise.
10528         (record_equivalences_from_incoming_edge): Likewise.
10529         (record_var_is_nonzero): Likewise.  Update now that we have a
10530         single global varray of SSA_NAMEs that need restoring.
10531         (dom_opt_initialize_block_local_data): Kill, no longer used.
10532         (tree_ssa_dominator_optimize): Initialize new global varrays.
10533         Update callbacks in dominator walker structure.
10534         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
10535         VRP_VARIABLES_STACK.
10536         (restore_nonzero_vars_to_original_value): Update now that we have
10537         a single global varray of SSA_NAMEs that need restoring.
10538         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
10539         Remove unused variables.
10540         (optimize_stmt): Remove unused variable.
10541
10542 2004-09-18  Jan Hubicka  <jh@suse.cz>
10543
10544         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
10545
10546         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
10547         verify_cgraph call.
10548
10549 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10550
10551         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
10552         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
10553         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
10554         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
10555         tree-ssa-operands.c, tree-ssa-phiopt.c,
10556         tree-ssa-threadupdate.c: Fix comment typos.
10557
10558 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10559
10560         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
10561         config/arm/README-interworking, config/arm/arm-cores.def,
10562         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
10563         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
10564         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
10565         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
10566         config/frv/frv.md, config/i386/winnt.c,
10567         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
10568         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
10569         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
10570         config/mcore/mcore.c, config/mips/mips.h,
10571         config/mn10300/mn10300.md, config/pa/pa.c,
10572         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
10573         config/rs6000/rs6000.c, config/sh/symbian.c,
10574         config/sparc/sparc.h: Fix comment typos.  Follow spelling
10575         conventions.
10576
10577 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10578
10579         PR c/17424
10580         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
10581
10582 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10583
10584         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
10585         remove TREE_ADDRESSABLE from RESULT_DECL.
10586
10587 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10588
10589         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
10590
10591 2004-09-18  Jan Hubicka  <jh@suse.cz>
10592
10593         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
10594         NULL.
10595         * tree-ssa-alias.c (init_alias_info): Likewise.
10596         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
10597         (verify_ssa): Likewise.
10598         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
10599
10600 2004-09-18  Jan Hubicka  <jh@suse.cz>
10601
10602         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
10603         huge offset.
10604
10605 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10606
10607         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
10608         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10609         DW_EH_PE_sdata* for data.
10610         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
10611
10612 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
10613
10614         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
10615         shared anyway.
10616
10617         PR pch/13361
10618         * c-typeck.c (constructor_asmspec): Delete.
10619         (struct initializer_stack): Delete field 'asmspec'.
10620         (start_init): Delete saving of asmspec.
10621         (finish_init): Don't update constructor_asmspec.
10622         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10623         * stmt.c (expand_asm): Duplicate strings from tree.
10624         (expand_asm_operands): Likewise.
10625         * tree.c (tree_size): Update computation of size of STRING_CST.
10626         (make_node): Don't make STRING_CST nodes.
10627         (build_string): Allocate string with tree node.
10628         (tree_code_size): Clean up assertions, don't allow requests
10629         for "the size of a STRING_CST".
10630         * tree.def (STRING_CST): Update comment.
10631         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10632         (tree_string): Place contents of string in tree node.
10633         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10634         from tree.
10635
10636 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10637
10638         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
10639         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
10640
10641 2004-09-17  Jones Desougi  <jones@ingate.com>
10642
10643         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
10644         * configure, config.in: Regenerate.
10645
10646 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10647
10648         * tree.c, tree.h (tree_class_strings): Make array const.
10649         Reindent per coding convention.  Move asterisk to proper place
10650         per coding convention.
10651
10652 2004-09-18  Andreas Schwab  <schwab@suse.de>
10653
10654         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
10655         (tree-vectorizer.o): Likewise.
10656         (targhooks.o): Likewise.
10657
10658 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
10659             Zack Weinberg  <zack@codesourcery.com>
10660
10661         * alias.c (find_base_decl): Remove unreachable case '3' block.
10662         * expr.c (safe_from_p): Abort if passed a type.
10663         * tree-gimple.c (recalculate_side_effects): Abort if passed
10664         anything other than an expression.
10665         * tree-ssa-pre.c (phi_translate): Return expr immediately if
10666         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
10667         Abort on un-handled tree classes.
10668         (valid_in_set): Likewise.
10669         * tree.c (tree_code_class_strings): New static data.
10670
10671         * tree.h (enum tree_code_class): New.
10672         (tree_code_class_strings): Declare.
10673         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
10674         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
10675         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
10676         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
10677         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
10678
10679         * tree.def, c-common.def, objc/objc-tree.def: Use
10680         tree_code_class enumeration constants instead of code letters.
10681
10682         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
10683         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
10684         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
10685         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
10686         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
10687         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
10688         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
10689         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
10690         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
10691         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
10692         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
10693         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
10694         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
10695         Update to match.
10696
10697         * LANGUAGES: Add note about change.
10698
10699 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10700
10701         PR tree-optimization/17319
10702         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
10703         examine pointers on the LHS of an assignment.
10704         (collect_points_to_info_r): Handle RETURN_EXPR.
10705
10706 2004-09-17 Jeff Law  <law@redhat.com>
10707
10708         * tree-ssa-dom.c (const_and_copies_stack): New.
10709         (dom_walk_block_data): Remove const_and_copies field.
10710         (record_const_or_copy): No longer need to pass in varray_type *.
10711         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
10712         Callers updated.
10713         (record_equality): Similarly.
10714         (restore_vars_to_original_value): Similarly.  Revamp to use new
10715         single global stack rather than per-block stacks.
10716         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
10717         (thread_across_edge): Remove now unused parameters.
10718         (dom_opt_initialize_block_local_data): No longer test the block
10719         local CONST_AND_COPIES.
10720         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
10721
10722 2004-09-17  Jan Hubicka  <jh@suse.cz>
10723
10724         PR tree-optimization/17509
10725         * tree-optimize.c (update_inlined_to_pointers): New function.
10726         (tree_rest_of_compilation): Use it.
10727
10728 2004-09-17  Devang Patel  <dpatel@apple.com>
10729
10730         * dbxout.c (get_lang_number): New.
10731         (dbxout_init): Include lang number in N_SO  stab.
10732         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
10733         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
10734
10735 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10736
10737         PR tree-optimization/17273
10738         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
10739         replacement is a constant.
10740
10741 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10742
10743         * c-tree.h (enum c_typespec_keyword): New.
10744         (struct c_declspecs): Adjust description of "type".  Remove
10745         specbits, explicit_int_p and explicit_char_p.  Rename
10746         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
10747         short_p, signed_p, unsigned_p and complex_p.
10748         (finish_declspecs): New.
10749         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
10750         typename): Call finish_declspecs.
10751         * c-decl.c (finish_declspecs): New.
10752         (declspecs_add_type): Check for combinations which cannot occur in
10753         valid specifier lists.  Update comments.
10754         (shadow_tag_warned): Remove checks done in finish_declspecs.
10755         Don't report useless type name if type defaulted to int.
10756         (grokdeclarator): Remove checks and actions done in
10757         finish_declspecs.  Don't allow for type being NULL.  Update for
10758         datastructures changes.  Initialize decl_attr.
10759         (build_null_declspecs, quals_from_declspecs): Update for
10760         datastructures changes.
10761
10762 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
10763
10764         * doc/extend.texi: Fix duplicated word.
10765
10766 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
10767
10768         * doc/invoke.texi: Remove stray explanation on
10769         -freduce-all-givs and -fmove-all-movables.
10770
10771 2004-09-17  James Morrison  <phython@gcc.gnu.org>
10772
10773         * doc/cfg.texi: Use @smallexample.
10774         * doc/md.texi: Likewise.
10775         * doc/tree-ssa.texi: Likewise.
10776         * doc/extend.texi: Likewise.  Use @r{} in comments.
10777         * doc/trouble.texi: Use @r{} in comments.
10778
10779 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
10780
10781         * configure.ac (gcc_cv_gld_version): Handle whitespace before
10782         "VERSION=".
10783         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
10784         * configure: Regenerate.
10785
10786 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
10787
10788         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
10789         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
10790         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
10791         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
10792         slashes in substitutions.
10793         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
10794
10795 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10796
10797         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
10798         gimplify.c, lambda-code.c, optabs.c, predict.c,
10799         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
10800         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
10801         conventions.
10802
10803 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10804
10805         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
10806         doc/extend.texi, doc/install.texi, doc/invoke.texi,
10807         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
10808         doc/trouble.texi: Use @option around options.
10809
10810 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
10811
10812         * Makefile.in (gen-protos.o): Depend on errors.h.
10813
10814 2004-09-17  Steven Bosscher  <stevenb@suse.de>
10815
10816         PR tree-optimization/17513
10817         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
10818         for successors of the entry block.
10819
10820 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
10821
10822         PR rtl-optimization/15187
10823         * ifcvt.c (noce_try_cmove_arith): Exit early if total
10824         insn_rtx_cost of both branches > BRANCH_COST
10825
10826 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10827
10828         PR tree-optimization/17528
10829         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
10830         erase the may-alias set for a tag when merging it with
10831         another.
10832
10833 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10834
10835         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
10836         for 32-bit TARGET_SHMEDIA.
10837         (call_value): Likewise.
10838
10839 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10840
10841         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
10842         test apply only to TREE_STATIC and DECL_EXTERNAL.
10843
10844 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10845
10846         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
10847         * basic-block.h (get_dominated_by_region): Declare.
10848         * dominance.c (get_dominated_by_region): New function.
10849         * tree-cfg.c: Include cfglayout.h.
10850         (tree_duplicate_bb): Duplicate also phi nodes.
10851         (struct ssa_name_map_entry): New type.
10852         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
10853         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
10854         allocate_ssa_names, rewrite_to_new_ssa_names_def,
10855         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
10856         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
10857         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
10858         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
10859         rewrite_to_new_ssa_names, allocate_ssa_names,
10860         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
10861         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
10862         (copy_loop_headers): Use tree_duplicate_sese_region.
10863
10864 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
10865
10866         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
10867
10868 2004-09-16 Jeff Law  <law@redhat.com>
10869
10870         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
10871         (rewrite_block_data): Remove, no longer used.
10872         (rewrite_initialize_block_local_data): Remove, no longer used.
10873         (rewrite_initialize_block): Mark parameters as unused as needed.
10874         Change references to the block local block_defs to be block_defs_stack.
10875         Push a marker onto the block_defs_stack.
10876         (ssa_rewrite_initialize_block): Similarly.
10877         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
10878         (ssa_register_new_def): No longer needs varray argument.  Use
10879         block_defs_stack instead.  No longer handle possibly null block_defs
10880         varray.  Reverse order of items we push on the stack to make it
10881         easier to identify our marker.
10882         (register_new_def): No longer handle possibly null block_defs
10883         varray.
10884         (rewrite_finalize_block): Revamp to look for markers in the global
10885         block_defs_stack varray rather than wiping a block local varray.
10886         Mark arguments as unused as needed.
10887         (ssa_rewrite_finalize_block): Similarly.
10888         (rewrite_into_ssa): Update initialization of dom walker structure
10889         to reflect that we don't need block local data anymore.  Initialize
10890         the block_defs_stack varray.
10891         (rewrite_ssa_into_ssa): Similarly.
10892         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
10893         (struct dom_walk_data): Kill block_defs field.
10894         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
10895         (thread_across_edge): Use the global block_defs_stack instead of
10896         the old block_defs varray.
10897         (dom_opt_initialize_block_local_data): Update now that we don't have
10898         block_defs field to check anymore.
10899         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
10900         (restore_currdefs_to_original_value): Use the new block_defs_stack
10901         instead of a block local varray.
10902         (dom_opt_finalize_block): Similarly.
10903         (record_equivalencs_from_phis): Similarly.
10904         (optimize_stmt, register_definitions_for_stmt): Similarly.
10905
10906 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
10907
10908         PR tree-optimization/17517
10909         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10910         coalesce same-root variables without checking for abnormal PHI usage.
10911
10912 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10913
10914         * cfgloop.h (duplicate_loop):  Add prototype.
10915         * cfgloopmanip.c (duplicate_loop): Make non-static.
10916         * lambda-code.c (perfect_nestify): Factor out test whether
10917         we can handle this loop into separate function.
10918         Call it.
10919         (can_convert_to_perfect_nest): New function.
10920         (replace_uses_of_x_with_y): Add modify_stmt call.
10921         * tree-loop-linear.c (linear_transform_loops): Call
10922         rewrite_into_loop_closed_ssa and free_df.
10923
10924 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10925
10926         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
10927         loop invariant as well.
10928         (perfect_nestify): new function.
10929         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
10930         upper bounds, and steps.
10931         Set outerinductionvar properly.
10932         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
10933         parameters.
10934         Return NULL if we need a perfect loop and can't make one.
10935         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
10936         (not_interesting_stmt): New function.
10937         (phi_loop_edge_uses_def): Ditto.
10938         (stmt_uses_phi_result): Ditto.
10939         (stmt_is_bumper_for_loop): Ditto.
10940         (perfect_nest_p): Ditto.
10941         (nestify_update_pending_stmts): Ditto.
10942         (replace_uses_of_x_with_y): Ditto.
10943         (stmt_uses_op): Ditto.
10944         (perfect_nestify): Ditto.
10945         * lambda-mat.c (lambda_matrix_id_p): New function.
10946         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
10947         * lambda.h: Update prototypes.
10948         * tree-loop-linear (linear_transform_loop): Use new
10949         perfect_nest_p. Detect and ignore identity transform.
10950         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
10951
10952 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
10953
10954         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
10955         Gather also strides of accessed data.  Pass in the data references
10956         array.
10957         (try_interchange_loops): Add a new heuristic for handling the temporal
10958         locality.  Pass in the data references array.
10959         (linear_transform_loops): Pass the data references array to
10960         try_interchange_loops.
10961
10962 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
10963
10964         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
10965
10966 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
10967
10968         * doc/c-tree.texi (Classes): Remove index entries for
10969         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
10970
10971 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10972
10973         * fold-const.c (fold): Fold difference of addresses.
10974         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
10975         get_inner_reference.
10976         * tree-ssa-loop-ivopts.c (peel_address): Removed.
10977         (ptr_difference_const): Moved to fold-const.c.
10978         (split_address_cost): Use get_inner_reference instead of peel_address.
10979         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
10980         * tree.h (ptr_difference_const): Export.
10981
10982         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
10983         variable type to the dump.  Fix indentation.
10984         (idx_find_step): Handle nonconstant array_ref_element_size and
10985         array_ref_low_bound.
10986         (idx_record_use): Handle array_ref_element_size and
10987         array_ref_low_bound.
10988         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
10989         statements correctly.
10990         (get_computation_at, iv_value): Do not unshare expressions here.
10991         (rewrite_use_outer): Unshare the expression before it is emitted
10992         to code.
10993         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
10994         Moved to tree.c.
10995         * tree.c (unsigned_type_for, signed_type_for): Moved from
10996         tree-ssa-loop-niter.c.  Use langhooks.
10997         * tree.h (signed_type_for): Export.
10998
10999 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
11000
11001         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
11002         prototype.
11003
11004 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
11005
11006         PR target/11572
11007         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
11008         Add two parameters to extra_includes.
11009         (C_INCPATH_INIT): Remove.
11010         * c-incpath.c (register_include_chains): Call extra_pre_includes
11011         before adding the standard include directory.
11012         Update call to extra_includes.
11013         (!defined TARGET_EXTRA_INCLUDES): Update
11014         hook_void_charptr_charptr_int and add !define
11015         TARGET_EXTRA_PRE_INCLUDES.
11016         (!define TARGET_EXTRA_INCLUDES): Define as
11017         hook_void_charptr_charptr_int.
11018         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
11019         (target_c_incpath): Always declare.
11020         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
11021         empty function.
11022         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
11023         * config/darwin.h: (darwin_register_frameworks): Update for
11024         the two new parameters.
11025         (darwin_register_objc_includes): Add prototype.
11026         (TARGET_EXTRA_PRE_INCLUDES): Define.
11027         * config/darwin-c.c (darwin_register_objc_includes): New function.
11028         (darwin_register_frameworks): Update for the two new parameters.
11029         (target_c_incpath): Remove.
11030         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
11031         the compile line.
11032         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
11033         parameters.
11034         (TARGET_EXTRA_PRE_INCLUDES): Document.
11035
11036         * gcc.c (spec_function): Add replace-outfile.
11037         (replace_outfile_spec_function): New function.
11038         * config/darwin.h (LINK_SPEC): Add replace
11039         -lobjc with -lobjc-gnu if -fgnu-runtime is
11040         supplied.
11041         * invoke.texi (replace-outfile): Document.
11042
11043 2004-09-13  Jan Hubicka  <jh@suse.cz>
11044
11045         * predict.c (expr_expected_value, strip_builtin_expect): New function.
11046         (tree_predict_by_opcode): Use it.
11047         (tree_estimate_probability): Add, for now disabled,
11048         strip_builtin_expect call.
11049
11050 2004-09-15  James E Wilson  <wilson@specifixinc.com>
11051
11052         PR target/17455
11053         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
11054         if current_function_decl is a sibcall.
11055
11056 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
11057
11058         * varasm.c (default_function_rdodata_section): Make sure to pass
11059         along a decl for a link-once section.
11060
11061 2004-09-15  Richard Henderson  <rth@redhat.com>
11062
11063         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
11064         warning with code disable.  Fix formatting.
11065
11066 2004-09-15  Steven Bosscher  <stevenb@suse.de>
11067
11068         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
11069         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
11070         after propagating into an ADDR_EXPR.
11071
11072 2004-09-15  Andrew Pinski  <apinski@apple.com>
11073
11074         PR rtl-opt/17427
11075         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
11076         Move it out of gcc_assert.
11077
11078 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
11079
11080         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
11081         except.c, fold-const.c, function.c, langhooks.c, params.c,
11082         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
11083         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
11084         for quoting in diagnostics going through pretty-print.c.  Use ''
11085         for quoting in other diagnostic text.
11086         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
11087         translation.
11088         * Makefile.in (langhooks.o): Update dependencies.
11089         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
11090         formats.
11091
11092 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
11093
11094         * configure.ac: Check for COMDAT support.  Robustify check for
11095         SHF_MERGE support.
11096         * configure: Regenerated.
11097         * config.in: Likewise.
11098         * langhooks-def.h (lhd_comdat_group): New function.
11099         (LANG_HOOKS_COMDAT_GROUP): New macro.
11100         (LANG_HOOKS_DECLS): Use it.
11101         * langhooks.c (lhd_comdat_group): Define.
11102         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
11103         * output.h (named_section_flags): Make it a macro.
11104         (named_section_real): New function.
11105         (default_no_named_section): Add decl parameter.
11106         (default_elf_asm_named_section): Likewise.
11107         (default_coff_asm_named_section): Likewise.
11108         (default_pe_asm_named_section): Likewise.
11109         * target.h (gcc_target): Adjust type of named_section.
11110         * varasm.c (named_section_flags): Rename to named_section_real.
11111         Add decl parameter.
11112         (default_no_named_section): Add decl parameter.
11113         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
11114         with the case that ASM_COMMENT_START is "@".
11115         (default_coff_asm_named_section): Add decl parameter.
11116         (default_pe_asm_named_section): Likewise.
11117         * config/alpha/alpha.c (vms_asm_named_section): Add decl
11118         parameter.
11119         (unicosmk_asm_named_section): Likewise.
11120         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
11121         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
11122         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
11123         * config/cris/cris-protos.h (cris_target_asm_named_section):
11124         Likewise.
11125         * config/cris/cris.c (cris_target_asm_named_section):
11126         Likewise.
11127         * config/darwin/darwin-protos.h (darwin_asm_named_section):
11128         Likewise.
11129         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
11130         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
11131         * config/i386/i386-protos.h (i386_pe_asm_named_section):
11132         Likewise.
11133         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
11134         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
11135         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
11136         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
11137         Likewise.
11138         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
11139         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
11140         * cp/cp-tree.h (cxx_comdat_group): Declare.
11141         * cp/decl.c (cxx_comdat_group): New function.
11142
11143 2004-09-15  Jan Hubicka  <jh@suse.cz>
11144
11145         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
11146         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
11147
11148         * tree-cfg.c (remove_bb): Release SSA defs.
11149
11150 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
11151
11152         * doc/tm.texi: Follow spelling conventions.
11153
11154 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
11155
11156         * tree-ssa-dom.c: Fix comment typos.
11157
11158 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
11159
11160         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
11161         include ccr.
11162         (ppc_fallback_frame_state): Save location of CR.
11163
11164 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
11165
11166         * expr.c (string_constant): Handle also read-only variables
11167         initialized to string literals.
11168
11169         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
11170         into memcpy (x, y, 1) if memcpy can be expanded inline.
11171
11172 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11173
11174         PR tree-optimization/17468
11175         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
11176         definition inside a block precede uses.
11177         * tree-tailcall.c (adjust_return_value): Emit statements in the
11178         correct order.
11179
11180 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
11181
11182         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
11183
11184 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
11185
11186         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
11187
11188 2004-09-14 Jeff Law  <law@redhat.com>
11189
11190         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
11191         (struct dom_walk_block_data): Remove avail_exprs member.
11192         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
11193         (lookup_avail_expr): No longer need to pass in address of
11194         the block local available exprs stack.  All callers changed.
11195         (simplify_cond_and_lookup_avail_expr): Similarly.
11196         (simplify_switch_and_lookup_avail_expr): Similarly.
11197         (get_eq_expr_value, record_cond): Likewise.
11198         (record_dominating_conditions): Likewise.
11199         (update_rhs_and_lookup_avail_expr): Likewise.
11200         (record_equivalences_from_stmt): Likewise.
11201         (dom_opt_initialize_block_local_data): No longer test state of
11202         block local avail_exprs.
11203         (dom_opt_initialize_block): Mark unwind point in the global
11204         avail_expr stack.
11205         (remove_expressions_from_table): Update to unwind to the
11206         most recent unwind marker in the global avail_expr stack.
11207         All callers changed.
11208         (dom_opt_finalize_block): Mark unwind point in the global
11209         avail_expr stack as needed.
11210         (record_cond): Push elements into the global avail_exprs stack.
11211
11212         * tree-dfa.c (free_df_for_stmt): No longer static.
11213         (free_df): Update comments.
11214         * tree-flow.h (free_df_for_stmt): Prototype.
11215         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
11216         call release_defs.
11217
11218 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
11219
11220         PR tree-optimization/17252
11221         * tree-ssa-alias.c (may_alias_p): Don't assume that a
11222         pointer may not point to itself when using relaxed
11223         aliasing rules.
11224
11225 2004-09-14  Richard Henderson  <rth@redhat.com>
11226
11227         PR middle-end/17397
11228         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
11229         while folding <ADDR_EXPR <INDIRECT_REF X>>.
11230
11231 2004-09-14  Andrew Pinski  <apinski@apple.com>
11232
11233         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
11234         sets of the pointers but the aliasing sets of what they point to.
11235
11236 2004-09-14  Roger Sayle  <roger@eyesopen.com>
11237
11238         PR rtl-optimization/9771
11239         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
11240         conditional compilation in init_reg_sets_1.
11241         (init_reg_sets_1): Let global_regs[i] take priority over the frame
11242         (but not stack) pointer exceptions to regs_invalidated_by_call.
11243         (globalize_reg): Globalizing a fixed register may need to update
11244         regs_invalidated_by_call.
11245
11246 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
11247
11248         PR tree-optimization/15262
11249         * tree-dfa.c (dump_variable): Also print the type of the
11250         variable.
11251         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
11252         memory tags are of conflicting alias sets but have no aliased
11253         symbols in common, add one tag to the alias set of the other.
11254         (setup_pointers_and_addressables): Remove hack to deal with
11255         programs with no aliased symbols.
11256         (may_alias_p): Don't special case aggregate types.
11257
11258 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11259
11260         PR c/15498
11261         * doc/invoke.texi (Environment Variables): Correct example locale.
11262
11263 2004-09-14  Jan Hubicka  <jh@suse.cz>
11264
11265         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
11266
11267 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
11268
11269         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
11270
11271 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11272
11273         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
11274         restrict_p.
11275         (struct c_declarator): Change u.array.quals and pointer_quals to
11276         int.  Add u.array.attrs.
11277         (quals_from_declspecs): New.
11278         * c-decl.c (quals_from_declspecs): New.
11279         (shadow_tag_warned): Give more specific message for useless type
11280         qualifiers.
11281         (build_array_declarator, set_array_declarator_inner,
11282         grokdeclarator, make_pointer_declarator, build_null_declspecs,
11283         declspecs_add_qual): Update for changed structures.
11284
11285 2004-09-14  Jeff Law  <law@redhat.com>
11286
11287         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
11288         to a global varray.
11289         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
11290         (dom_opt_initialize_block_local_data): No longer test state
11291         of stmts_to_rescan.
11292         (dom_opt_finalize_block): Update due to change in scope of
11293         stmts_to_rescan.
11294         (optimize_stmt): Similarly.
11295
11296 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11297
11298         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
11299         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
11300         comment typos.  Follow spelling conventions.
11301
11302 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11303
11304         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
11305         config/i386/predicates.md, config/sparc/sparc.c: Follow
11306         spelling conventions.
11307
11308 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11309             Steven Bosscher  <stevenb@suse.de>
11310
11311         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
11312         * basic-block.h (struct reorder_block_def): Add copy_number field.
11313         * cfgloop.h (biv_p): Declare.
11314         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
11315         * common.opt (fsplit-ivs-in-unroller): New flag.
11316         * loop-iv.c (biv_p): New function.
11317         * loop-unroll.c: Include hashtab.h and recog.h.
11318         (struct iv_to_split, struct split_ivs_info): New types.
11319         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
11320         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
11321         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
11322         insert_base_initialization, split_iv): New functions.
11323         (peel_loop_completely, unroll_loop_constant_iterations,
11324         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
11325         Use them.
11326         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
11327
11328 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11329
11330         * tree-cfg.c (thread_jumps): Update dominators correctly in
11331         case destination of threaded edge dominates its source.
11332
11333 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11334
11335         * unroll.c: Removed.
11336         * loop.h: Removed.
11337         * Makefile.in (LOOP_H, unroll.o): Removed.
11338         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
11339         dependency.
11340         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
11341         reference.
11342         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
11343         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
11344         * loop.c: Do not include loop.h.
11345         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
11346         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
11347         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
11348         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
11349         struct loop_regs, struct loop_movables, struct loop_info): Moved
11350         from loop.h.
11351         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
11352         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
11353         find_common_reg_term, loop_iterations, final_giv_value): Moved
11354         from unroll.c.
11355         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
11356         loop_dump_stream, for_each_insn_in_loop, express_from,
11357         extend_value_for_giv, loop_iv_add_mult_emit_before,
11358         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
11359         loop_insn_first_p, get_condition_for_loop,
11360         loop_insn_emit_before, loop_insn_hoist,
11361         loop_insn_sink): Made static.
11362         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
11363         reference.
11364         (strength_reduce): Do not call unroller.
11365         (record_giv): Do not initialize unrolled field.
11366         (prescan_loop): Do not set loop_info->preconditioned.
11367         * passes.c: Do not include loop.h.
11368         (rest_of_handle_loop_optimize): Do not call unroller.
11369         * predict.c: Do not include loop.h.
11370         * rtl.h (NOTE_PRECONDITIONED): Removed.
11371         * stmt.c: Do not include loop.h.
11372         * toplev.c: Do not include loop.h.
11373         (process_options): Do not handle flag_old_unroll_loops.
11374
11375         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
11376         Documentation removed.
11377         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
11378
11379 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
11380
11381         * Makefile.in (STAGE1_CHECKING): New variable.
11382         (stage1_build): Use it.
11383         * tree-ssa.c (verify_ssa): Preserve state of dominance
11384         information.
11385
11386 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
11387
11388         * config/i386/i386.c (output_fp_compare): Add generation
11389         of ftst instruction.
11390         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
11391         Use output_fp_compare () function.
11392         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
11393         (fix_truncdi_memory): Remove operands[5] copy.
11394
11395 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11396
11397         * config/m32r/m32r.md, config/m68k/m68kelf.h,
11398         config/mcore/mcore.md, config/rs6000/linux64.h,
11399         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
11400         typos.
11401
11402 2004-09-13  James E Wilson  <wilson@specifixinc.com>
11403
11404         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
11405         * gen-protos.c: Include errors.h.
11406         (progname): Delete.
11407
11408 2004-09-14  Jan Hubicka  <jh@suse.cz>
11409
11410         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
11411         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
11412         (predict_loops): Use number_of_iterations_exit to predict
11413         number of iterations on trees.
11414
11415 2004-09-13  Dale Johannesen  <dalej@apple.com>
11416
11417         PR 17408
11418         PR 17409
11419         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
11420         objects declared extern.
11421
11422 2004-09-14  Paul Brook  <paul@codesourcery.com>
11423
11424         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
11425         HOST_WIDE_INT.
11426
11427 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
11428
11429         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
11430         Only use TYPE_BINFO for aggregates.
11431
11432 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
11433
11434         * expmed.c (synth_mult): Initialize latency.  Check cost before
11435         checking ops count.
11436
11437 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
11438
11439         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
11440         add_call_clobber_ops and add_call_read_ops.
11441         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
11442         the number of vdefs and vuses inserted based on analysis of global
11443         variables across calls.  * tree-dfa.c (find_referenced_vars):
11444         Needed to reset static var maps before each function is compiled.
11445         * cgraphunit.c:
11446         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
11447         static_vars_info,functions_to_static_vars_info,module_statics_escape,
11448         all_module_statics,searchc_env,dfs_info): New fields to support
11449         analysis of static global variables.
11450         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
11451         cgraph_reset_static_var_maps, get_global_static_vars_info,
11452         get_global_statics_not_read, get_global_statics_not_written,
11453         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
11454         check_rhs_var, check_lhs_var, get_asm_expr_operands,
11455         process_call_for_static_vars, scan_for_static_refs,
11456         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
11457         clear_static_vars_maps, cgraph_propagate_bits,
11458         cgraph_characterize_statics): New. Functions to support analysis
11459         of static global variables.
11460         (cgraph_mark_local_and_external_functions): Renamed from:
11461         (cgraph_mark_local_functions)
11462         (cgraph_expand_all_functions): Remove call to
11463         cgraph_mark_local_and_external_functions.
11464         (cgraph_optimize): Added driver to analyze static variables whose
11465         scope is within the compilation unit.  * cgraph.h (struct
11466         cgraph_local_info, GTY): Added statics_read, statics_written,
11467         local, calls_read_all, calls_write_all, for_functions_valid.
11468         (struct cgraph_node): Added next_cycle.  * cgraph.c
11469         (dump_cgraph_node): Added print routines for new fields.  *
11470         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
11471         list.
11472
11473 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
11474
11475         * c-decl.c (grokdeclarator): Correct comments about where storage
11476         class specifiers are rejected by grammar and add corresponding
11477         asserts.  Diagnose typedefs and parameters declared inline.
11478         Change warning for inline main to a pedwarn.  Only diagnose inline
11479         main if hosted.
11480         (declspecs_add_scspec): Allow duplicate "inline".
11481
11482 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
11483
11484         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
11485         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11486
11487 2004-09-13  Richard Henderson  <rth@redhat.com>
11488
11489         PR 17436
11490         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
11491         (tree_type): Replace spare with contains_placeholder_bits.
11492         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
11493         make static.  Remove seen_types list.
11494         (type_contains_placeholder_p): New.
11495
11496 2004-09-13  James E Wilson  <wilson@specifixinc.com>
11497
11498         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
11499         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
11500         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
11501         bdesc_arrays instead of mips_bdesc.
11502         (mips_init_builtins): Likewise.
11503         * config/mips/mips.h (TARGET_SB1): New.
11504         (HAVE_SQRT_P): Delete.
11505         * config/mips/mips.md (divide_condition): Support V2SF.
11506         (sqrt_condition, recip_condition): New.
11507         (div<mode>3): Use ANYF instead of SCALARF.
11508         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
11509         MODE.
11510         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
11511         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
11512         instead of MODE.
11513         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
11514         instead of SCALARF.  Use UNITMODE instead of MODE.
11515
11516 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
11517
11518         * config.in: Regenerate after removal of libbanshee.
11519
11520 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
11521
11522         PR tree-optimization/17400
11523         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11524         coalesce partitions when one occurs in an abnormal PHI.
11525
11526 2004-09-13  Andrew Pinski  <apinski@apple.com>
11527
11528         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
11529         name to _new_size.
11530
11531 2004-09-13  Richard Henderson  <rth@redhat.com>
11532
11533         PR inline-asm/6806
11534         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
11535         (cselib_invalidate_rtx_note_stores): New.
11536         (cselib_record_sets, cselib_process_insn): Update to match.
11537         * cselib.h (cselib_invalidate_rtx): Declare.
11538         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
11539
11540 2004-09-13  Richard Henderson  <rth@redhat.com>
11541
11542         PR tree-opt/10528
11543         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
11544         after copying its argument.
11545
11546 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
11547
11548         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
11549         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
11550         in diagnostics.  Use %' for English apostrophes.
11551         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
11552         (pedwarn_c90, pedwarn_c99): Use it.
11553         * c-decl.c (lookup_label): Quote label name in diagnostic.
11554         * c-parse.in (yyprint): Use ' instead of ` for left quote.
11555         * c-typeck.c (warn_for_assignment): Likewise.
11556
11557 2004-09-13  Jan Hubicka  <jh@suse.cz>
11558
11559         * i386.c (x86_schedule): New global variable.
11560         (override_options): Disable scheduling when not supported.
11561         * i386.h (x86_schedule): Declare.
11562         (TARGET_SCHEDULE): New macro.
11563
11564 2004-09-12  Richard Henderson  <rth@redhat.com>
11565
11566         PR c++/16254
11567         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
11568         * tree.c, tree.h (has_cleanups): Remove.
11569
11570 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11571
11572         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
11573         arguments of the phi nodes correctly.
11574
11575 2004-09-12  Jan Hubicka  <jh@suse.cz>
11576
11577         * ggc-common.c (cmp_statistics): Fix sorting.
11578
11579 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
11580
11581         PR target/16795
11582         * expmed.c (expand_divmod): If cheap power of 2 divide is
11583         available, use it for negative constant as well.
11584
11585 2004-09-12  Andrew Pinski  <apinski@apple.com>
11586
11587         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
11588         size of 0.
11589
11590         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
11591
11592 2004-09-12  Richard Henderson  <rth@redhat.com>
11593
11594         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
11595         or minus one.
11596         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
11597         post-reload, and scratch NULL.
11598         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
11599         (x86_shift_adj_2): Use ix86_expand_clear.
11600         (ashldi3): Remove CMOVE expansion difference.
11601         (ashldi3_1): Remove.
11602         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
11603         add constraints for immediates.  New peephole for split-with-temp.
11604         Run splitter after peep2 pass.
11605         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
11606         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
11607         (setcc_2): Rename with *.
11608         * config/i386/predicates.md (reg_or_pm1_operand): New.
11609         (ashldi_input_operand): New.
11610
11611 2004-09-12  Richard Henderson  <rth@redhat.com
11612
11613         * print-rtl.c (print_decl_name): New.
11614         (print_mem_expr): Use it.
11615
11616 2004-09-12  Richard Henderson  <rth@redhat.com
11617
11618         PR 17186, part deux
11619         * except.c (sjlj_emit_function_exit): Fix logic locating
11620         sjlj_exit_after in final block.
11621
11622 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
11623
11624         * common.opt: Remove flags -fmove-all-movables and
11625         -freduce-all-givs.
11626         * loop-invariant.c (find_invariants_to_move):
11627         Remove all uses of flag_move_all_movables.
11628         * loop.c (move_movables): Remove all uses of
11629         flag_move_all_movables.
11630         (strength_reduce): Remove all uses of
11631         flag_reduce_all_givs.
11632         * doc/invoke.texi: Remove documentation of flags
11633         -fremove-all-movables and -freduce-all-givs.
11634
11635 2004-09-11  Roger Sayle  <roger@eyesopen.com>
11636
11637         PR middle-end/17411
11638         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
11639         change. elt->type may be a floating point type, so use fold_convert.
11640
11641 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
11642
11643         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
11644         the thing referenced as used, not the stub itself.
11645
11646 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11647
11648         * c-tree.h (enum c_storage_class): New.
11649         (struct c_declspecs): Add storage_class, inline_p and thread_p.
11650         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
11651         declarations and "auto" or "register" in file scope empty
11652         declarations.  Give more specific warnings for other cases of
11653         storage class specifiers in empty declarations.
11654         (grokdeclarator): Update for new structures.  Don't check for
11655         multiple storage classes.  Diagnose file-scope "register" if
11656         pedantic.
11657         (build_null_declspecs): Update.
11658         (declspecs_add_scspec): Update.  Diagnose multiple storage class
11659         specifiers and invalid uses of "__thread".
11660
11661 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
11662
11663         * tree.c (tree_code_size): New function, bulk of code from tree_size.
11664         (tree_size, make_node): Use it.
11665         * tree-ssa-pre.c (init_pre): Use it.
11666         * tree.h: Prototype it.
11667
11668 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11669
11670         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
11671         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
11672         redirect_immediate_use): Use PHI_DF.
11673         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
11674         (bb_for_stmt): Use PHI_BB.
11675         (get_immediate_uses): Use PHI_DF.
11676         * tree-ssa-dse.c (max_stmt_uid): New variable.
11677         (get_stmt_uid): New function.
11678         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
11679         node annotations.
11680         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
11681         (max_uid): Renamed to max_stmt_uid.
11682         (get_stmt_uid): New function.
11683         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
11684         phi node annotations.
11685         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
11686         * tree.h (PHI_BB, PHI_DF): New accessor functions.
11687         (struct tree_phi_node): Add bb and df fields.
11688
11689 2004-09-11  Richard Henderson  <rth@redhat.com>
11690
11691         PR middle-end/17416
11692         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
11693         in conflict loop.
11694
11695 2004-09-11  Jan Hubicka  <jh@suse.cz>
11696
11697         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
11698         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
11699         * i386.md (i387_cw): Add 'uninitialized' mode.
11700
11701         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
11702         (output_location): Break out from ....
11703         (branch_prob): ... here; handle gcov output on trees.
11704         * toplev.c (process_options): No longer be sorry about coverage for
11705         trees.
11706
11707 2004-09-11  Steven Bosscher  <stevenb@suse.de>
11708
11709         PR c++/17412
11710         * fold-const.c (fold): Do not try to fold the operand of a
11711         CLEANUP_POINT_EXPR if that operand does itself not have any
11712         operands.
11713
11714         PR middle-end/17417
11715         * langhooks.c (lhd_decl_printable_name): Make sure that this
11716         function is called with is a decl node that has an identifier.
11717         * tree-pretty-print.c (dump_function_name): New function to
11718         wrap PRINT_FUNCTION_NAME and dump_decl_name.
11719         (print_call_name): Use it.
11720
11721 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
11722
11723         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
11724         "config.h" if not.
11725
11726 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
11727
11728         * tree-ssa-alias.c (collect_points_to_info_r): Handle
11729         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
11730         to OFFSET.
11731
11732 2004-09-11  Richard Henderson  <rth@redhat.com>
11733
11734         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
11735         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
11736         operand of the ADDR_EXPR.
11737         (expand_expr_real_1): Update to match.
11738
11739 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
11740
11741         PR target/17277
11742         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
11743         choose 64-bit version.
11744
11745 2004-09-11  Richard Henderson  <rth@redhat.com>
11746
11747         PR c/17396
11748         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
11749
11750 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
11751
11752         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
11753         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
11754         Insert @: after i.e. or e.g.
11755
11756 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11757
11758         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
11759         D.xxx rather than <Dxxx>.
11760
11761 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11762
11763         * configure.ac (AC_MSG_CHECKING(what linker to use)):
11764         in_tree_ld_is_elf should be true for LynxOS.
11765         * configure: Regenerate.
11766
11767 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11768
11769         * Makefile.in (all.cross): Add srcextra.
11770
11771 2004-09-10  Roger Sayle  <roger@eyesopen.com>
11772
11773         PR middle-end/17024
11774         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
11775         floating point comparison operators.  Change aborts to gcc_asserts.
11776
11777 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11778
11779         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
11780
11781 2004-09-10  James E Wilson  <wilson@specifixinc.com>
11782
11783         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
11784         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
11785
11786         * convert.c (convert_to_vector): Replace recursive call with
11787         error_mark_node.
11788
11789         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
11790         Add integer argument named constant.  Use const_tiny_rtx instead of
11791         CONST0_RTX.
11792         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
11793         and CONST1_RTX.
11794         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
11795         vector types.
11796         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
11797         of gen_rtx_raw_CONST_VECTOR.
11798
11799 2004-09-10  Eric Christopher  <echristo@redhat.com>
11800
11801         PR c/16046
11802         * c-parse.in (attribute): Add NULL_TREE for error case
11803         for error recovery.
11804
11805 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
11806
11807         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
11808         (extract_interface_info): Delete prototype.
11809         * c-decl.c (extract_interface_info): Delete stub.
11810         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
11811         it's not already been done ...
11812         (init_c_lex): ... not here.
11813         (fe_file_change): Don't call extract_interface_info.
11814
11815 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11816
11817         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
11818         typedef_p and typedef_signed_p.
11819         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
11820         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
11821         Check typedef_p and typedef_signed_p, not typedef_decl.
11822         (grokfield): Check typedef_p, not typedef_decl.
11823         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
11824         not typedef_decl.
11825         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
11826         typedef_decl.
11827
11828 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11829
11830         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
11831
11832 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11833
11834         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
11835         temporary variables.
11836
11837         * dbxout.c (dbxout_block): Update for
11838         current_function_func_begin_label a string.
11839         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
11840         * except.c (dw2_output_call_site_table): Likewise.
11841         * toplev.c (current_function_func_begin_label): Likewise.
11842         * tree.h (current_function_func_begin_label): Likewise.
11843         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
11844
11845         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
11846         loop.
11847
11848         * config/darwin.c: Include target.h.
11849         (struct machopic_indirection): Make ptr_name a string.
11850         (machopic_indirection_hash): Update for ptr_name a string.
11851         (machopic_indirection_eq): Likewise.
11852         (machopic_indirection_name): Likewise.
11853         (machopic_output_indirection): Likewise.
11854         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
11855         string.  Don't expect stub names to be in the identifier hash table.
11856         Do call strip_name_encoding before looking up entry in ID hash table.
11857         * config/t-darwin (darwin.o): Add target.h to dependencies.
11858
11859         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
11860         of fprintf for register names.
11861
11862         * output.h (unlikely_section_label): Delete declaration.
11863         (unlikely_text_section_name): Likewise.
11864         * varasm.c (unlikely_section_label_printed): Make static.
11865         (unlikely_section_label): Likewise.
11866         (unlikely_text_section_name): Likewise.
11867         (assemble_start_function): Use reconcat.
11868
11869         * rtl.def (REG): Add comment to describe third field.
11870
11871 2004-09-10  Andrew Pinski  <apinski@apple.com>
11872
11873         * config/darwin.c (machopic_mcount_stub_name): Call
11874         machopic_indirection_name instead of making the string
11875         ourselves.
11876
11877 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
11878
11879         Revert
11880
11881         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
11882
11883             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
11884             memory tag is call clobbered, so are its aliases.
11885             (group_aliases): When two memory tags being grouped, if one is
11886             call clobbered, so are the other and its aliases.
11887             (add_may_alias): Remove call-clobbering stuff.
11888             (replace_may_alias): Likewise.
11889             (merge_pointed_to_info): Merge pt_global_mem
11890
11891 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11892
11893         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
11894         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
11895         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
11896         tree-scalar-evolution.c, tree-ssa-copyrename.c,
11897         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
11898
11899 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11900
11901         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
11902         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
11903         pair.  Remove match_dup from inputs.  Remove masaccs handling.
11904         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
11905         (masaccs, mdasaccs): Turn into define_insns.
11906
11907 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11908
11909         * tree-tailcall.c (process_assignment): Only do accumulator transforms
11910         for floating-point types if flag_unsafe_math_optimizations.
11911
11912 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11913
11914         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
11915         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
11916         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
11917         config/h8300/h8300.md, config/i386/gmm_malloc.h,
11918         config/ia64/ia64.md, config/ip2k/libgcc.S,
11919         config/mips/mips-ps-3d.md, config/mips/mips.c,
11920         config/rs6000/rs6000.c, config/s390/s390.c,
11921         config/sh/symbian.c: Fix comment typos.
11922
11923 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11924
11925         * config/s390/s390.c (s390_emit_prologue): Added missing
11926         "{}" brackets.
11927
11928 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11929
11930         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
11931         typos.  Follow spelling conventions.
11932
11933 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
11934
11935         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
11936         in diagnostic.  Don't dereference NULL TYPE_NAME.
11937
11938 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11939
11940         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
11941         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
11942         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
11943         value-prof.c: Fix comment typos.  Follow spelling conventions.
11944
11945 2004-09-10  Jan Hubicka  <jh@suse.cz>
11946
11947         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
11948         * tree-split_edge.c (tree_split_edge): Likewise.
11949         (thread_jumps): Likewise.
11950
11951 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11952
11953         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
11954         typos.
11955
11956 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
11957
11958         * cgraph.h (cgraph_dump_file): Do not declare.
11959         * cgraphunit.c (cgraph_dump_file): Declare as static.
11960         (init_cgraph): New.
11961         * toplev.c (cgraph_dump_file): Do not declare.
11962         (compile_file): Call init_cgraph.
11963         * tree-dump.c (dump_files): Add IPA dump file, remove
11964         XML dump of call graph.
11965         (get_dump_file_name): Support IPA dump file naming scheme.
11966         * tree.h (enum tree_dump_index): Add IPA dump file, remove
11967         XML dump of call graph.
11968         * doc/invoke.texi (Debugging Options): Document the new options.
11969
11970 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11971
11972         * doc/extend.texi: Document the FR-V built-in functions.
11973
11974 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11975
11976         * doc/sourcebuild.texi: Delete libbanshee reference.
11977
11978 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
11979
11980         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
11981
11982 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11983
11984         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
11985         before calling vector_types_convertible_p.
11986         (digest_init): Check that inside_init has VECTOR_TYPE before calling
11987         vector_types_convertible_p.  Don't give another error if
11988         convert_for_assignment returns error_mark_node.
11989
11990 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11991
11992         PR middle-end/17055
11993         * fold-const.c (build_zero_vector): New function to construct a
11994         vector (either floating point or integer) of zeros.
11995         (fold_convert): Internally, enable conversions of integer zero
11996         to arbitrary vector types, using the new build_zero_vector.
11997
11998 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11999
12000         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
12001         expand a left shift by an immediate constant as either an ashl or
12002         a sequence of additions.
12003         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
12004         instead of calling gen_ashlsi3 with a constant directly.
12005
12006 2004-09-09  Roger Sayle  <roger@eyesopen.com>
12007
12008         * config/i386/i386.c (ix86_split_long_move): When optimizing for
12009         size, and the low and high parts of a DImode constant are equal,
12010         copy one register to another instead of loading the same immediate
12011         value twice.
12012
12013 2004-09-09  Richard Henderson  <rth@redhat.com>
12014
12015         PR middle-end/17367
12016         * function.c (assign_parm_setup_block): Only put PARALLELs into
12017         a register if use_register_for_decl.
12018
12019 2004-09-09  Eric Christopher  <echristo@redhat.com>
12020
12021         * ra-colorize.c (reset_lists): Move variable declaration inside
12022         ENABLE_CHECKING to avoid unused variable warnings when
12023         not --enable-checking.
12024         (check_colors): Ditto.
12025
12026 2004-09-09  Mike Stump  <mrs@apple.com>
12027
12028         * version.c (version_string): Bump to 4.0.0.
12029         * doc/include/gcc-common.texi (version-GCC): Likewise.
12030
12031 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
12032
12033         * doc/extend.texi (nothrow attribute): The attribute is not
12034         implemented in 3.2 and earlier.
12035
12036 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
12037
12038         * genrecog.c (compute_predicate_codes): Use op0_codes
12039         instead of codes.
12040
12041 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12042
12043         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
12044         implementation changes.
12045
12046 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12047
12048         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
12049         a PARALLEL instead of a SET due to added clobbers.
12050
12051 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12052
12053         * reload.c (find_reloads_address): Pass correct operand to
12054         maybe_memory_address_p.
12055
12056 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
12057
12058         * Makefile.in: Remove libbanshee, tree-alias-*.
12059         Remove tree-alias-common.h dependencies.
12060         * common.opt: Remove -ftree-points-to.
12061         * configure.ac: Remove libbanshee.
12062         * flags.h: Remove pta_type, flag_tree_points_to.
12063         * gengtype.c (open_base_files): Remove tree-alias-type.h.
12064         * opts.c (OPT_ftree_points_to): Remove.
12065         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
12066         * tree-dfa.c: Remove tree-alias-common.h
12067         * tree-into-ssa.c: Ditto.
12068         * tree-outof-ssa.c: Ditto.
12069         * tree-ssa-copyrename.c: Ditto.
12070         * tree-ssa-live.c: Ditto.
12071         * tree-optimize.c: Ditto.
12072         * tree-ssa.c: Ditto.
12073         Remove pass_build_pta, pass_del_pta.
12074         * tree-pass.h: Ditto.
12075         * tree-ssa-alias.c: Remove tree-alias-common.h.
12076         (struct alias_stats_d): Remove pta_queries, pta_resolved.
12077         (pass_may_alias): Remove PROP_pta requirement.
12078         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
12079         (get_tmt_for): Ditto.
12080         (dump_alias_stats): Ditto.
12081         * doc/passes.texi: Remove blurb about points-to analysis.
12082         * fortran/Make-lang.in: Remove tree-alias-*.o.
12083
12084 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12085
12086         * genattrtab.c (write_insn_cases): New function, split out from
12087         write_attr_case.  Correctly handle define_peepholes when printing
12088         the instruction name.
12089         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
12090
12091 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
12092
12093         PR target/17377
12094         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
12095         * config/cris/cris.c (cris_return_address_on_stack): New function.
12096         * config/cris/cris.md ("return"): For location of return address,
12097         also check cris_return_address_on_stack.
12098
12099 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
12100
12101         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
12102         calling phi_ssa_name_p.
12103
12104 2004-09-09  Richard Henderson  <rth@redhat.com>
12105
12106         PR c/17322
12107         * c-typeck.c (valid_compound_expr_initializer): Use only
12108         initializer_constant_valid_p, and not TREE_CONSTANT.
12109         (digest_init): Likewise.
12110         (output_init_element): Likewise.
12111
12112 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12113
12114         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
12115         live_out_1, prune_hardregs_for_mode, init_one_web_common,
12116         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
12117         record_conflict, compare_and_free_webs, init_webs_defs_uses,
12118         parts_to_webs_1, parts_to_webs, reset_conflicts,
12119         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
12120         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
12121         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
12122         put_move, remove_move, combine, select_spill, colorize_one_web,
12123         try_recolor_web, insert_coalesced_conflicts, check_colors,
12124         break_precolored_alias, restore_conflicts_from_coalesce,
12125         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
12126         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
12127         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
12128         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
12129         check_df): Likewise.
12130         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
12131         real_arithmetic, real_compare, real_exponent, real_ldexp,
12132         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
12133         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
12134         real_digit, real_nan, real_maxval, round_for_format, real_convert,
12135         real_to_target, real_from_target, real_hash, encode_ieee_single,
12136         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
12137         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
12138         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
12139         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
12140         extract_insn, peep2_next_insn, peep2_reg_dead_p,
12141         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
12142         if_test_bypass_p): Likewise.
12143         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
12144         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
12145         emit_swap_insn, swap_to_top, move_for_stack_reg,
12146         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
12147         compensate_edge, convert_regs_1): Likewise.
12148         * regclass.c (init_reg_sets, init_reg_sets_1,
12149         memory_move_secondary_cost): Likewise.
12150         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
12151         Likewise.
12152         * reload.c (push_secondary_reload, find_valid_class, push_reload,
12153         operands_match_p, decompose, immune_p, find_reloads,
12154         find_reloads_toplev, find_reloads_address_1, subst_reloads,
12155         copy_replacements, refers_to_regno_for_reload_p,
12156         reg_overlap_mentioned_for_reload_p): Likewise.
12157         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
12158         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
12159         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
12160         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
12161         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
12162         do_output_reload, fixup_abnormal_edges): Likewise.
12163         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
12164         fill_slots_from_thread, relax_delay_slots): Likewise.
12165         * resource.c (mark_referenced_resources, mark_set_resources):
12166         Likewise.
12167         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
12168         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
12169         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
12170         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
12171         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
12172         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
12173         * rtlhooks.c (gen_lowpart_general): Likewise.
12174         * sbitmap.c (sbitmap_difference): Likewise.
12175         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
12176         sched_analyze, add_forward_dependence): Likewise.
12177         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
12178         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
12179         schedule_insns): Likewise.
12180         * sched-vis.c (print_pattern): Likewise.
12181         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
12182         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
12183         simplify_const_relational_operation, simplify_ternary_operation,
12184         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
12185         Likewise.
12186         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
12187         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
12188         resolve_operand_name_1, expand_return, expand_decl,
12189         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
12190         * stor-layout.c (put_pending_size, smallest_mode_for_size,
12191         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
12192         set_sizetype, get_mode_bounds): Likewise.
12193
12194 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
12195
12196         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
12197         * config/arm/pecoff.h, config/i386/beos-elf.h
12198         * config/i386/cygming.h, config/i386/i386-interix.h:
12199         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
12200         comment cloned from manual.
12201         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
12202
12203 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
12204
12205         * builtins.c (build_va_arg_indirect_ref): New function.
12206         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
12207         build_fold_indirect_ref.
12208         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
12209         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
12210         * tree.h: Declare new function.
12211
12212 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12213
12214         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
12215         dumping for development builds.
12216         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
12217         development builds only.
12218         * genattrtab.c (write_eligible_delay): Fix typo in previous
12219         commit.
12220         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
12221         gcc_assert.
12222
12223 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12224
12225         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
12226         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
12227         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
12228         hoist_code, extract_mentioned_regs_helper, compute_store_table,
12229         insert_store): Use gcc_assert and gcc_unreachable.
12230         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
12231         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
12232         ggc_record_overhead): Likewise.
12233         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
12234         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
12235         ggc_pop_context, clear_marks, validate_free_objects,
12236         ggc_pch_read): Likewise.
12237         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
12238         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
12239         ggc_push_context, check_cookies, ggc_collect,
12240         ggc_print_statistics): Likewise.
12241         * gimple-low.c (lower_function_body, lower_stmt,
12242         lower_bind_expr): Likewise.
12243         * gimplify.c (gimple_tree_eq, push_gimplify_context,
12244         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
12245         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
12246         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
12247         gimplify_case_label_expr, gimplify_exit_block_expr,
12248         canonicalize_component_ref, gimplify_compound_lval,
12249         gimplify_self_mod_expr, gimplify_call_expr,
12250         gimplify_init_ctor_eval, gimplify_init_constructor,
12251         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
12252         gimplify_expr, check_pointer_types_r,
12253         force_gimple_operand): Likewise.
12254         * global.c (global_alloc, build_insn_chain): Likewise.
12255         * graph.c (clean_graph_dump_file,
12256         finish_graph_dump_file): Likewise.
12257         gcov-io.c (gcov_open): Use GCOV_CHECK.
12258
12259 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12260
12261         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
12262
12263 2004-09-09  Jan Hubicka  <jh@suse.cz>
12264
12265         middle-end/17128
12266         * tree-inline.c (expand_call_inline): Make overactive sanity check
12267         happy.
12268
12269 2004-09-09  Jan Hubicka  <jh@suse.cz>
12270
12271         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
12272         VIEW_CONVERT_EXPR.
12273
12274 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12275
12276         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
12277         (gengtype.o): Depend on errors.h.
12278         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
12279         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
12280         attr_alt_subset_p, attr_alt_subset_of_compl_p,
12281         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
12282         write_test_expr, write_attr_value, write_eligible_delay,
12283         make_internal_attr, make_numeric_value): Likewise.
12284         * genautomata.c (regexp_name, get_str_vect,
12285         gen_presence_absence_set, automaton_decl_hash,
12286         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
12287         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
12288         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
12289         test_unit_reserv, it_is_empty_reserv_sets,
12290         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
12291         reserv_sets_and, output_cycle_reservs, get_free_state,
12292         intersected_state_reservs_p, states_union, remove_arc,
12293         copy_insn_regexp, transform_1, transform_2, transform_3,
12294         regexp_transform_func, store_alt_unit_usage,
12295         check_regexp_units_distribution, process_seq_for_forming_states,
12296         process_alts_for_forming_states, make_automaton,
12297         form_arcs_marked_by_insn, create_composed_state,
12298         set_out_arc_insns_equiv_num, partition_equiv_class,
12299         process_insn_equiv_class, set_insn_equiv_classes,
12300         units_to_automata_heuristic_distr, form_regexp,
12301         longest_path_length, output_dfa_max_issue_rate, add_vect,
12302         out_state_arcs_num, add_vect_el, output_trans_table,
12303         output_state_alts_table, output_dead_lock_vect,
12304         output_max_insn_queue_index_def,
12305         output_min_insn_conflict_delay_func,
12306         output_internal_insn_latency_func, output_print_reservation_func,
12307         output_cpu_unit_reservation_p, output_state_arcs,
12308         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
12309         make_default_insn_latency_attr,
12310         form_important_insn_automata_lists): Likewise.
12311         * genemit.c (gen_exp, output_add_clobbers,
12312         output_added_clobbers_hard_reg_p): Likewise.
12313         * genextract.c (print_path, main): Likewise.
12314         * genflags.c (gen_macro): Likewise.
12315         * gengenrtl.c: Include errors.h
12316         (type_from_format, accessor_from_format): Likewise.
12317         * gengtype.c (get_file_basename, output_mangled_typename,
12318         walk_type, write_types_process_field,
12319         write_types_local_process_field): Likewise.
12320         * genmodes.c (complete_mode): Likewise.
12321         * genopinit.c (gen_insn): Likewise.
12322         * genoutput.c (output_insn_data, check_constraint_len,
12323         constraint_len): Likewise.
12324         * genpreds.c (add_mode_tests):Likewise.
12325         * gen-protos.c (add_hash): Likewise.
12326         * genrecog.c (find_operand, find_matching_operand,
12327         validate_pattern, add_to_sequence, maybe_both_true,
12328         nodes_identical_1, merge_trees, write_switch, write_cond,
12329         write_action, is_unconditional, make_insn_sequence,
12330         debug_decision_2): Likewise.
12331         * gensupport.c (is_predicable, collect_insn_data,
12332         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
12333
12334 2004-09-09  Jan Hubicka  <jh@suse.cz>
12335
12336         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
12337         * cfgbuild.c (compute_outgoing_frequencies): When probability is
12338         missing, guess it.
12339         (find_many_sub_basic_blocks): Do update profile only when it is
12340         present.
12341         * predict.c (set_even_probabilities): Break out from ...
12342         (combine_predictions_for_insn): ... here; deal with
12343         !can_predict_insn_p insns.
12344         (combine_predictions_for_bb): Use set_even_probabilities.
12345         (bb_estimate_probability_locally): Break out from ....
12346         (estimate_probability): ... here.
12347         (guess_outgoing_edge_probabilities): New entry point.
12348
12349 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12350
12351         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
12352         handle_braces, process_brace_body, main, used_arg,
12353         set_multilib_dir, print_multilib_info): Use fatal, not abort.
12354
12355         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
12356
12357         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
12358         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
12359         Morgan's theorem in last checkin.
12360
12361 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12362             Nathan Sidwell  <nathan@codesourcery.com>
12363
12364         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
12365         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
12366         * timevar.c (timevar_push, timevar_pop, timevar_start,
12367         timevar_stop): Likewise.
12368         * toplev.c (default_pch_valid_p): Likewise.
12369         * tracer.c (tail_duplicate): Likewise.
12370         * tree-alias-common.c (get_alias_var_decl,
12371         get_values_from_constructor, create_alias_var, delete_alias_vars,
12372         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
12373         Likewise.
12374         * tree.c (tree_size, make_node_stat, copy_node_stat,
12375         build_int_cst_wide, integer_all_onesp, list_length, chainon,
12376         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
12377         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
12378         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
12379         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
12380         build_method_type_directly, decl_type_context, get_callee_fndecl,
12381         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
12382         tree_fold_gcd): Likewise.
12383         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
12384         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
12385         cleanup_control_expr_graph, find_taken_edge,
12386         find_taken_edge_switch_expr, phi_alternatives_equal,
12387         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
12388         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
12389         tree_split_edge, tree_verify_flow_info, thread_jumps,
12390         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
12391         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
12392         chrec_fold_multiply_poly_poly): Likewise.
12393         * tree-complex.c (extract_component, expand_complex_division,
12394         expand_complex_comparison, expand_complex_operations_1,
12395         build_replicated_const, expand_vector_operations_1): Likewise.
12396         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
12397         build_classic_dir_vector): Likewise.
12398         * tree-dfa.c (compute_immediate_uses_for_phi,
12399         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
12400         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
12401         * tree-dump.c (dequeue_and_dump): Likewise.
12402         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
12403         record_in_finally_tree, replace_goto_queue_1,
12404         maybe_record_in_goto_queue, verify_norecord_switch_expr,
12405         do_return_redirection): Likewise.
12406         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
12407         add_to_dst_predicate_list, find_phi_replacement_condition,
12408         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
12409         Likewise.
12410         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
12411         initialize_inlined_parameters, declare_return_variable,
12412         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
12413         optimize_inline_calls, copy_tree_r): Likewise.
12414         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
12415         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
12416         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
12417         tsi_split_statement_list_after, tsi_split_statement_list_before):
12418         Likewise.
12419         * tree-mudflap.c (mf_varname_tree): Likewise.
12420         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
12421         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
12422         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12423         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
12424         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
12425         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
12426         Likewise.
12427         * tree-phinodes.c (resize_phi_node, add_phi_arg,
12428         remove_all_phi_nodes_for): Likewise.
12429         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
12430         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
12431         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
12432         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
12433         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
12434         generate_one_element_ref, generate_element_copy,
12435         generate_element_zero, scalarize_copy, scalarize_init,
12436         scalarize_ldst): Likewise.
12437         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
12438         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
12439         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
12440         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
12441         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
12442         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
12443         widen_bitfield, ccp_fold_builtin): Likewise.
12444         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
12445         replace_exp_1, propagate_tree_value): Likewise.
12446         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
12447         * tree-ssa-dce.c (set_control_dependence_map_bit,
12448         find_control_dependence, find_pdom, mark_operand_necessary,
12449         mark_stmt_if_obviously_necessary,
12450         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
12451         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
12452         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
12453         eliminate_redundant_computations, avail_expr_eq): Likewise.
12454         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
12455         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
12456         duplicate_blocks): Likewise.
12457         * tree-ssa-loop-im.c (for_each_index, set_level,
12458         is_call_clobbered_ref): Likewise.
12459         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
12460         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
12461         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
12462         peel_address, ptr_difference_cost, may_replace_final_value,
12463         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
12464         rewrite_use, rewrite_uses): Likewise.
12465         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
12466         check_loop_closed_ssa_use): Likewise.
12467         * tree-ssanames.c (make_ssa_name): Likewise.
12468         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
12469         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
12470         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
12471         get_indirect_ref_operands, add_stmt_operand): Likewise.
12472         * tree-ssa-pre.c (value_exists_in_set_bitmap,
12473         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
12474         phi_translate, valid_in_set, compute_antic,
12475         find_or_generate_expression, create_expression_by_pieces, insert_aux,
12476         create_value_expr_from, eliminate): Likewise.
12477         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
12478         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
12479         Likewise.
12480         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
12481         eliminate_tail_call): Likewise.
12482         * tree-vectorizer.c (vect_create_index_for_array_ref,
12483         vect_align_data_ref, vect_create_data_ref,
12484         vect_create_destination_var, vect_get_vec_def_for_operand,
12485         vect_finish_stmt_generation, vect_transform_stmt,
12486         vect_transform_loop_bound, vect_transform_loop,
12487         vect_analyze_operations): Likewise.
12488         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
12489         Likewise.
12490         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
12491         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
12492         bsi_after_labels, bsi_last): Likewise.
12493         * tree-ssa-live.c (var_union, change_partition_var,
12494         create_ssa_var_map, calculate_live_on_entry, root_var_init,
12495         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
12496         Likewise.
12497         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
12498         tpa_find_tree): Likewise.
12499         (register_ssa_partition_check): Declare.
12500         (register_ssa_partition): use it.
12501         * tree-ssa-live.c: Include errors.h.
12502         (register_ssa_partition_check): New.
12503         * tree-ssa-operands.c: Include errors.h.
12504         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
12505
12506 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12507             Catherine Moore  <clm@redhat.com>
12508
12509         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
12510         (FRV_CPU_FR405): New processor enums.
12511         (frv_issue_rate, frv_acc_group): Declare.
12512         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
12513         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
12514         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
12515         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
12516         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
12517         handled by CPP_SPEC.
12518         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
12519         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
12520         (ACC_MASK): New macro.
12521         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
12522         (TARGET_MEDIA_FR450): New macro.
12523         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
12524         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
12525         (LABEL_ALIGN_AFTER_BARRIER): Define.
12526         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
12527         (IACC_FIRST, IACC_LAST): New pair of SPRs.
12528         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
12529         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12530         (REGISTER_NAMES): Add entries for new registers.
12531         (REG_CLASS_CONTENTS): Update for new register ranges.
12532         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
12533         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
12534         (PACKING_FLAG_USED_P): Delete.
12535         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
12536         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
12537         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
12538         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
12539         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
12540         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
12541         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
12542         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
12543         (CPU_UNITS_QUERY): Define to 1.
12544         * config/frv/frv.c: Include gt-frv.h
12545         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
12546         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
12547         (frv_insn_group): New enumeration.
12548         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
12549         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
12550         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
12551         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
12552         gap left by REGSTATE_LIVE.
12553         (regstate_t): New typedef.
12554         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12555         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
12556         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
12557         Initialize frv_unit_codes[] and frv_type_to_unit[].
12558         (frv_conditional_register_usage): Remove redundant fixing of
12559         accumulator registers.
12560         (frv_insn_packing_flag): Update specification.
12561         (frv_function_prologue): Don't set frv_insn_packing_flag here.
12562         Zero out frv_nops[].
12563         (frv_expand_epilogue): Remove comments about the no-longer-present
12564         SIBCALL_P argument.
12565         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
12566         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
12567         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
12568         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
12569         packing is disabled and if INSN can only issue to M1.
12570         (call_operand): Check TARGET_LONG_CALLS.
12571         (acc_operand, even_acc_operand, quad_acc_operand)
12572         (accg_operand): Simplify.  Don't accept pseudo registers.
12573         (output_move_single): Handle SPR<-zero moves.
12574         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
12575         (frv_registers_update, frv_registers_used_p): Delete.
12576         (frv_registers_set_p): Delete.
12577         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
12578         (frv_issues_to_branch_unit_p): New function.
12579         (frv_packet): New structure.
12580         (frv_cond_flags, frv_regstate_conflict_p): New functions.
12581         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
12582         (frv_registers_update_1, frv_registers_update): New functions.
12583         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
12584         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
12585         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
12586         (frv_sort_insn_group, frv_reorder_packet): New functions.
12587         (frv_pack_insns): Use frv_reorder_packet.
12588         (frv_packet_address): New variable.
12589         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
12590         (frv_register_nop, frv_reorg): New functions.
12591         (bdesc_1arg): Add __SCUTSS.
12592         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
12593         __SUBSS, __SLASS and __SCAN.
12594         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
12595         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
12596         (frv_init_builtins): Register the above builtins.
12597         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
12598         registers.  Turn the referenced accumulators into global registers.
12599         (frv_read_iacc_argument): New function.
12600         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
12601         (frv_split_iacc_move): New function.
12602         (frv_expand_builtin): Handle the new builtins.
12603         * config/frv/frv.md: Replace old schedulers with new order-independent
12604         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
12605         packing algorithm.
12606         (cpu): Add fr550, fr450 and fr405.
12607         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
12608         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
12609         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
12610         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
12611         (fnop, mnop): New patterns.
12612         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
12613         New constants.
12614         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
12615         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
12616         registers.
12617         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
12618         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
12619         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
12620         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
12621         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
12622         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
12623         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
12624         (frv_prefetch0, frv_prefetch): New patterns.
12625         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
12626         -mcpu=simple.  Add -mcpu=fr550.
12627         (MULTILIB_DIRNAMES): Update accordingly.
12628         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
12629         -mcpu=fr450.
12630         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
12631         -mlong-calls and -malign-labels options for FR-V.
12632
12633 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12634
12635         PR c/8420
12636         * c-tree.h (struct c_declspecs): New.
12637         (struct c_declarator, struct c_type_name, struct c_parm): Update
12638         element types.
12639         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
12640         start_function, start_decl, build_c_parm,
12641         make_pointer_declarator): Update prototypes.
12642         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12643         declspecs_add_scspec, declspecs_add_attrs): New.
12644         (split_specs_attrs): Remove.
12645         * c-parse.in (%union): Add dsptype.
12646         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12647         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12648         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12649         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12650         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12651         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12652         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12653         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
12654         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
12655         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
12656         maybe_type_quals_attrs): Change to dsptype.
12657         (struct c_declspec_stack): New.
12658         (current_declspecs, declspec_stack): Change type.
12659         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
12660         structures.
12661         (extdefs): Likewise.
12662         (setspecs): Likewise.
12663         (fndef): Use current_declspecs for empty declspecs list.
12664         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12665         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12666         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12667         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12668         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12669         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12670         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12671         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
12672         structures and helper functions.  Update comments.
12673         (typespec_nonattr): Correct comment.
12674         (maybe_type_quals_attrs, typename): Update to new structures.
12675         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
12676         shadow_tag, shadow_tag_warned, start_function, start_decl,
12677         build_c_parm, make_pointer_declarator,
12678         set_array_declarator_inner, groktypename): Update to new
12679         structures.
12680         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12681         declspecs_add_scspec, declspecs_add_attrs): New.
12682         (split_specs_attrs): Remove.
12683         (shadow_tag_warned): Make warning for useless type names a
12684         pedwarn.  Give hard error for long, short, signed, unsigned or
12685         _Complex used with struct, union or enum in empty declaration.
12686         Make found_tag a bool.
12687         (grokdeclarator): Remove checks now done at parse time.
12688
12689 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12690
12691         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
12692         c_declarator, struct c_type_name, struct c_parm): New.
12693         (build_array_declarator, set_array_declarator_inner,
12694         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
12695         start_function, start_decl, build_c_parm, build_attrs_declarator,
12696         build_function_declarator, make_pointer_declarator, c_cast_expr,
12697         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
12698         (build_id_declarator): New.
12699         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
12700         structures.
12701         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
12702         ARG_INFO_OTHERS): Remove.
12703         (build_id_declarator): New.
12704         (build_array_declarator, set_array_declarator_inner, groktypename,
12705         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
12706         grokfield, start_function, store_parm_decls_newstyle,
12707         store_parm_decls_oldstyle, store_parm_decls,
12708         build_c_parm, build_attrs_declarator, build_function_declarator,
12709         make_pointer_declarator, grokdeclarator): Update to new
12710         structures.
12711         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
12712         parmtype.
12713         (declarator, notype_declarator, after_type_declarator,
12714         parm_declarator, parm_declarator_starttypename,
12715         parm_declarator_nostarttypename, array_declarator, typename,
12716         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
12717         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
12718         parmlist_1, parmlist_2, parmlist_or_identifiers,
12719         parmlist_or_identifiers_1): Use these types.
12720         (primary, after_type_declarator, parm_declarator_starttypename,
12721         notype_declarator, component_decl, component_declarator,
12722         component_notype_declarator, typename, absdcl,
12723         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
12724         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
12725
12726 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12727
12728         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
12729         in_typeof, record_maybe_used_decl, pop_maybe_used,
12730         c_expr_sizeof_expr, c_expr_sizeof_type): New.
12731         * c-decl.c (parser_obstack): New.
12732         (c_init_decl_processing): Initialize parser_obstack.
12733         (c_write_global_declarations_1): Check for used but undefined
12734         static functions.
12735         * c-parse.in (%union): Add otype.
12736         (save_obstack_position): New.
12737         (extdefs): Use it.
12738         (unary_expr): Update in_sizeof and in_alignof.  Use
12739         c_expr_sizeof_expr and c_expr_sizeof_type.
12740         (sizeof): Update in_sizeof.
12741         (alignof): Update in_alignof.
12742         (typeof): Update in_typeof.
12743         (typespec_nonreserved_nonattr): Call pop_maybe_used.
12744         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
12745         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
12746         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
12747         (build_external_ref): Set C_DECL_USED or call
12748         record_maybe_used_decl if appropriate.
12749         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
12750
12751 2004-09-08  Eric Christopher  <echristo@redhat.com>
12752
12753         * builtins.c: Fix prototype for fold_builtin_atan.
12754
12755 2004-09-08  Eric Christopher  <echristo@redhat.com>
12756
12757         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
12758         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
12759         fold_builtin_atan): New functions. Migrate function bodies...
12760         (fold_builtin_1): ... from here.
12761
12762 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
12763
12764         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
12765         save_size.
12766
12767 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
12768
12769         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
12770         * config/rs6000/power5.md (power5-lmul): Same.
12771
12772 2004-09-08  Richard Henderson  <rth@redhat.com>
12773
12774         PR rtl-opt/17186
12775         * function.c (expand_function_end): Have fall-off-the-end
12776         return path jump around return register setup.
12777
12778 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12779
12780         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
12781         (output_return): Do not test for the presence of the 'unimp' insn.
12782         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
12783         as predicates instead of custom ones.  Return raw strings when
12784         possible.
12785         (output_sibcall): Likewise.  Concatenate strings.
12786         (output_ubranch): Remove kludge for TurboSPARC.
12787         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
12788         (output_v9branch): Likewise.
12789         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
12790         <#>: Set sparc_indent_opcode if the delay slot is filled.
12791         <(>: Likewise.
12792         <)>: New operand to emit the displacement from the saved PC on return.
12793         <@>: Remove.
12794         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
12795         (ASM_OUTPUT_OPCODE): New macro.
12796         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
12797         * config/sparc/sparc.md (normal_branch, inverted_branch,
12798         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12799         inverted_fpe_branch): Adjust call to output_cbranch.
12800         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
12801         call to output_v9branch.
12802         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
12803         (output_v9branch): Likewise.
12804
12805 2004-09-08  Devang Patel  <dpatel@apple.com>
12806
12807         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
12808         -segs_read_only_addr and -segs_read_write_addr.
12809         (WORD_SWITCH_TAKES_ARG): Same.
12810         (LINK_SPEC): Same.
12811         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
12812         -segs_read_write_addr.
12813
12814 2004-09-08  Richard Henderson  <rth@redhat.com>
12815
12816         * function.c (reference_callee_copied): New.
12817         (assign_parm_setup_reg): Use it.
12818         * calls.c (initialize_argument_information): Likewise.
12819         (emit_library_call_value_1): Likewise.
12820         * function.h (reference_callee_copied): Declare.
12821
12822         * target.h (struct gcc_target): Add callee_copies.
12823         * target-def.h (TARGET_CALLEE_COPIES): New.
12824         (TARGET_PASS_BY_REFERENCE): Update default.
12825         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12826         * targhooks.c (hook_callee_copies_named): New.
12827         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
12828         hook_pass_by_reference_false.
12829         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
12830         * targhooks.h: Update decls.
12831         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
12832         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12833         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
12834         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
12835         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12836         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
12837         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12838         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
12839         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12840         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
12841         (mips_callee_copies): New.
12842         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12843         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
12844         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12845         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
12846         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12847         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
12848         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12849         * config/sh/sh.c (sh_callee_copies): New.
12850         (TARGET_CALLEE_COPIES): New.
12851         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12852         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
12853         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12854         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
12855         for FUNCTION_ARG_CALLEE_COPIES.
12856         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
12857
12858 2004-09-08  Devang Patel  <dpatel@apple.com>
12859
12860         * tree-if-conv.c (find_phi_replacement_condition): Return true
12861         edge block.
12862         (replace_phi_with_cond_modify_expr): Select conditional expr args
12863         based on true edge basic block.
12864
12865 2004-09-08  Jan Hubicka  <jh@suse.cz>
12866
12867         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
12868         variables being alias set.
12869
12870 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12871
12872         * final.c (shorten_branches, final, get_insn_template,
12873         output_alternate_entry_point, final_scan_insn, alter_subreg,
12874         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
12875         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
12876         * fix-header.c (lookup_std_proto): Likewise.
12877         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
12878         verify_local_live_at_start, update_life_info, mark_reg,
12879         calculate_global_regs_live, allocate_reg_life_data,
12880         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
12881         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
12882         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
12883         * fold-const.c (force_fit_type, div_and_round_double,
12884         may_negate_without_overflow_p, int_const_binop, const_binop,
12885         size_binop, size_diffop, fold_convert_const, fold_convert,
12886         invert_tree_comparison, swap_tree_comparison,
12887         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
12888         range_binop, make_range, fold_cond_expr_with_comparison,
12889         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
12890         fold_abs_const, fold_not_const, fold_relational_const, round_up,
12891         round_down): Likewise.
12892         * function.c (find_function_data, assign_stack_temp_for_type,
12893         instantiate_virtual_regs_lossage, aggregate_value_p,
12894         assign_parm_find_entry_rtl, assign_parm_setup_block,
12895         expand_function_start, expand_function_end, keep_stack_depressed,
12896         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
12897
12898 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
12899
12900         * Makefile.in (tree-loop-linear.o): Added.
12901         (OBJS-common): Add tree-loop-linear.o
12902         * common.opt: New flag, ftree-loop-linear.
12903         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
12904         * tree-flow.h: Add prototype for linear_transform_loops.
12905         * tree-optimize.c: Add linear transform after vectorization.
12906         * tree-pass.h: Add struct pass_linear_transform.
12907         * tree-ssa-loop.c: Add pass_linear_transform.
12908         * tree-loop-linear.c: New file.
12909         * lambda-code.c: gcc_assertify.
12910         (gcc_loop_to_lambda_loop): Handle all exit tests.
12911         Handle case where we have (invariant >= induction var).
12912         (find_induction_var_from_exit_cond): Ditto.
12913
12914 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
12915
12916         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
12917         memory tag is call clobbered, so are its aliases.
12918         (group_aliases): When two memory tags being grouped, if one is
12919         call clobbered, so are the other and its aliases.
12920         (add_may_alias): Remove call-clobbering stuff.
12921         (replace_may_alias): Likewise.
12922         (merge_pointed_to_info): Merge pt_global_mem
12923
12924 2004-09-08  Jan Hubicka  <jh@suse.cz>
12925
12926         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
12927         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
12928         (cgraph_expand_function): Remove stale cgraph edges of currently
12929         compiled function; fix non-unit-at-a-time code copying function
12930         node for later reuse.
12931
12932 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12933
12934         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
12935         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
12936         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
12937         (vec_gc_free, vec_heap_free): New.
12938         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
12939         (DEF_VEC_P): Add allocator argument. Adjust.
12940         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
12941         (DEF_VEC_O): Add allocator argument. Adjust.
12942         (VEC(free)): New.
12943
12944         * tree.h (tree): Define a GC'd vector.
12945         * lamba-code.c (lambda_loop): Likewise.
12946         * value-prof.h (histogram_value): Likewise.
12947
12948 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12949
12950         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
12951         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
12952         gen_lowpart_common, gen_highpart, gen_highpart_mode,
12953         subreg_highpart_offset, operand_subword, operand_subword_force,
12954         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
12955         set_mem_alias_set, change_address_1, verify_rtx_sharing,
12956         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
12957         try_split, add_insn_after, add_insn_before, remove_insn,
12958         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
12959         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
12960         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
12961         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
12962         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
12963         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
12964         record_path_before_1, check_path_after_1, check_path_after): Likewise.
12965         * except.c (gen_eh_region, resolve_one_fixup_region,
12966         remove_unreachable_regions, convert_from_eh_region_ranges_1,
12967         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
12968         connect_post_landing_pads, sjlj_emit_function_exit,
12969         remove_exception_handler_label, remove_eh_handler,
12970         reachable_next_level, collect_one_action_chain,
12971         output_function_exception_table): Likewise.
12972         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
12973         optimize_save_area_alloca, allocate_dynamic_stack_space,
12974         probe_stack_range, hard_function_value): Likewise.
12975         * expmed.c (mode_for_extraction, store_bit_field,
12976         store_fixed_bit_field, extract_bit_field, expand_shift,
12977         expand_mult_const, expand_mult, choose_multiplier,
12978         expand_mult_highpart, expand_divmod, emit_store_flag,
12979         do_cmp_and_jump): Likewise.
12980         * expr.c (convert_move, convert_modes, move_by_pieces,
12981         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
12982         move_block_from_reg, gen_group_rtx, emit_group_load,
12983         emit_group_move, emit_group_store, use_reg, use_regs,
12984         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
12985         emit_move_insn, emit_move_insn_1, emit_push_insn,
12986         expand_assignment, store_expr, count_type_elements,
12987         store_constructor, store_field, safe_from_p, expand_var,
12988         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
12989
12990 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12991
12992         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
12993         gcc_assert and gcc_unreachable.
12994         * ddg.c (create_ddg_dependence, add_deps_for_def,
12995         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
12996         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
12997         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
12998         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
12999         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
13000         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
13001         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
13002         dataflow_set_copy, hybrid_search, diagnostic.c,
13003         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
13004         * dojump.c (do_jump): Likewise.
13005         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
13006         compute_dom_fast_query, calculate_dominance_info,
13007         free_dominance_info, get_immediate_dominator,
13008         set_immediate_dominator, get_dominated_by,
13009         redirect_immediate_dominators, nearest_common_dominator,
13010         dominated_by_p, verify_dominators, recount_dominator,
13011         iterate_fix_dominators, add_to_dominance_info,
13012         delete_from_dominance_info): Likewise.
13013         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
13014         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
13015         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
13016         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
13017         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
13018         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
13019         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
13020         output_call_frame_info, output_loc_operands, build_cfa_loc,
13021         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
13022         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
13023         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
13024         splice_child_die, attr_checksum, same_dw_val_p,
13025         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
13026         unmark_dies, value_format, output_loc_list, output_die,
13027         output_pubnames, output_aranges, base_type_die, is_base_type,
13028         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
13029         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
13030         field_byte_offset, add_data_member_location_attribute,
13031         add_const_value_attribute, rtl_for_decl_location,
13032         add_location_or_const_value_attribute, add_byte_size_attribute,
13033         add_bit_offset_attribute, add_bit_size_attribute,
13034         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
13035         decl_start_label, gen_formal_parameter_die,
13036         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
13037         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
13038         force_decl_die, force_type_die, gen_decl_die,
13039         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
13040         dwarf2out_finish): Likewise.
13041
13042 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
13043
13044         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
13045         * builtins.c: Include tree-mudflap.h.
13046
13047 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
13048
13049         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
13050         force operand 0.0 into register in XFmode. Also do not force
13051         operand 0.0 into register if !TARGET_CMOVE.
13052         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
13053         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
13054         implement ftst x87 instruction.
13055         (*fp_jcc_7): New insn pattern. Change corresponding split
13056         pattern to handle "general_operand" instead of
13057         "nonimmediate_operand".
13058
13059 2004-09-08  Ben Elliston  <bje@au.ibm.com>
13060
13061         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
13062
13063 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
13064
13065         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
13066         generated from standard va_arg expansion.
13067         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
13068         marked nodes.
13069         (mf_varname_tree, mf_file_function_line_tree): Add some support
13070         for column numbers if compiled with USE_MAPPED_LOCATION.
13071
13072 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
13073
13074         * c-decl.c (groktypename_in_parm_context): Remove function.
13075         * c-tree.h (groktypename_in_parm_context): Remove prototype.
13076
13077 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
13078
13079         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
13080         * c-parse.in: Include c-common.h instead of objc-act.h.
13081         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
13082         myparms, myparm): Remove %type declarations.
13083         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
13084         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
13085         declarations.
13086         (objc_inherit_code, objc_public_flag): Remove.
13087         (typespec_nonreserved_nonattr): Call
13088         objc_get_protocol_qualified_type() instead of get_static_reference()
13089         and get_protocol_reference().
13090         (stmt_nocomp): Call grokparm() on @catch parameter.
13091         (objcdef): Move semantic action to objc_finish_implementation().
13092         (classdef): Move semantic action to objc_start_class_interface(),
13093         objc_continue_interface(), objc_finish_interface(),
13094         objc_start_class_implementation(), objc_continue_implementation(),
13095         objc_start_category_interface() and
13096         objc_start_category_implementation().
13097         (protocoldef): Move semantic actions to objc_start_protocol() and
13098         objc_finish_interface().
13099         (ivar_decl_list): Remove nonterminal.
13100         (visibility_spec): Move semantic actions to objc_set_visibility().
13101         (ivar_decls): Remove assignment to $$.
13102         (ivar_decl): Rephrase in terms of component_decl; call
13103         objc_add_instance_variable().
13104         (ivars, ivar_declarator): Remove nonterminals.
13105         (opt_semi): New nonterminal.
13106         (methodtype): Remove semantic actions.
13107         (methoddef): Move semantic actions to objc_set_method_type(),
13108         objc_start_method_definition() and objc_finish_method_definition().
13109         (methodproto): Move semantic actions to objc_set_method_type() and
13110         objc_add_method_declaration().
13111         (methoddecl): Use objc_typename instead of typename; move semantic
13112         actions to objc_build_method_signature().
13113         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
13114         (optparmlist): Express in terms of optparms and optellipsis.
13115         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
13116         nonterminals.
13117         (keyworddecl): Use objc_typename instead of typename.
13118         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
13119         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
13120
13121 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
13122
13123         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
13124         (MD_FALLBACK_FRAME_STATE_FOR): Update.
13125         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
13126         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
13127         (MD_FROB_UPDATE_CONTEXT): Remove default.
13128         (uw_update_context_1): Instead #ifdef invocation.
13129         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
13130         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
13131         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
13132         (MD_UNWIND_SUPPORT): Undefine this instead.
13133         * config/i386/gnu.h: Likewise.
13134         * config/alpha/linux-unwind.h: New file, macro converted to
13135         function, extracted from..
13136         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
13137         (MD_UNWIND_SUPPORT): Define.
13138         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
13139         * config/i386/linux-unwind.h, config/i386/linux.h,
13140         config/i386/linux64.h: Likewise.
13141         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
13142         MD_HANDLE_UNWABI too.
13143         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
13144         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
13145         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
13146         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
13147         * config/sparc/linux-unwind.h, config/sparc/linux.h,
13148         config/sparc/linux64.h: Likewise.
13149         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
13150         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
13151         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
13152         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
13153         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
13154
13155 2004-09-07  Jan Hubicka  <jh@suse.cz>
13156
13157         * cse.c (fold_rtx):  Avoid building of
13158         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
13159
13160         * tree-ssa-pre.c (grand_bitmap_obstack): New.
13161         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
13162         (init_pre): Initialize obstack.
13163         (fini_pre): Free obstack.
13164
13165 2004-09-07  David Daney  <ddaney@avtrex.com>
13166
13167         * config.gcc: Added support for --with-divide=[breaks|traps] for
13168         mips targets.
13169         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
13170         (TARGET_DIVIDE_TRAPS): New macro.
13171         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
13172         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
13173         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
13174         GENERATE_DIVIDE_TRAPS.
13175         (mips_output_division): Emit conditional trap if
13176         GENERATE_DIVIDE_TRAPS is set.
13177         * doc/install.texi: Document --with-divide.
13178         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
13179
13180 2004-09-07  Caroline Tice  <ctice@apple.com>
13181
13182         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
13183         EDGE_CROSSING, to flags test case.
13184
13185 2004-09-07  Jan Hubicka  <jh@suse.cz>
13186
13187         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
13188         class too.
13189
13190 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13191
13192         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
13193         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
13194         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
13195         or gcc_unreachable.
13196         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
13197         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
13198         alloc_aux_for_edges, free_aux_for_edges): Likewise.
13199         * cfgcleanup.c (try_forward_edges,
13200         merge_blocks_move_predecessor_nojumps,
13201         merge_blocks_move_successor_nojumps): Likewise.
13202         * cfgexpand.c (expand_gimple_cond_expr,
13203         expand_gimple_tailcall): Likewise.
13204         * cfghooks.c (duplicate_block): Likewise.
13205         * cfglayout.c (record_effective_endpoints,
13206         insn_locators_initialize, change_scope, fixup_reorder_chain,
13207         verify_insn_chain, fixup_fallthru_exit_predecessor,
13208         duplicate_insn_chain, cfg_layout_finalize): Likewise.
13209         * cfgloopanal.c (check_irred): Likewise.
13210         * cfgloop.c (superloop_at_depth, flow_loops_free,
13211         flow_loop_entry_edges_find, flow_loops_find,
13212         flow_loop_outside_edge_p, get_loop_body,
13213         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
13214         get_loop_exit_edges, num_loop_branches, cancel_loop,
13215         verify_loop_structure): Likewise.
13216         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
13217         duplicate_loop_to_header_edge, create_preheader,
13218         create_loop_notes): Likewise.
13219         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
13220         edirect_branch_edge, force_nonfallthru_and_redirect,
13221         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
13222         commit_edge_insertions, commit_edge_insertions_watch_calls,
13223         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
13224         cfg_layout_redirect_edge_and_branch_force,
13225         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
13226         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
13227         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
13228         cgraph_varpool_node): Likewise.
13229         * cgraphunit.c (cgraph_finalize_function,
13230         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
13231         cgraph_expand_function, cgraph_remove_unreachable_nodes,
13232         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13233         cgraph_mark_inline, cgraph_expand_all_functions,
13234         cgraph_build_static_cdtor): Likewise.
13235         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
13236         simplify_logical, distribute_notes, insn_cuid): Likewise.
13237         * conflict.c (conflict_graph_add, print_conflict): Likewise.
13238         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
13239         coverage_checksum_string): Likewise.
13240         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
13241         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
13242         cse_cc_succs, cse_condition_code_reg): Likewise.
13243         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
13244         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
13245         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
13246         cselib_record_set): Likewise.
13247
13248 2004-09-07  Jan Hubicka  <jh@suse.cz>
13249
13250         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
13251
13252 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13253
13254         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
13255         fold_convert.
13256         (fold_builtin_strpbrk): Likewise.
13257         * expr.c (array_ref_low_bound): Likewise.
13258         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
13259         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
13260         * tree-sra.c (generate_element_zero): Likewise.
13261         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
13262         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
13263         add_old_iv_candidates, add_iv_candidates): Likewise.
13264         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
13265
13266 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13267
13268         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
13269         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
13270         c_expand_expr, boolean_increment, nonnull_check_p,
13271         check_function_arguments_recurse, fold_offsetof_1): Likewise.
13272         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
13273         builtin_define_type_max): Likewise.
13274         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
13275         implicit_decl_warning, builtin_function, build_compound_literal,
13276         complete_array_type, grokdeclarator, get_parm_info,
13277         start_function, store_parm_decls_oldstyle,
13278         c_write_global_declarations): Likewise.
13279         * c-format.c (get_constant, decode_format_attr,
13280         maybe_read_dollar_number, get_flag_spec, check_format_arg,
13281         check_format_types, format_type_warning,
13282         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
13283         init_dynamic_diag_info, handle_format_attribute): Likewise.
13284         * c-gimplify.c (push_context, pop_context, finish_bc_block):
13285         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
13286         * c-objc-common.c (c_tree_printer): Likewise.
13287         * c-pch.c (pch_init): Likewise.
13288         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
13289         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
13290         * c-typeck.c (c_incomplete_type_error, composite_type,
13291         common_pointer_type, common_type, same_translation_unit_p,
13292         tagged_types_tu_compatible_p, finish_init, pop_init_level,
13293         set_designator, set_nonincremental_init_from_string,
13294         process_init_element, c_finish_if_stmt): Likewise.
13295         * caller-save.c (init_caller_save, save_call_clobbered_regs,
13296         insert_restore, insert_save, insert_one_insn): Likewise.
13297         * calls.c (emit_call_1, compute_argument_block_size,
13298         precompute_arguments, expand_call, emit_library_call_value_1,
13299         store_one_arg): Likewise.
13300
13301 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13302
13303         * configure.ac (enable-checking): Add release option. Reorganize
13304         to avoid repetition.
13305         * configure: Rebuilt.
13306         * doc/install.texi (enable-checking): Amend documentation.
13307
13308 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13309
13310         PR bootstrap/17313
13311         * Makefile.in (specs.ready): Depend on cc1$(exeext).
13312
13313 2004-09-06  James E Wilson  <wilson@specifixinc.com>
13314
13315         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
13316         movdf_hardfloat_32bit): Split fG into two alternatives.
13317         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
13318
13319         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
13320
13321 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
13322
13323         * final.c (output_in_slot): Delete.
13324         (final_scan_insn): Revert 2004-09-03 change.
13325         (output_asm_insn): Likewise.
13326         * config/sparc/sparc.c (output_return): Likewise.
13327         (output_sibcall): Likewise.
13328
13329 2004-09-06  Jan Hubicka  <jh@suse.cz>
13330
13331         * loop.c (loop_dump_aux): Do not print RTL when not available.
13332         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
13333         frontend specific type nodes.
13334         (produce_memory_decl_rtl): Break out from ...
13335         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
13336         (get_computation_at): Avoid random tree sharing.
13337         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
13338
13339 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
13340
13341         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
13342         unnecessary commands.
13343
13344 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
13345
13346         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
13347         (bitmap.o): Likewise.
13348
13349 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
13350
13351         Unify the management of RTL and tree-level dump files.
13352
13353         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
13354         Don't print function name to the dump file, the pass manager
13355         would do this for us. Add code from the top of
13356         rest_of_compilation, up to the initial RTL dump.
13357         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
13358         close the DFI_sibling dump file.
13359         (rest_of_compilation): Don't do that here.  Remove code up to the
13360         initial RTL dump.
13361         (init_optimization_passes): Remove.
13362         (pass_rest_of_compilation): Change pass name to NULL.
13363         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
13364         Do not call init_optimization_passes.
13365         * toplev.h (init_optimization_passes): Remove.
13366
13367         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
13368         finish_graph_dump_file): Remove SUFFIX parameter.
13369         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
13370         finish_graph_dump_file): Likewise.
13371
13372         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
13373         * cfgexpand.c (pass_expand): Adjust.
13374         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
13375         * passes.c (pass_rest_of_compilation): Adjust.
13376         * predict.c (pass_profile): Adjust.
13377         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
13378         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
13379         pass_split_crit_edges, pass_warn_function_return): Adjust.
13380         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
13381         * tree-dfa.c (pass_referenced_vars): Adjust.
13382         * tree-eh.c (pass_lower_eh): Adjust.
13383         * tree-if-conv.c (pass_build_ssa): Adjust.
13384         * tree-into-ssa.c (pass_build_ssa): Adjust.
13385         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
13386         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
13387         * tree-nrv.c (pass_nrv): Adjust.
13388         * tree-optimize.c (pass_gimple, pass_all_optimizations,
13389         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
13390         pass_init_datastructures): Adjust.
13391         * tree-outof-ssa.c (pass_del_ssa): Adjust.
13392         * tree-profile.c (pass_tree_profile): Adjust.
13393         * tree-sra.c (pass_sra): Adjust.
13394         * tree-ssa-alias.c (pass_may_alias): Adjust.
13395         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
13396         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
13397         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
13398         * tree-ssa-dom.c (pass_dominator): Adjust.
13399         * tree-ssa-dse.c (pass_dse): Adjust.
13400         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
13401         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
13402         * tree-ssa-loop-ch.c (pass_ch): Adjust.
13403         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
13404         pass_loop_done, pass_complete_unroll, pass_iv_canon,
13405         pass_iv_optimize, pass_vectorize): Adjust.
13406         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
13407         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
13408         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
13409         pass_late_warn_uninnitialized): Adjust.
13410         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
13411
13412         * Makefile.in (tree-dump.o): Add new dependencies.
13413         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
13414         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
13415         Likewise.
13416         * toplev.c (dump_file_name): New.
13417         * tree-dump.c (dump_enable_all): Add LETTER parameter.
13418         (struct dump_file_info): Add NUM and LETTER fields.
13419         (dump_files): Adjust and add RTL dump files.
13420         (dump_register): Add NUM and LETTER fields.
13421         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
13422         (dump_begin): Use get_dump_file_name.
13423         (dump_switch_p_1): Adjust call to dump_enable_all.
13424         * tree-dump.h (dump_register): Adjust prototype.
13425         * tree-optimize.c (register_one_dump_file): Take dump file index.
13426         Support flags for RTL dumps.
13427         (register_dump_files): Fill in NUM field of struct dump_file_info.
13428         Track properties both when the gate is executed and when it is not.
13429         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
13430         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
13431         dumps of RTL.
13432         * tree-pass.h (dump_file_name): New.
13433         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
13434         New.
13435
13436         * Makefile.in (passes.o): Add new dependencies.
13437         * passes.c (struct dump_file_info, enum dump_file_index,
13438         dump_file_tbl, init_optimization_passes): Remove.
13439         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
13440         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
13441         dump_enabled_p.
13442         (finish_optimization_passes): Update finish_graph_dump_file loop.
13443         (enable_rtl_dump_file): Remove.
13444         * tree-dump.c (dump_files): Adjust and add RTL dump files.
13445         (enable_rtl_dump_file): Add here.
13446         * tree.h (enum tree_dump_index): Add RTL dump file indices.
13447         * doc/invoke.texi (Debugging options): Document new RTL debugging
13448         options.  Update.
13449
13450 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
13451
13452         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
13453         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
13454         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
13455         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
13456         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
13457         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
13458         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
13459         vec.h: Fix comment formatting.
13460
13461 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
13462
13463         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
13464         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
13465         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
13466         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
13467         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
13468         tree-ssa-loop-niter.c, tree-ssa-operands.c,
13469         tree-ssa-operands.h, tree-ssa-propagate.c,
13470         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
13471         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
13472
13473 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
13474
13475         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
13476         vectorizer is enabled.
13477
13478 2004-09-05  Andreas Jaeger  <aj@suse.de>
13479
13480         * tree-if-conv.c: Spell check comments and clean up whitespace.
13481
13482 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13483
13484         * tree-ssa-loop-ivopts.c: New file.
13485         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
13486         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
13487         target_pres_cost, target_spill_cost): Declare.
13488         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
13489         spill_cost): Renamed to ...
13490         (target_avail_regs, target_res_regs, target_small_cost,
13491         target_pres_cost, target_spill_cost): ... and exported.
13492         (init_set_costs, global_cost_for_size): Work with renamed variables.
13493         * common.opt (flag_ivopts): New flag.
13494         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
13495         REF_ORIGINAL.
13496         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
13497         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
13498         generating SSA form.
13499         (force_gimple_operand): New function.
13500         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
13501         * tree-cfg.c (stmt_bsi): New function.
13502         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13503         PARAM_IV_MAX_CONSIDERED_USES): New.
13504         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
13505         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
13506         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
13507         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
13508         * tree-nested.c (build_addr): Export.
13509         * tree-optimize.c (init_tree_optimization_passes): Add
13510         pass_iv_optimize.
13511         * tree-pass.h (pass_iv_optimize): Declare.
13512         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
13513         IMAGPART_EXPR.
13514         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
13515         as a phi node argument.
13516         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
13517         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
13518         functions.
13519         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
13520         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
13521         pass_iv_optimize): New pass.
13522         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
13523         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
13524         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
13525         * tree.h (REF_ORIGINAL): New macro.
13526         (build_int_cst_type, unsigned_type_for, zero_p,
13527         cst_and_fits_in_hwi, build_addr): Declare.
13528         * doc/invoke.texi (-fivopts): Document.
13529         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13530         PARAM_IV_MAX_CONSIDERED_USES): Document.
13531         * doc/passes.texi: Document induction variable optimizations pass.
13532
13533 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13534
13535         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
13536         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
13537         * c-common.c (c_common_attribute_table): Accept parameters to
13538         sentinel attribute.
13539         (check_function_sentinel, handle_sentinel_attribute): Likewise.
13540         * doc/extend.texi: Update accordingly.
13541
13542 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13543
13544         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
13545         New.
13546         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
13547         attribute.
13548         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
13549         New functions.
13550         (c_common_attribute_table): Add `sentinel' attribute.
13551         (check_function_arguments): Handle `sentinel' attribute.
13552         * doc/extend.texi: Document `sentinel' attribute.
13553
13554 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
13555
13556         * configure: Regenerated.
13557
13558 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13559
13560         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
13561
13562         * tree.c (save_expr): No longer TREE_READONLY.
13563
13564 2004-09-04  Jan Hubicka  <jh@suse.cz>
13565
13566         * passes.c (rest_of_clean_state):  Fix merge conflict made during
13567         commiting the patch.
13568
13569 2004-09-04  Jan Hubicka  <jh@suse.cz>
13570
13571         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
13572
13573 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13574
13575         * doc/md.texi (shift patterns): New anchor.  Add reference to
13576         TARGET_SHIFT_TRUNCATION_MASK.
13577         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
13578         * target.h (shift_truncation_mask): New target hook.
13579         * targhook.h (default_shift_truncation_mask): Declare.
13580         * targhook.c (default_shift_truncation_mask): Define.
13581         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
13582         (TARGET_INITIALIZER): Include it.
13583         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
13584         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
13585         reject all out-of-range values.  Fix sign-extension code for modes
13586         whose width is smaller than HOST_BITS_PER_WIDE_INT.
13587         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
13588         (expand_superword_shift, expand_subword_shift): Likewise.
13589         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
13590         (expand_binop): Use them to implement double-word shifts.
13591         * config/arm/arm.c (arm_shift_truncation_mask): New function.
13592         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13593
13594 2004-09-04  Jan Hubicka  <jh@suse.cz>
13595
13596         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
13597         (mix): New macro copied from hashtab.c
13598         (iterative_hash_hashval_t, iterative_hash_pointer,
13599         iterative_hash_host_wide_int): New functions based on hashtab.c
13600         implementation.
13601
13602 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13603
13604         * config/mips/mips.md (mask): New mode attribute.
13605         (zero_extendsidi2): Add memory alternative.
13606         (*zero_extendsidi2_mem): Delete.
13607         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
13608         memory_operand in the TARGET_MIPS16 check.
13609         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
13610         Redefine using :GPR and :SHORT.
13611         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
13612
13613 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
13614
13615         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
13616         using rint_optab.
13617         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
13618         expand_builtin_mathfn.
13619         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
13620         btrunc?f patterns for btrunc_optab. Implement rint_optab using
13621         rint?f patterns.
13622         * optabs.c (init_optabs): Initialize rint_optab.
13623         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
13624         Add new OTI_rint.
13625         (btrunc_optab): Rename macro from trunc_optab.
13626         (rint_optab): Define corresponding macro.
13627
13628         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
13629         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
13630
13631         * config/i386/i386-protos.h (emit_i387_cw_initialization):
13632         Change prototype. Add new int parameter.
13633         * config/i386/i386.c (emit_i387_cw_initialization):
13634         Handle new rounding modes.
13635
13636         * config/i386/i386.h (enum fp_cw_mode): Delete.
13637         (MODE_NEEDED): Handle new rounding modes.
13638         (EMIT_MODE_SET): Change condition to handle new rounding modes.
13639
13640         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
13641         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
13642         represent different rounding modes of frndint insn.
13643         (type): Add frndint type.
13644         (i387, length, memory): Handle this type.
13645         (i387_cw): New attribute definition.
13646         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
13647         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
13648         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
13649         Add "i387_cw" attribute defined to "trunc".
13650         (x86_fnstcw_1): Remove comment.
13651         (*frndintxf2): Rename insn definition to frndintxf2. Move
13652         insn definition near rint?f2 expanders.
13653         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
13654         rintf and rintl built-ins as inline x87 intrinsics.
13655         (frndintxf2_floor): New pattern to implement floor rounding
13656         mode with frndint x87 instruction.
13657         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
13658         floorf and floorl built-ins as inline x87 intrinsics.
13659         (frndintxf2_ceil): New pattern to implement ceil rounding
13660         mode with frndint x87 instruction.
13661         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
13662         ceilf and ceill built-ins as inline x87 intrinsics.
13663         (frndintxf2_trunc): New pattern to implement trunc rounding
13664         mode with frndint x87 instruction.
13665         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
13666         truncf and truncl built-ins as inline x87 intrinsics.
13667         (frndintxf2_mask_pm): New pattern to implement rounding
13668         mode with exceptions with frndint x87 instruction.
13669         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
13670         implement nearbyint, nearbyintf and nearbyintl built-ins as
13671         inline x87 intrinsics.
13672
13673 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13674
13675         * config/mips/mips.md (SHORT): New mode macro.
13676         (size): New mode attribute.
13677         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
13678         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
13679         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
13680         !ISA_HAS_SEB_SEH.
13681         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
13682         *extend[qh]isi2_hw patterns and extending them to di.
13683         (extendqihi2): Implement as define_insn_and_split that produces
13684         extendqisi2 after reload.
13685
13686 2004-09-03  Devang Patel  <dpatel@apple.com>
13687
13688         * Makefile.in (OBJS-common): Add tree-if-conv.o
13689         (tree-if-conv.o): New rule.
13690         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
13691         (get_loop_body_in_bfs_order): New.
13692         * cfgloop.h (get_loop_body_in_bfs_order): New.
13693         * tree-flow.h (enum move_pos): Move here from ..
13694         * tree-ssa-loop-im.c (enum move_pos): here.
13695         (movement_possibility): Make externally visible.
13696         * tree-optimize.c (init_tree_optimization_passes): New entry for
13697         if conversion pass.
13698         * tree-pass.h (pass_if_conversion): New.
13699         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
13700         * tree-if-conv.c: New file.
13701         * doc/passes.texi: Document tree if-conversion pass.
13702         * doc/tree-ssa.texi: Same.
13703
13704 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13705
13706         PR target/14925:
13707         Makefile.in (LIB2ADDEHSTATIC): New.
13708         (LIB2ADDEHSHARED): New.
13709         (LIBUNWIND): New.
13710         (LIBUNWINDDEP): New.
13711         (SHLIBUNWIND_LINK): New.
13712         (SHLIBUNWIND_INSTALL): New.
13713         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
13714         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
13715         (clean): Remove libunwind*
13716         (stage1-start): Remove and copy stage1/libunwind*.
13717         (stage2-start): Remove and copy stage2/libunwind*.
13718         (stage3-start): Remove and copy stage3/libunwind*.
13719         (stage4-start): Remove and copy stage4/libunwind*.
13720         (stageprofile-start): Remove and copy stageprofile/libunwind*.
13721         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
13722
13723         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
13724         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
13725         tmake_file if --with-system-libunwind isn't used.
13726
13727         * config/ia64/t-glibc-libunwind: New file.
13728         * config/t-libunwind-elf: Likewise.
13729         * unwind-compat.c: Likewise.
13730         * unwind-compat.h: Likewise.
13731         * unwind-dw2-fde-compat.c: Likewise.
13732
13733         * config/ia64/t-glibc (LIB2ADDEH): Updated.
13734         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13735
13736         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
13737         aliases if needed.
13738         * unwind-dw2-fde-glibc.c: Likewise.
13739         * unwind-dw2.c: Likewise.
13740
13741         * config/t-libunwind (LIB2ADDEH): Updated.
13742         (LIB2ADDEHSTATIC): New.
13743         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13744         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
13745
13746         * configure.ac: Change --enable-libunwind-exceptions to
13747         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
13748         * configure: Regenerated.
13749         * config.in: Updated.
13750
13751         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
13752         above and mention --with-system-libunwind.
13753         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
13754         removed in gcc 3.4.3 and later.
13755
13756         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
13757         USE_LIBUNWIND_EXCEPTIONS is defined.
13758
13759         * mklibgcc.in: Support libunwind.
13760
13761 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13762
13763         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
13764         m_NOCONA.
13765
13766 2004-09-03  Richard Henderson  <rth@redhat.com>
13767
13768         PR middle-end/9997
13769         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
13770         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
13771         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
13772         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
13773         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
13774         resize_stack_vars_conflict, add_stack_var_conflict,
13775         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
13776         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
13777         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
13778         expand_one_static_var, expand_one_hard_reg_var,
13779         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
13780         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
13781         (expand_used_vars): Rewrite.
13782         * Makefile.in (cfgexpand.o): Update dependencies.
13783
13784 2004-09-04  Jan Hubicka  <jh@suse.cz>
13785
13786         * cfg.c (free_edge): Use ggc_free.
13787         (expunge_block): Use ggc_free.
13788         * passes.c (rest_of_clean_state): Free after compilation.
13789         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
13790         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
13791
13792 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13793
13794         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
13795         DECL_EXTERNAL check.
13796
13797 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13798
13799         * final.c (output_in_slot): New global variable.
13800         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
13801         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
13802         'output_in_slot' before invoking output_asm_insn.
13803         (output_asm_insn): Add a space after the tab if 'output_in_slot'
13804         is set.
13805         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
13806         final_scan_insn.
13807         (output_sibcall): Likewise.
13808
13809 2004-09-03  Jan Hubicka  <jh@suse.cz>
13810
13811         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
13812         * tree-ssanames (init_ssanames): Likewise.
13813
13814 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13815
13816         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
13817         objc_declare_protocols, objc_start_protocol,
13818         objc_start_class_interface, objc_start_category_interface,
13819         objc_continue_interface, objc_finish_interface,
13820         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
13821         objc_start_class_implementation, objc_start_category_implementation,
13822         objc_continue_implementation, objc_finish_implementation,
13823         objc_add_method_declaration, objc_start_method_definition,
13824         objc_finish_method_definition, objc_build_keyword_decl,
13825         objc_build_method_signature, objc_build_encode_expr,
13826         objc_build_protocol_expr, objc_build_selector_expr,
13827         objc_build_message_expr, objc_build_string_object,
13828         objc_get_class_reference, objc_get_protocol_qualified_type,
13829         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
13830
13831 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13832
13833         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
13834
13835         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
13836         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
13837         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
13838         (mips_recip1_<fmt>): Use frdiv1 type.
13839         (mips_recip2_<fmt>): Use frdiv2 type.
13840         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
13841         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
13842         and frsqrt1.
13843         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
13844
13845 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
13846
13847         * reload.c (find_reloads): Swap operand_loc pointers for
13848         find_dummy_reload if we have swapped two operands.
13849
13850 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
13851
13852         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
13853         to get the tablejump-insn before the jump-table label.
13854
13855 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13856
13857         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
13858         objc_declare_protocols, objc_build_message_expr,
13859         objc_finish_message_expr, objc_build_selector_expr,
13860         objc_build_protocol_expr, objc_build_encode_expr,
13861         objc_build_string_object, objc_get_protocol_qualified_type,
13862         objc_get_class_reference, objc_get_class_ivars,
13863         objc_start_class_interface, objc_start_category_interface,
13864         objc_start_protocol, objc_continue_interface, objc_finish_interface,
13865         objc_start_class_implementation, objc_start_category_implementation,
13866         objc_continue_implementation, objc_finish_implementation,
13867         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
13868         objc_add_method_declaration, objc_start_method_definition,
13869         objc_finish_method_definition, objc_add_instance_variable,
13870         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
13871         objc_finish_try_stmt, objc_begin_catch_clause,
13872         objc_finish_catch_clause, objc_build_finally_clause,
13873         objc_build_synchronized, objc_static_init_needed_p,
13874         objc_generate_static_init_call): New prototypes.
13875
13876 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
13877
13878         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
13879         is only one reg.
13880         (ia64_function_value): Ditto.
13881
13882 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13883
13884         * config.gcc: Resurrect NetWare as a target. Handle special case of
13885         Novell linker to be used (specified through --with-ld=) and threading
13886         model of either Posix (default) or NKS.
13887         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
13888         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
13889         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
13890         * config/i386/netware.c, config/i386/netware.h: New.
13891         * config/i386/nwld.c, config/i386/nwld.h: New.
13892         * config/i386/netware-crt0.c: New.
13893         * config/i386/netware-libgcc.c: New.
13894         * config/i386/netware-libgcc.def: New.
13895         * config/i386/netware-libgcc.exp: New.
13896         * config/i386/t-netware, config/i386/t-nwld: New.
13897         * gthr-nks.h: New.
13898         * doc/install.texi: Document NKS threading model.
13899
13900 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13901
13902         PR c/7054
13903         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
13904         * tree.h (initial_max_fld_align): Declare
13905         * stor-layout.c (initial_max_fld_align): Define and initialize.
13906         (maximum_field_alignment): Initialize to the same value.
13907         * common.opt: Add -fpack-struct= variant of switch.
13908         * opts.c: Handle -fpack-struct= variant of switch.
13909         * c-pragma.c: Change #pragma pack() handling so that it becomes
13910         compatible to other compilers: accept individual 'push' argument,
13911         make final pop restore (command line) default, correct interaction
13912         of push/pop and sole specification of a new alignment (so that the
13913         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
13914         to #pragma pack(push, <n>).
13915         * doc/extend.texi: New node "Structure-Packing Pragmas" under
13916         "Pragmas", describing #pragma pack.
13917         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
13918         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
13919         Document new TARGET_DEFAULT_PACK_STRUCT.
13920
13921 2004-09-03  Devang Patel  <dpatel@apple.com>
13922
13923         * dwarf2out.c (gen_field_die). Equate decl number to die.
13924
13925 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
13926
13927         PR target/15832
13928         * global.c (modify_reg_pav): New function.
13929         (make_accurate_live_analysis): Call the new function.  Move pavin
13930         modification by earlyclobber set into the new function.
13931
13932 2004-09-03  Andreas Schwab  <schwab@suse.de>
13933
13934         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
13935         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
13936         extended.
13937
13938 2004-09-02  Jan Beulich  <jbeulich@novell.com>
13939
13940         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
13941         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
13942         not unwind code specific ones.
13943         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
13944         Remove unwind code specific dependencies.
13945         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
13946         Remove gbl-ctors.h.
13947         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
13948         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
13949         * tsystem.h: Declare memcpy and memset when inhibit_libc.
13950
13951 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13952
13953         * combine.c (try_combine): Delay modifying of insns which cannot
13954         be easily undone.
13955
13956 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
13957
13958         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
13959         tree-loop-im.
13960         * gcc/tree-ssa-loop.c: Ditto
13961         * gcc/tree-ssa-loop-ivcanon.c: Ditto
13962         * gcc/doc/invoke.texi: Ditto.
13963
13964 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
13965
13966         * c-decl.c (store_parm_decls_newstyle): Make static.
13967         (store_parm_decls_from): New function.
13968         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
13969         (store_parm_decls_from): New prototype.
13970
13971 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
13972
13973         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
13974         HImode with STRICT_ALIGNMENT.
13975
13976 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
13977
13978         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
13979         (TARGET_OS_CPP_BUILTINS): Likewise.
13980         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
13981         TARGET_BPABI_CPP_BUILTINS.
13982
13983 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13984
13985         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
13986
13987 2004-09-02  Eric Christopher  <echristo@redhat.com>
13988
13989         * builtins.c (expand_builtin_cabs): Delete.
13990         (expand_builtin): If unable to fold the values do a normal
13991         library call for builtin_cab*.
13992         (fold_builtin_cabs): Depend on optimize and optimize_size.
13993         * optabs.c (expand_cmplxdiv_straight): Delete.
13994         (expand_cmplxdiv_wide): Ditto.
13995         (expand_vector_binop): Ditto.
13996         (expand_vector_unop): Ditto.
13997         (expand_complex_abs): Delete.
13998         (expand_binop): Remove calls to above functions.
13999         Remove open coding of complex arithmetic.
14000         (expand_unop): Ditto.
14001         * optabs.h: Remove prototypes.
14002
14003 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
14004
14005         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
14006         * c-tree.h (store_parm_decls_newstyle): New prototype.
14007
14008 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
14009
14010         * config/rs6000/rs6000.c (expand_block_clear): Use vector
14011         instructions if available.
14012         (expand_block_move): Likewise.
14013
14014 2004-09-03  Jan Hubicka  <jh@suse.cz>
14015
14016         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
14017
14018 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
14019
14020         * config/arm/symbian.h (LIB_SPEC): Define to empty.
14021         * config/arm/t-symbian (SHLIB_LC): Likewise.
14022
14023 2004-09-02  Paul Brook  <paul@codesourcery.com>
14024
14025         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
14026
14027 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14028
14029         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
14030         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
14031         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
14032         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
14033         (mips_issue_rate): Remove unreachable abort.
14034         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
14035         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
14036         (mips_block_move_straight, print_operand_address, mips_file_start)
14037         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
14038         (mips_output_conditional_branch, mips_expand_builtin_direct)
14039         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
14040         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
14041         with gcc_assert.
14042
14043 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14044
14045         * config/mips/mips.md (*lea_high64): Change split condition to
14046         flow2_completed.  Add a peephole2 to generate a more parallel version.
14047
14048 2004-09-02  Jan Hubicka  <jh@suse.cz>
14049
14050         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
14051         GGC.
14052
14053         * ggc-page.c: include tree-flow.h.
14054         (extra_order_size_table): Add stmt_ann_d.
14055         (STAT_LABEL): Rename from ....
14056         (LABEL): ... this one.
14057         * Makefile.in (ggc-page.o): Add dependency.
14058
14059         * ggc-common.c (ggc_force_collect): New global variable.
14060         (loc_description): Add fields "freed", "collected"
14061         (ptr_hash): New static hash
14062         (ptr_hash_entry): New structure.
14063         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
14064         (ggc_record_overhead): Take ptr argument, record it
14065         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
14066         (cmp_statistics): Imrove sorting.
14067         (dump_ggc_loc_statistics): Output newly collected statistics
14068         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
14069         (ggc_free): Call ggc_free_overhead.
14070         (ggc_collect): Force collection when asked to be forced.
14071         (ggc_collect): Call ggc_prune_overhead_list.
14072         * ggc.h (ggc_force_collect): Declare
14073         (ggc_record_overhead): Update prototype.
14074         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
14075
14076 2004-09-02  James E Wilson  <wilson@specifixinc.com>
14077
14078         * common.opt (ftrapping-math): Default to on.
14079
14080 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
14081
14082         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
14083
14084 2004-09-02  Denis Chertykov  <denisc@overta.ru>
14085
14086         PR target/16884
14087         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
14088         match_scratch.
14089         (*movmemqi_insn): Likewise.
14090         (*movmemhi): Likewise.
14091         (clrmemhi): Likewise.
14092         (*clrmemqi): Likewise.
14093         (*clrmemhi): Likewise.
14094
14095 2004-09-02  Paul Brook  <paul@codesourcery.com>
14096
14097         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
14098         default_use_cxa_atexit=yes.
14099
14100 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
14101
14102         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
14103         (struct kernel_old_ucontext): Delete.
14104         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
14105         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
14106         when IN_LIGGCC2.
14107
14108 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14109
14110         * toplev.c (process_options): Fix typo.
14111
14112 2004-09-01  Richard Henderson  <rth@redhat.com>
14113
14114         PR middle-end/17258
14115         * calls.c (initialize_argument_information): Tighten pass-through
14116         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
14117         Use build_fold_addr_expr.
14118         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
14119         that assumes ADDR_EXPR allocates stack space.
14120         * fold-const.c (build_fold_addr_expr_with_type): Look through
14121         WITH_SIZE_EXPR.
14122
14123 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
14124
14125         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
14126         * ggc.h (ggc_alloc_rtx): Delete.
14127
14128 2004-09-01  Roger Sayle  <roger@eyesopen.com>
14129
14130         * expmed.c (enum alg_code): Remove long unused enumeration values.
14131         (struct mult_cost): New structure to hold the "score" of a synthetic
14132         multiply sequence, including both a rtx_cost and a latency field.
14133         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
14134         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
14135         (struct algorithm): Change type of cost field to be mult_cost.
14136         (synth_mult): Change type of cost_limit argument to be a
14137         pointer to a mult_cost.  Update all cost comparisons to use the
14138         new mult_cost infrastructure.  For alg_add_factor and
14139         alg_sub_factor operations, latency is lower than the rtx_cost.
14140         (choose_mult_variant):  Update calls to synth_mult.  Perform
14141         cost comparisons using the new mult_cost infrastructure.
14142         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
14143         to optain the total rtx_cost of a synth_mult "algorithm".
14144
14145 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
14146
14147         * config/rs6000/power4.md: Increase store latency to 12.
14148         * config/rs6000/power5.md: Same.
14149
14150 2004-09-01  James E Wilson  <wilson@specifixinc.com>
14151
14152         PR target/14064
14153         * config/avr/avr.c (avr_unique_section): Delete prototype and
14154         definition.
14155         (TARGET_ASM_UNIQUE_SECTION): Delete.
14156
14157 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
14158
14159         * c-parse.in (primary): Call objc_build_message_expr(),
14160         objc_build_selector_expr(), objc_build_protocol_expr(),
14161         objc_build_encode_expr() and objc_build_string_object() instead of
14162         build_message_expr(), build_selector_expr(), build_protocol_expr(),
14163         build_encode_expr() and build_objc_string_object(), respectively.
14164         (component_decl_list2): Call objc_get_class_ivars() instead of
14165         get_class_ivars_from_name().
14166         (keyworddecl): Call objc_build_keyword_decl() instead of
14167         build_keyword_decl().
14168         (receiver): Call objc_get_class_reference() instead of
14169         get_class_reference().
14170         (reswords): Add blank line before @@ifobjc section, for clarity.
14171
14172 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
14173
14174         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
14175         to Altivec vetors.
14176
14177 2004-09-01  Wu Yongwei  <adah@sh163.net>
14178             Danny Smith  <dannysmith@users.sourceforge.net>
14179
14180         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
14181         not Windows 'DWORD'.
14182         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
14183         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
14184         (__gthr_win32_recursive_mutex_init_function): Add prototype for
14185         __GTHREAD_HIDE_WIN32API case..
14186         (__gthr_win32_recursive_mutex_lock): Likewise.
14187         (__gthr_win32_recursive_mutex_trylock): Likewise.
14188         (__gthr_win32_recursive_mutex_unlock): Likewise.
14189         (__gthread_recursive_mutex_init_function); Add definition for
14190         __GTHREAD_HIDE_WIN32API case.
14191         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
14192         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
14193         call to InterlockedDecrement.
14194
14195 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14196
14197         * tree-tailcall.c (find_tail_calls): Also fail is statement has
14198         volatile operands.
14199
14200         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
14201
14202         * doc/c-tree.texi: Document new operands for ARRAY_REF and
14203         COMPONENT_REF.
14204
14205 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14206
14207         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
14208         * common.opt (fspeculative-prefetching): New.
14209         * flags.h (flag_speculative_prefetching_set): Declare.
14210         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
14211         values.
14212         * opts.c (flag_sepculative_prefetching_set): New variable.
14213         (common_handle_option): Handle -fspeculative-prefetching.
14214         * passes.c (rest_of_compilation): Ditto.
14215         * profile.c (instrument_values, compute_value_histograms, branch_prob):
14216         Use vectors instead of arrays.
14217         * toplev.c (process_options): Handle -fspeculative-prefetching.
14218         * rtl-profile.c: Include ggc.h.
14219         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
14220         rtl_gen_one_value_profiler_no_edge_manipulation,
14221         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
14222         argument changed.
14223         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
14224         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
14225         argument changed.
14226         * value-prof.c: Include ggc.h.
14227         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
14228         macros.
14229         (insn_prefetch_values_to_profile, find_mem_reference_1,
14230         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
14231         speculative_prefetching_transform): New.
14232         (value_profile_transformations): Call speculative_prefetching_transform.
14233         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
14234         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
14235         tree_find_values_to_profile, find_values to profile): Use vectors
14236         instead of arrays.
14237         (free_profiled_values): Removed.
14238         * value-prof.h (struct histogram_value): Renamed to
14239         struct histogram_value_t.
14240         (histogram_value, histogram_values): New types.
14241         (find_values_to_profile): Declaration changed.
14242         (free_profiled_values): Removed.
14243         (struct profile_hooks): Type of argument of the hooks changed to
14244         histogram_value.
14245         * doc/invoke.texi (-fspeculative-prefetching): Document.
14246
14247 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14248
14249         PR rtl-optimization/16408
14250         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
14251
14252 2004-09-01  Richard Henderson  <rth@redhat.com>
14253
14254         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
14255         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
14256
14257 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14258
14259         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
14260
14261 2004-09-01  Mike Stump  <mrs@apple.com>
14262
14263         * config/darwin.c (machopic_symbol_defined_p): In addition to
14264         being SYMBOL_REF_LOCAL_P, a symbol must also be
14265         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
14266         defined in this output file, or translation unit in the case
14267         of IMA not being used.
14268         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
14269         never need .indirect_symbol when indirecting.
14270
14271 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14272
14273         * Makefile.in (bb-reorder.o): Add several dependencies.
14274
14275 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14276
14277         * fold-const.c (operand_equal_p): Require equal sign also for
14278         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
14279
14280 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14281
14282         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
14283         for use in configargs.h.  Put the cname in a separate variable.  Use
14284         that to set target_cpu_default2.
14285
14286 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
14287             Nick Clifton  <nickc@redhat.com>
14288
14289         * config/sh/sh.md ("length"): Increase branch length when
14290         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
14291         constant, 2 byte for aligning the constant.
14292
14293 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14294
14295         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
14296         CPU.
14297         (arm7tdmi-s): New CPU name.
14298         * arm/arm.c (ARM_CORE): Update for new format.
14299         * arm/arm.h (ARM_CORE): Likewise.
14300         * arm/gentune.sh: Update for extra field.
14301         * config.gcc: Likewise.
14302         * arm/arm-tune.md: Regenerate.
14303         * doc/invoke.texi: Document the real processor names for ARM cpus.
14304
14305 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14306
14307         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
14308         (floatdidf): New functions.
14309         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
14310         (floatdisf): New functions.
14311         * t-arm-elf: Use them.
14312
14313 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
14314
14315         * c-common.h (lookup_interface): Remove prototype.
14316         (is_class_name): Rename to objc_is_class_name.
14317         (lookup_objc_ivar): Rename to objc_lookup_ivar.
14318         (get_current_scope): Rename to objc_get_current_scope.
14319         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
14320         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
14321         (yylexname): Call objc_is_class_name() instead of is_class_name().
14322         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
14323         instead of lookup_objc_ivar().
14324         * stub-objc.c (lookup_interface): Remove stub.
14325         (is_class_name): Rename to objc_is_class_name.
14326         (lookup_objc_ivar): Rename to objc_lookup_ivar.
14327
14328 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14329
14330         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
14331         * config/arm/lib1funcs.asm: Do not include supplemental .S files
14332         when compiling for Symbian.
14333         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
14334         (TARGET_OS_CPP_BUILTINS): Likewise.
14335         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
14336
14337 2004-08-31  Stan Shebs  <shebs@apple.com>
14338
14339         * toplev.c (process_options): Ensure debug_hooks is initialized.
14340
14341 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14342
14343         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
14344         * target.h (cxx): Add export_class_data.
14345         * config/arm/arm.c (arm_cxx_export_class_data): New function.
14346         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
14347         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
14348
14349 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
14350
14351         * config/sh/sh.c (output_branch): Check the insn length possibly
14352         in the delayed slot.
14353
14354 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14355
14356         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
14357         blank after ')'.
14358         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
14359
14360         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
14361         (c_sizeof_of_alignof_type): Likewise.
14362         * expr.c (array_ref_element_size): Likewise.
14363         (highest_pow2_factor_for_target): Likewise.
14364         * gimplify.c (canonicalize_addr_expr): Likewise.
14365         (gimplify_compound_lval): Likewise.
14366         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
14367         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
14368         * varasm.c (assemble_variable): Likewise.
14369         (output_constant_def_contents): Alignments are unsigned.
14370
14371 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14372             Jeff Law  <law@redhat.com>
14373
14374         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
14375         gets modified.
14376
14377 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14378
14379         * hooks.c (hook_bool_void_true): New function.
14380         * hooks.h (hook_bool_void_true): Declare.
14381         * target-def.h (TARGET_CXX): Add
14382         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
14383         * target.h (struct cxx): Add key_method_may_be_inline.
14384         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
14385         function.
14386         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
14387         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
14388         __THUMB_INTERWORK.
14389
14390 2004-08-31  Denis Chertykov  <denisc@overta.ru>
14391
14392         PR target/15417
14393         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
14394         frame pointer register only in Pmode while reload in progress.
14395
14396 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
14397
14398         PR target/15334
14399         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
14400         because it breaks the 32-bit shift patterns that rely on a match_dup.
14401
14402 2004-08-31  Matt Austern  <austern@apple.com>
14403
14404         * config/darwin.c (darwin_make_decl_one_only): Allocate section
14405         names once per compilation, instead of once per symbol.
14406
14407 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
14408
14409         * Makefile.in (build_subdir): New substitution.
14410         (fixinc.sh): Simplify heavily since fixincludes is already built.
14411         (stmp-fixinc): Depend on specs.ready.
14412         (install-mkheaders): Use new location of fixincludes.
14413         (clean): Do not descend into fixinc.
14414         (FORBUILD): Replace with ../$(build_subdir).
14415         * configure.ac (build_subdir): Substitute.
14416         (FORBUILD): Do not set.
14417         (all_outputs): Remove fixinc/Makefile.
14418         (default commands): Do not create links in fixinc.
14419         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
14420         the fixincludes configuration steps and substituting
14421         @FIXINCL@ in fixinc.in.
14422         * fixinc.in: New, from fixinc/fixincl.sh.
14423
14424         * fixinc/*: Removed.
14425
14426 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
14427
14428         * attribs.c (strip_attrs): Remove.
14429         (split_specs_attrs): Move ...
14430         * c-decl.c: ... to here.
14431         * tree.h (split_specs_attrs, strip_attrs): Remove.
14432         * c-tree.h (split_specs_attrs): Declare.
14433
14434 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
14435
14436         * read-rtl.c: Disable RTL checking.
14437         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
14438
14439 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
14440
14441         * config/mips/mips.md (fcond): New code macro and attribute.
14442         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
14443         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
14444         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
14445
14446 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
14447
14448         Revert:
14449         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14450         PR rtl-optimization/16590
14451         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14452
14453 2004-08-30  Andrew Pinski  <apinski@apple.com>
14454
14455         * hard-reg-set.h:
14456         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
14457         * ChangeLog: Fix previous ChangeLog entry.
14458
14459         PR rtl-opt/13987
14460         * config.host (use_long_long_for_widest_fast_int): New, default is
14461         off.
14462         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
14463         * configure.ac: If use_long_long_for_widest_fast_int, then
14464         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
14465         * configure: Regenerate.
14466         * config.in: Regenerate.
14467         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
14468         New: widest integer type supported efficiently in hardware for the
14469         host.
14470         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
14471         HOST_BITS_PER_WIDEST_FAST_INT.
14472         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
14473         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
14474         HOST_WIDEST_FAST_INT
14475         instead of HOST_WIDE_INT.
14476         (HARD_REG_SET_LONGS): Likewise.
14477         (UHOST_BITS_PER_WIDE_INT): Likewise.
14478         Change the checks for the fast cases to be based on
14479         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
14480
14481 2004-08-30  Steven Bosscher  <stevenb@suse.de>
14482
14483         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
14484         not the pointers.
14485
14486 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
14487
14488         PR 12738
14489         PR 17205
14490         Radar 3460526
14491         Radar 3775729
14492         * c-decl.c (grokdeclarator): Produce error for 'static' on local
14493         function declaration.
14494
14495 2004-08-30  Richard Henderson  <rth@redhat.com>
14496
14497         * expr.c (array_ref_element_size): Force aligned_size back to
14498         sizetype.
14499         (component_ref_field_offset): Similarly for aligned_offset.
14500         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
14501         low-bound, element-size, field-offset fields rather than
14502         computed values.
14503
14504 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14505
14506         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
14507         redundant code.
14508
14509 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14510
14511         * c-tree.h (struct language_function): Add arg_info element.
14512         * c-decl.c (current_function_arg_info): New.
14513         (grokdeclarator, store_parm_decls): Use it instead of
14514         DECL_ARGUMENTS.
14515         (c_push_function_context, c_pop_function_context): Save and
14516         restore it.
14517
14518 2004-08-30  Richard Henderson  <rth@redhat.com>
14519
14520         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
14521         COMPONENT_REF to pointer arithmetic.
14522         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
14523         constant "c" as a valid constant initializer.  Allow narrowing of
14524         differences against the same base object, for any base object.
14525
14526 2004-08-30  Richard Henderson  <rth@redhat.com>
14527
14528         * expr.c (expand_expr_addr_expr): New.
14529         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
14530
14531 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14532
14533         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
14534         (mips_fp_condition): New enum.
14535         (mips_fp_conditions): New array.
14536         (print_fcc_operand): Delete.
14537         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
14538         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
14539         (builtin_description): Add "cond" field.
14540         (DIRECT_BUILTIN): Initialize it.
14541         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
14542         into INSN and CODE.  Initialize the "cond" field.
14543         (CMP_BUILTINS): Update accordingly.
14544         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
14545         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
14546         mips_fp_condition as argument.  Make it the final operand of the
14547         comparison instruction.
14548         (mips_expand_builtin): Update accordingly.
14549         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
14550         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
14551         the gaps.
14552         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
14553         Don't use the 'Q' operand prefix; just print the operand normally.
14554         (mips_cabs_*, mips_c_*): Delete, replacing with...
14555         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
14556         patterns.  Split the 4s versions into 2 ps patterns after reload.
14557
14558 2004-08-30  Richard Henderson  <rth@redhat.com>
14559
14560         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
14561         assuming an ADDR_EXPR is non-null.
14562
14563 2004-08-30  Jason Merrill  <jason@redhat.com>
14564
14565         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
14566
14567 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14568
14569         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
14570         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
14571         gcc_assert and gcc_unreachable instead of abort.
14572         * alloc-pool.c (abort, fancy_abort): Remove.
14573         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
14574         gcc_assert or gcc_unreachable.
14575         * attribs.c (init_attributes, decl_attributes): Likewise.
14576         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
14577         mark_bb_for_unlikely_executed_section,
14578         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
14579         fix_crossing_unconditional_branches):  Likewise.
14580         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
14581         bitmap_operation):  Likewise.
14582         * bt-load.c (insn_sets_btr_p, augment_live_range,
14583         move_btr_def):  Likewise.
14584         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
14585         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
14586         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
14587         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
14588         expand_builtin_memcmp, expand_builtin_args_info,
14589         std_gimplify_va_arg_expr, expand_builtin_unop,
14590         expand_builtin_fputs, expand_builtin_profile_func,
14591         expand_builtin_fork_or_exec, fold_builtin_bitop,
14592         fold_builtin_classify, fold_builtin_fputs): Likewise.
14593
14594 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14595
14596         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
14597         * gcov.c (abort): Remove undef.
14598
14599         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
14600         (struct tree_binfo): Remove primary field.
14601
14602 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14603
14604         * fixinc/Makefile.in (machname.h): Remove.
14605         (fixincl.x): Do not pass $@ to genfixes.
14606         * fixinc/genfixes: Remove code to produce machname.h.
14607         * fixinc/fixincl.sh: Move it here instead.
14608         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
14609         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
14610         return a bool indicating whether pz_mn_name_pat is NULL.
14611         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
14612         Declare extern C variables for the ENV_TABLE.
14613         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
14614         instead use the result of mn_get_regexps.
14615         * fixinc/fixtests.c: Likewise.
14616
14617 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14618
14619         * configure.ac: Do not run fixincludes after stage1 during
14620         toplevel bootstrap.
14621         * configure: Regenerate.
14622
14623 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14624
14625         * sched-deps.c (get_condition): Partially revert previous, by never
14626         trying to extract the condition from a condjump.
14627
14628 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14629
14630         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
14631         (handle_visibility_attribute, c_determine_visibility): Likewise.
14632         * c-common.h (my_friendly_assert): Remove.
14633
14634 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14635
14636         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
14637         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
14638         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
14639         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
14640         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
14641
14642 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
14643
14644         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
14645         in COMPONENT_REF nodes.
14646
14647 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14648
14649         PR c++/15378
14650         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
14651         global_dc->warning_as_error_requested.
14652         * diagnostic.c (diagnostic_initialize): Tidy.
14653         * diagnostic.h (diagnostic_context::x_data): Remove
14654         (diagnostic_context::issue_warnings_are_errors_message): Rename
14655         from warnings_are_errors_message.
14656         (diagnostic_context::warning_as_error_requested): New.
14657
14658 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14659
14660         * sched-deps.c (get_condition): Fix breakage in previous patch.
14661
14662 2004-08-30  Paul Brook  <paul@codesourcery.com>
14663
14664         * doc/install.texi: Fix broken mpfr link.
14665
14666 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
14667
14668         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
14669         other FreeBSD platforms.
14670
14671 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14672
14673         * arm.h (REVERSE_CONDITION): Define.
14674         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
14675
14676 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14677
14678         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
14679         just the codes, call reversed_comparison_code ().
14680         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
14681         (not_reg_cond): Use reversed_comparison_code.
14682         (and_reg_cond): Likewise.
14683         * ifcvt.c (cond_exec_process_if_block): Likewise.
14684         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
14685
14686 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14687
14688         * sched-deps.c (get_condition): Rewrite using jump support functions.
14689         Use reversed_comparison_code.
14690         (conditions_mutex_p): Use reversed_comparison_code.
14691
14692 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14693
14694         * config/mips/mips.c (override_options): Disable hot/cold partitioning
14695         for MIPS16.
14696
14697 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14698
14699         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
14700         (mips_function_type): Move to mips.c.
14701         * config/mips/mips.c (mips_builtin_type): New enum.
14702         (builtin_description): Replace code and ftype with builtin_type
14703         and function_type.
14704         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
14705         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
14706         (CODE_FOR_mips_abs_ps): Define.
14707         (mips_bdesc): Use new macros.
14708         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
14709         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
14710         (mips_expand_builtin_direct): New function.
14711         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
14712         builtin.  Replace boolean parameter with builtin_type.
14713         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
14714         (mips_expand_4s_compare_builtin): Delete, replacing with...
14715         (mips_expand_builtin_compare): ...this new function.
14716
14717 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14718
14719         PR rtl-optimization/16590
14720         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14721
14722 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14723
14724         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
14725         * tree-ssa-propagate.c: Fix documentation.
14726
14727 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14728
14729         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
14730         (mov[sd]fcc): Likewise.
14731
14732 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14733
14734         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
14735
14736 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14737
14738         * config/mips/mips.md (divide_condition): New mode attribute.
14739         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
14740         (sqrt[sd]f3): Redefine using SCALARF.
14741         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
14742         patterns.
14743
14744 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14745
14746         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
14747         (loadx, storex, fmt, UNITMODE): New mode attributes.
14748         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
14749         (mul[sd]f3): Redefine using :SCALARF.
14750         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
14751         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
14752         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
14753         Check TARGET_FUSED_MADD for V2SF too.
14754         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
14755         were already named.
14756         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
14757         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
14758
14759 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14760
14761         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
14762         V2SF_type_node if it will be needed.
14763
14764 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14765
14766         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
14767         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
14768         (mips_prepare_builtin_target): New function.
14769         (mips_expand_builtin): Use them.  Update calls to subroutines.
14770         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
14771         cmp_choice with a boolean argument to select between movt and movf.
14772         Take the comparison's icode as an argument, not the function's fcode.
14773         (mips_expand_compare_builtin): New function.  Rename existing function
14774         to mips_expand_scalar_compare_builtin.
14775         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
14776         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
14777         comparison's icode as an argument, not the builtin's fcode.
14778
14779 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14780
14781         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
14782         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
14783         registers are false and -1 if all registers are true.
14784         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
14785         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
14786         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
14787         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
14788         (bc1any2t, bc1any2f): Likewise CCV2.
14789         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
14790
14791 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14792
14793         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
14794         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
14795         UNSPEC rather than an IF_THEN_ELSE.
14796         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
14797         mips_cond_move_tf_ps by name.
14798
14799 2004-08-29  Chao-ying Fu  <fu@mips.com>
14800             James E Wilson  <wilson@specifixinc.com>
14801
14802         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
14803         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
14804         * config/mips/mips-ps-3d.md: New file.
14805         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
14806         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14807         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
14808         (mips_output_move): Emit "mov.ps" for V2SFmode.
14809         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
14810         MODE_VECTOR_FLOAT.
14811         (override_options): Check if TARGET_MIPS3D and there was an explicit
14812         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
14813         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
14814         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
14815         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
14816         and allow CCV2 and CCV4 to occupy two and four CC registers.
14817         (print_fcc_operand): New function.
14818         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
14819         %Z to call print_fcc_operand.
14820         (mips_function_value): Handle MODE_VECTOR_FLOAT.
14821         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
14822         (mips_vector_mode_supported_p): New function.
14823         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
14824         (builtin_description): New struct.
14825         (mips_bdesc): New array of struct builtin_description.
14826         (mips_expand_builtin, mips_init_builtins,
14827         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
14828         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
14829         functions.
14830         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
14831         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
14832         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
14833         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
14834         "-mips3d", and "-mno-mips3d".
14835         (ASM_SPEC): Map -mips3d to -mips3d in gas.
14836         (EXTRA_CONSTRAINT_Y): New macro.
14837         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
14838         multi-letter constraint 'Y'.
14839         (CONSTRAINT_LEN): New macro.
14840         (enum mips_builtins): New for MIPS builtin functions.
14841         (enum mips_function_type): New for the types of MIPS builtin functions.
14842         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
14843         * config/mips/mips.md: New constants for paired single and MIPS-3D
14844         instructions.  Include the new mips-ps-3d.md file.
14845         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
14846         movv2sf_hardfloat_64bit): New named patterns.
14847         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
14848         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
14849         sdxc1_v2sf_di): New unnamed patterns.
14850         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
14851         const_vector support.
14852         (const_0_or_1_operand): New predicate.
14853         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
14854
14855 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14856
14857         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
14858         (tree-ssa-propagate.o): New rule.
14859         (GTFILES): Add tree-ssa-propagate.c.
14860         * tree-flow.h (struct stmt_ann_d): Remove field
14861         in_ccp_worklist.
14862         * tree-ssa-propagate.c: New file.
14863         * tree-ssa-propagate.h: New file.
14864         * tree-ssa-ccp.c: Re-write to use the routines from
14865         tree-ssa-propagate.c.
14866
14867 2004-08-28  Andrew Pinski  <apinski@apple.com>
14868
14869         * tree-ssa-loop.c: Remove extra include of basic-block.h.
14870
14871 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
14872
14873         * c-common.h: Update comments about ObjC/ObjC++ entry points.
14874         (objc_is_reserved_word): New prototype.
14875         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
14876         separate section; these are call-backs.
14877         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
14878         ObjC/ObjC++ "@" keywords.
14879         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
14880         prototypes; they already live in c-common.h.
14881         * stub-objc.c: Update copyright notice.
14882         (objc_is_reserved_word): New stub.
14883
14884 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
14885
14886         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
14887         even when not checking.
14888
14889 2004-08-27  Jason Merrill  <jason@redhat.com>
14890
14891         PR c++/13684
14892         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
14893         (gimple_push_cleanup): Add eh_only parm.
14894         (gimplify_target_expr): Pass it.
14895         * c.opt (-fno-threadsafe-statics): New option.
14896         * c-opts.c (c_common_handle_option): Handle it.
14897         * c-common.h (flag_threadsafe_statics): Declare it.
14898         * c-common.c (flag_threadsafe_statics): Record it.
14899         * doc/invoke.texi: Document it.
14900         * tsystem.h (_GNU_SOURCE): Define.
14901         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
14902         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
14903         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
14904         (__gthread_recursive_mutex_init_function): New fn.
14905         (__gthread_recursive_mutex_lock): New fn.
14906         (__gthread_recursive_mutex_trylock): New fn.
14907         (__gthread_recursive_mutex_unlock): New fn.
14908         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
14909         * gthr-win32.h, gthr-vxworks.h: Likewise.
14910         * gthr.h: Document.
14911
14912 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
14913
14914         * config/rs6000/rs6000.c (rs6000_override_options): Increase
14915         maximum skip to 15.  Set function alignment, jump alignment, and
14916         loop alignment to 16 for processors that form dispatch groups.
14917         (rs6000_rtx_costs): outer_code is used.
14918
14919 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14920
14921         * stor-layout.c (sizetype_set): Remove.
14922         (set_sizetype): Don't test or set it.
14923
14924         * tree.h (size_int_type): Remove.
14925         * fold-const.c: Do not #include gt-fold-const.h.
14926         (size_htab_hash, size_htab_eq): Remove.
14927         (size_int_kind): Use build_int_cst.
14928         (new_const, size_htab): Remove.
14929         (size_int_type): Remove.
14930         (round_up): Use build_int_cst.
14931         (round_down): Likewise. Remove spurious constant build.
14932
14933 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14934
14935         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
14936         Add is_release variable, use it for --enable-werror and
14937         --enable-checking defaults.
14938         * system.h (gcc_assert, gcc_unreachable): New.
14939         * doc/install.texi (--enable-checking): Update.
14940         * configure, config.in: Rebuilt.
14941
14942 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
14943
14944         * rtl.h (read_rtx): Change prototype.
14945         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
14946         line number.  Return true on success.
14947         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
14948         callers accordingly.
14949
14950 2004-08-26  Richard Henderson  <rth@redhat.com>
14951
14952         * c-typeck.c (build_offsetof): Remove.
14953         * c-tree.h (build_offsetof): Remove.
14954         * c-common.c (fold_offsetof_1, fold_offsetof): New.
14955         * c-common.h (fold_offsetof): Declare.
14956         * c-parse.in (offsetof_base): New.
14957         (offsetof_member_designator): Use it.  Build references, not just
14958         a tree list.
14959         (primary): Use fold_offsetof, not build_offsetof.
14960
14961 2004-08-26  Richard Henderson  <rth@redhat.com>
14962
14963         * tree.c (staticp): Return the static object.
14964         * tree.h (staticp): Update decl.
14965         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
14966         * langhooks.c (lhd_staticp): Return NULL_TREE.
14967         * langhooks-def.h (lhd_staticp): Update decl.
14968         * c-common.c (c_staticp): Return the static object.
14969         * c-common.h (c_staticp): Update decl.
14970
14971 2004-08-26  Richard Henderson  <rth@redhat.com>
14972
14973         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
14974         modes.
14975
14976 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
14977
14978         PR c/13801
14979         * c-decl.c (struct c_binding): Add type and inner_comp fields.
14980         (bind): Set type and inner_comp fields.
14981         (pop_scope): Restore type of decl to the correct type from an
14982         outer scope.  Give error when popping file scope for incomplete
14983         arrays completed incompatibly with default initialization in an
14984         inner scope.
14985         (diagnose_mismatched_decls): Handle externs with initializers at
14986         block scope.
14987         (pushdecl): Set type of external declaration at block scope based
14988         only on the visible declarations.  Save type when changing the
14989         type of a declaration.  Merge an external declaration at block
14990         scope with a visible static declaration at file scope.
14991         (implicitly_declare): Give recycled old declaration the new type
14992         except for incompatible declarations of built-in functions, saving
14993         the old type.
14994
14995 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
14996
14997         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
14998
14999 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
15000
15001         * tree-alias-common.c (gate_pta): New function.
15002         (pass_build_pta): Use it.
15003         (pass_del_pta): Use it.
15004         (delete_alias_vars): Don't check flag_tree_points_to.
15005
15006 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15007
15008         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
15009         TFmode as additional register mode cloberred by call.
15010
15011 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15012
15013         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
15014         parallel pattern for library call returning DImode in
15015         mixed mode.
15016
15017 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15018
15019         * config/rs6000/rs6000.c (function_arg): Generate parallel
15020         pattern for more split args.
15021
15022 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15023
15024         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
15025         either gen_movdi_di_update or gen_movdi_si_update depending on
15026         target mode.
15027         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
15028         to generate two versions.
15029
15030 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
15031
15032         * Makefile.in (lambda-code.o): New.
15033         (lambda-trans.o): Ditto.
15034         (TREE_DATA_REF_H): Ditto.
15035         (LAMBDA_H): Ditto.
15036         (lambda-mat.o): Use LAMBDA_H.
15037         (tree-data-ref.o): Ditto.
15038         * lambda-code.c: New file.  Lambda code generation algorithm.
15039         * lambda-trans.c: Ditto. Lambda transformation matrix support.
15040         * lambda.h: Add lambda loop structures.
15041         Add lambda loopnest structures.
15042         Add lambda body vector structure.
15043         Add lambda linear expression structures.
15044         Add prototypes for functions in new files.
15045         * lambda-mat.c: Include tree.h
15046
15047 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
15048             Sebastian Pop  <pop@cri.ensmp.fr>
15049
15050         * tree-data-ref.h: Include lambda.h
15051         (free_dependence_relation): Declared here.
15052         (free_dependence_relations): Ditto.
15053         (free_data_refs): Ditto.
15054         * tree-data-ref.c (free_dependence_relation): New function.
15055         (free_dependence_relations): Ditto.
15056         (free_data_refs): Ditot.
15057         (analyze_all_data_dependences): Free datarefs and dependence_relations.
15058         (build_classic_dist_vector): Store in the dependence_relations the
15059         information. Each arc in the dependence_relations graph is labelled
15060         with the distance and direction vectors.
15061         (build_classic_dir_vector): Ditto.
15062         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
15063         Now computes again the whole dependence graph including read-read
15064         relations.
15065         (compute_data_dependences_for_loop): Now dependence_relations contains
15066         all the data, and thus it doesn't need to initialize the classic_dir
15067         and classic_dist vectors.
15068         (analyze_all_data_dependences): Adjusted for using the new interface of
15069         compute_data_dependences_for_loop.  Remove the statistics dump.
15070
15071 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
15072
15073         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
15074         (xtensa_expand_block_move): Update comment.
15075         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
15076
15077 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
15078
15079         PR target/13506
15080         * toplev.c (crash_signal): If we crashed while emitting
15081         a user asm, then die more gracefully.
15082
15083 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15084
15085         PR target/17119.
15086         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
15087         checking for a valid constant, regardless of sign.
15088
15089 2004-08-25  Richard Henderson  <rth@redhat.com>
15090
15091         PR target/16974
15092         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
15093         if the constant satisfies add_operand.
15094
15095 2004-08-25  Richard Henderson  <rth@redhat.com>
15096
15097         PR debug/10695
15098         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
15099         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
15100         unwind info for >16-bit frames.
15101
15102 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
15103
15104         PR target/17171
15105         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
15106
15107 2004-08-25  Richard Henderson  <rth@redhat.com>
15108
15109         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
15110         (TARGET_CANNOT_FORCE_CONST_MEM): New.
15111
15112 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
15113
15114         * doc/tree-ssa.texi: Document new operand iterator.
15115
15116 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
15117
15118         PR target/16480
15119         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
15120         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
15121         as PLUS base regs.
15122
15123 2005-08-28  Paul Brook  <paul@codesourcery.com>
15124
15125         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
15126         -mfpu=vfp -march=armv5t
15127         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
15128
15129 2004-08-25  Richard Henderson  <rth@redhat.com>
15130
15131         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
15132         * target.h (struct gcc_target): Add scalar_mode_supported_p.
15133         * targhooks.c (default_scalar_mode_supported_p): New.
15134         * targhooks.h (default_scalar_mode_supported_p): Declare.
15135         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
15136
15137         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
15138         before attempting to create types.  Tidy.
15139         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
15140
15141         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
15142         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
15143
15144 2004-08-25  Richard Henderson  <rth@redhat.com>
15145
15146         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
15147         set REAL_MODE_FORMAT for TFmode.
15148
15149 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
15150
15151         * c-decl.c (grokparm): New function.
15152         * c-tree.h (grokparm): New prototype.
15153
15154 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
15155
15156         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
15157         iterator controlling structure.
15158         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
15159         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
15160         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
15161         iterator flags.
15162         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
15163         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
15164         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
15165         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
15166         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
15167         Empty operand pointers.
15168         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
15169         (op_iter_next_use): New.  Return next use_operand_p.
15170         (op_iter_next_def): New.  Return next def_operand_p.
15171         (op_iter_next_tree): New.  Return next operands as a tree.
15172         (op_iter_init): New.  Initialize an iterator structure.
15173         (op_iter_init_use): New.  Initialize structure and get the first use.
15174         (op_iter_init_def): New.  Initialize structure and get the first def.
15175         (op_iter_init_tree): New.  Initialize structure and get the first tree.
15176         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
15177         (op_iter_init_maydef): New.  Initialize structure and get the first
15178         V_MAY_DEF operands.
15179         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
15180         * tree-dfa.c (compute_immediate_uses_for_stmt,
15181         redirect_immediate_uses): Use new operand iterator.
15182         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
15183         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
15184         operands instead of using *_disappeared_p routines.
15185         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
15186         ssa_rewrite_stmt): Use new operand iterator.
15187         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
15188         rewrite_trees): Use new operand iterator.
15189         * tree-pretty-print.c (dump_vops): Use new operand iterator.
15190         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
15191         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
15192         dump_points_to_info): Use new operand iterator.
15193         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
15194         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
15195         operand iterator.
15196         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
15197         propagate_necessity): Use new operand iterator.
15198         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
15199         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
15200         a parameter instead of a stmt_ann_t.
15201         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
15202         build_tree_conflict_graph): Use new operand iterator.
15203         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
15204         rewrite_mem_refs): Use new operand iterator.
15205         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
15206         check_loop_closed_ssa_use): Use new operand iterator.
15207         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
15208         * tree-ssanames.c (release_defs): Use new operand iterator.
15209         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
15210
15211 2004-08-25  Adam Nemet  <anemet@lnxw.com>
15212
15213         * tlink.c (initial_cwd): New variable.
15214         (tlink_init): Initialize it.
15215         (recompile_files): Use tlink_execute() instead of system().  Don't
15216         duplicate verbose output of collect_execute.  Restore initial_cwd.
15217         Update comment before the function.
15218
15219 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
15220
15221         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
15222         accept) a cast from one Objective-C pointer type to another.
15223
15224 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
15225
15226         * doc/install.texi: Document that libstdc++-v3 requires
15227         now automake 1.9.1.
15228
15229 2004-08-25  Caroline Tice  <ctice@apple.com>
15230
15231         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
15232         to comments at start of function.
15233         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
15234         comment.
15235         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15236         merge_blocks_move_predecessor_nojumps,
15237         merge_blocks_move_successor_nojumps, merge_blocks_move,
15238         try_crossjump_to_edge, try_crossjump_bb): Likewise.
15239         * cfglayout.c (fixup_reorder_chain): Likewise.
15240         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
15241         cfg_layout_can_merge_blocks_p):  Likewise.
15242         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
15243         * passes.c (rest_of_compilation): Update comments for calling
15244         optimization that partitions hot/cold basic blocks.
15245         * doc/invoke.texi:  Update documentation of
15246         freorder-blocks-and-partition flag.
15247
15248 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
15249
15250         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
15251         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
15252
15253 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
15254
15255         * config/mips/mips.md (any_shift): New code macro.
15256         (optab, insn): New code attributes.
15257         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
15258         Use the standard rather than internal patterns for the MIPS16
15259         double-shift optimization.
15260         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
15261         Redefine using :GPR and any_shift.
15262         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
15263         to cover all three shifts.
15264         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
15265         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
15266         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
15267
15268 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
15269
15270         * gimplify.c (lookup_tmp_var): Separate temporaries when not
15271         optimizing.
15272
15273 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15274
15275         PR libstdc++/17005 (fix for HP-UX 11.11)
15276         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
15277         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
15278         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
15279         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
15280         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
15281         (LINK_SPEC): Handle march=1.0 option.
15282         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
15283         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
15284         (SUBTARGET_OPTIONS): New define.
15285         (LINK_SPEC): Handle march=1.0 option.
15286         (STARTFILE_SPEC): New define.
15287         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
15288         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
15289         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
15290         (SUBTARGET_OPTIONS): New define.
15291         (LINK_SPEC): Handle march=1.0 option.
15292         (STARTFILE_SPEC): New define.
15293         * config/pa/pa.c (override_options): Add code to process -munix= option.
15294         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
15295         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
15296         defines.
15297         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
15298         (SUBTARGET_OPTIONS): Provide default define.
15299         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
15300         STANDARD_STARTFILE_PREFIX_2): New defines.
15301         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
15302         (ENDFILE_SPEC): Use %O.
15303         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
15304         Mention issue caused by changing namespace and runtime to UNIX 95/98.
15305         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
15306         Document -munix=std option.
15307
15308 2004-08-25  Steven Bosscher  <stevenb@suse.de>
15309
15310         * cse.c (cse_around_loop, cse_check_loop_start,
15311         cse_set_around_loop): Remove.
15312         (cse_basic_block): Remove the around_loop argument.
15313         (cse_end_of_basic_block): Remove the after_loop argument.
15314         (cse_main): Likewise.
15315         * rtl.h (cse_main): Update prototype.
15316         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
15317         rest_of_handle_gcse): Update cse_main calls.
15318
15319 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
15320
15321         * tree.h  (build_int_cst): New, sign extended constant.
15322         (build_int_cstu): New, zero extended constant.
15323         (build_int_cst_wide): Renamed from build_int_cst.
15324         * tree.c (build_int_cst, build_int_cstu): New.
15325         (build_int_cst_wide): Renamed from build_int_cst.
15326         (make_vector_type, build_common_tree_nodes,
15327         build_common_tree_nodes_2): Adjust build_int_cst calls.
15328         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
15329         expand_builtin_strpbrk, expand_builtin_fputs,
15330         build_string_literal, expand_builtin_printf,
15331         expand_builtin_sprintf, fold_builtin_classify_type,
15332         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
15333         fold_builtin_toascii, fold_builtin_isdigit,
15334         simplify_builtin_strstr, simplify_builtin_strpbrk,
15335         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
15336         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
15337         DEF_ATTR_INT): Likewise.
15338         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
15339         Likewise.
15340         * c-lex.c (interpret_integer, lex_charconst): Likewise.
15341         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
15342         * c-pretty-print.c (pp_c_integer_constant): Likewise.
15343         * c-typeck.c (really_start_incremental_init, push_init_level,
15344         set_nonincremental_init_from_string): Likewise.
15345         * calls.c (load_register_parameters): Likewise.
15346         convert.c (convert_to_pointer): Likewise.
15347         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
15348         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
15349         build_gcov_info): Likewise.
15350         * except.c (init_eh, assign_filter_values): Likewise.
15351         * expmed.c (store_fixed_bit_field, extract_bit_field,
15352         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
15353         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
15354         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
15355         * expr.c (convert_move, emit_group_load, emit_group_store,
15356         expand_assignment, store_constructor, store_field,
15357         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
15358         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
15359         invert_truthvalue, optimize_bit_field_compare,
15360         decode_field_reference, all_ones_mask_p, constant_boolean_node,
15361         fold_div_compare, fold, fold_read_from_constant_string,
15362         fold_negate_const, fold_abs_const, fold_not_const, round_up,
15363         round_down): Likewise.
15364         * function.c (assign_parm_setup_block): Likewise.
15365         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
15366         Likewise.
15367         * stor-layout.c (layout_type, initialize_sizetypes,
15368         set_min_and_max_values_for_integral_type): Likewise.
15369         * tree-chrec.c (chrec_fold_multiply_poly_poly,
15370         reset_evolution_in_loop): Likewise.
15371         * tree-chrec.h (build_polynomial_chrec): Likewise.
15372         * tree-complex.c (build_replicated_const): Likewise.
15373         * tree-eh.c (honor_protect_cleanup_actions,
15374         lower_try_finally_onedest, lower_try_finally_copy,
15375         lower_try_finally_switch): Likewise.
15376         * tree-mudflap.c (mf_build_string, mx_register_decls,
15377         mudflap_register_call, mudflap_enqueue_constant): Likewise.
15378         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
15379         * tree-pretty-print.c (dump_generic_node): Likewise.
15380         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
15381         Likewise.
15382         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
15383         * tree-ssa-loop-niter.c (number_of_iterations_cond,
15384         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
15385         Likewise.
15386         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
15387         canonicalize_loop_induction_variables): Likewise.
15388         * tree-vectorizer.c (vect_create_index_for_array_ref,
15389         vect_transform_loop_bound, vect_compute_data_ref_alignment):
15390         Likewise.
15391
15392         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
15393         alpha_gimplify_va_arg_1): Likewise.
15394         * config/arm/arm.c (arm_get_cookie_size): Likewise.
15395         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
15396         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
15397         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15398         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
15399         mips_gimplify_va_arg_expr): Likewise.
15400         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
15401         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
15402         add_compiler_branch_island): Likewise.
15403         * config/s390/s390.c (s390_va_start): Likewise.
15404         * config/sh/sh.c (sh_va_start): Likewise.
15405         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
15406         Likewise.
15407         * config/xtensa/xtensa.c (xtensa_va_start,
15408         xtensa_gimplify_va_arg_expr): Likewise.
15409
15410         * objc/objc-act.c (build_objc_string_object,
15411         build_objc_symtab_template, init_def_list, init_objc_symtab,
15412         init_module_descriptor, generate_static_references,
15413         build_selector_translation_table, get_proto_encoding,
15414         build_typed_selector_reference, build_selector_reference,
15415         build_next_objc_exception_stuff,
15416         build_method_prototype_list_template, generate_descriptor_table,
15417         generate_protocols, build_protocol_initializer,
15418         build_ivar_list_template, build_method_list_template,
15419         build_ivar_list_initializer, generate_ivars_list,
15420         generate_dispatch_table, generate_protocol_list,
15421         build_category_initializer, build_shared_structure_initializer,
15422         generate_shared_structures, handle_impent,
15423         generate_objc_image_info): Likewise.
15424
15425 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
15426
15427         * cfglayout.c (duplicate_insn_chain): Remove references to
15428         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
15429         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
15430         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
15431         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
15432         and NOTE_INSN_LOOP_CONT.
15433         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
15434         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
15435         and NOTE_INSN_LOOP_CONT.
15436         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
15437         check_dbra_loop, loop_dump_aux): Remove references to removed notes
15438         and fields.
15439         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
15440         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
15441         references to removed notes and fields.
15442         (subtract_reg_term, ujump_to_loop_cont): Remove.
15443
15444 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
15445
15446         * doc/install.texi: Document that libcpp does not require
15447         Automake any longer.  Document that Automake 1.9.1 should
15448         work everywhere.
15449
15450 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
15451
15452         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
15453         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
15454         DWARF_DEBUGGING_INFO from choice-of-definition chain;
15455         restructure using C89 features (#elif, #error).
15456         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
15457         * config/sh/sh.h: Remove references to DWARF_DEBUG.
15458         * doc/invoke.texi: Remove references to DWARF version 1;
15459         clarify why -gdwarf-2<n> doesn't work.
15460
15461 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
15462
15463         * basic-block.h (BB_SET_PARTITION): Clear old value first.
15464         * cfg.c (clear_bb_flags): Don't clear partition setting.
15465         * ifcvt.c (find_if_case_1): Remove ??? comment.
15466
15467 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
15468
15469         PR target/17052
15470         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
15471         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
15472         current_function_stdarg in place of sysv_varargs_p.
15473         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
15474         sysv_varargs_p.
15475
15476 2004-08-24  Richard Henderson  <rth@redhat.com>
15477
15478         PR target/16298
15479         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
15480         random codes within CONST.
15481
15482 2004-08-24  James E Wilson  <wilson@specifixinc.com>
15483
15484         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
15485         -freorder-blocks-and-partition.
15486
15487 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15488
15489         PR middle-end/17044
15490         * tree-ssa-threadupdate.c (redirection_data): Make static.
15491         (thread_block): Use ggc_alloc_cleared to allocate struct
15492         redirection_data.  Don't free elements in redirection_data.
15493
15494 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15495
15496         * config/mips/predicates.md (small_data_pattern): Match prefetches.
15497
15498 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15499
15500         PR tree-optimization/17016
15501         * tree-ssa-loop-niter.c (number_of_iterations_cond,
15502         number_of_iterations_exit): Use POINTER_TYPE_P instead
15503         of testing for POINTER_TYPE.
15504
15505 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15506
15507         * tree-ssa-loop-ivcanon.c: New file.
15508         * tree-ssa-loop-manip.c (create_iv): New function.
15509         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
15510         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
15511         * cfgloop.c (mark_single_exit_loops): New function.
15512         (verify_loop_structure): Verify single-exit loops.
15513         * cfgloop.h (struct loop): Add single_exit field.
15514         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
15515         (mark_single_exit_loops): Declare.
15516         (tree_num_loop_insns): Declare.
15517         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
15518         (duplicate_loop_to_header_edge): Use it.
15519         * common.opt (fivcanon): New flag.
15520         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
15521         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
15522         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
15523         (bsi_insert_on_edge_immediate): New function.
15524         * tree-flow.h (bsi_insert_on_edge_immediate,
15525         canonicalize_induction_variables, tree_unroll_loops_completely,
15526         create_iv): Declare.
15527         * tree-optimize.c (init_tree_optimization_passes): Add
15528         pass_iv_canon and pass_complete_unroll.
15529         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
15530         * tree-scalar-evolution.c (get_loop_exit_condition,
15531         get_exit_conditions_rec, number_of_iterations_in_loop,
15532         scev_initialize): Use single_exit information.
15533         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
15534         missing assumptions.
15535         (loop_niter_by_eval):  Return number of iterations as unsigned
15536         int.
15537         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
15538         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
15539         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
15540         New passes.
15541         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
15542         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
15543         the defining statement is ready.
15544         * tree-vectorizer.c (vect_create_iv_simple): Removed.
15545         (vect_create_index_for_array_ref, vect_transform_loop_bound):
15546         Use create_iv.
15547         (vect_transform_loop_bound): Use single_exit information.
15548         (vect_analyze_loop_form): Cleanup bogus tests.
15549         (vectorize_loops): Do not call flow_loop_scan.
15550         * tree.h (may_negate_without_overflow_p): Declare.
15551         * fold-const.c (may_negate_without_overflow_p): Split out from ...
15552         (negate_expr_p): ... this function.
15553         (tree_expr_nonzero_p): Handle overflowed constants correctly.
15554         * doc/invoke.texi (-fivcanon): Document.
15555         * doc/passes.texi: Document canonical induction variable creation.
15556
15557 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15558
15559         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
15560         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
15561         using the mode of the operand to decide between them.
15562         * config/mips/mips.md (MOVECC): New mode macro.
15563         (ccreg): New mode attribute.
15564         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
15565         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
15566         (mov[sd]icc): Redefine using :GPR.
15567
15568 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15569
15570         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
15571         (mips_prefetch_cookie): New function.
15572         * config/mips/mips.c (print_operand_address): Fix handling of
15573         ADDRESS_CONST_INT.
15574         (mips_emit_prefetch): Delete.
15575         (mips_prefetch_cookie): New function.
15576         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
15577         mode of QImode for the address_operand.  Use mips_prefetch_cookie
15578         to calculate the first "pref" operand.
15579         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
15580         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
15581
15582 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
15583
15584         * arm.md: Include predicates.md.
15585         * predicates.md: New file.
15586         * arm.c (s_register_operand, arm_hard_register_operand)
15587         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
15588         (arm_immediate_operand, arm_neg_immediate_operand)
15589         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
15590         (arm_add_operand, arm_addimm_operand, arm_not_operand)
15591         (offsettable_memory_operand, alignable_memory_operand)
15592         (arm_reload_memory_operand, arm_float_rhs_operand)
15593         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
15594         (index_operand, shiftable_operator, logical_binary_operator)
15595         (shift_operator, equality_operator, arm_comparison_operator)
15596         (minmax_operator, cc_register, dominant_cc_register)
15597         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
15598         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
15599         (const_shift_operand, load_multiple_operation)
15600         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
15601         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
15602         (cirrus_register_operand, cirrus_fp_register)
15603         (cirrus_shift_const): Delete, replaced with equivalents in
15604         predicates.md.
15605         (shift_op): Handle ROTATE.
15606         * arm-protos.h: Delete declarations for above.
15607         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
15608         * t-arm (MD_INCLUDES): Add predicates.md.
15609         (s-preds): Depends on MD_INCLUDES.
15610
15611 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15612
15613         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
15614         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
15615         patterns.  Redefine using :GPR.  Give the match_operator a mode.
15616         Use '%2' rather than '%z2' for operand 2.
15617
15618 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15619
15620         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
15621         attribute.
15622
15623 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15624
15625         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
15626         of internal patterns.
15627         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
15628         Redefine using :P.
15629         (tablejump): Use expand_binop to calculate address.  Adjust names
15630         of internal patterns.
15631         (tablejump[sd]i): Renamed from tablejump_internal[12].
15632         Redefine using :P.
15633         (tablejump_mips16[12]): Delete.
15634
15635 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15636
15637         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
15638         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
15639         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
15640         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
15641         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
15642
15643 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15644
15645         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
15646         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
15647         using :GPR.
15648         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
15649         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
15650         (*branch_equality[sd]i_inverted): Likewise
15651         branch_equality{,_di}_inverted.
15652         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
15653         Redefine using :GPR.
15654
15655 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15656
15657         * rtl.def: Reorganize, placing all codes used only in machine
15658         descriptions at the end.
15659
15660         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
15661         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
15662         rtx_name, rtx_format arrays by direct reference to rtl.def,
15663         first undefining GENERATOR_FILE.  Define enum insn_note and
15664         note_insn_name array by direct reference to insn-notes.def.
15665         (adjust_field_rtx_def): Remove local definition of rtx_name.
15666         Use symbolic names for insn notes.
15667         * Makefile.in (gengtype.o): Update dependencies.
15668
15669 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15670
15671         * basic-block.h (struct basic_block_def): Reorder fields to
15672         eliminate interior padding.  Remove 'partition' field.
15673         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
15674         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
15675         (BB_COPY_PARTITION): New macros.
15676         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
15677         Replace all references to the 'partition' field of a basic
15678         block with new macros.
15679
15680         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
15681         * final.c (final_scan_insn): Don't handle it.
15682         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
15683         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
15684         * sched-rgn.c (sched_is_disabled_for_current_region_p):
15685         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
15686
15687 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15688
15689         * c-decl.c (c_init_decl_processing): Adjust
15690         build_common_tree_nodes call.
15691         * expmed.c (const_mult_add_overflow_p): Use
15692         build_distinct_type_copy.
15693         * stor-layout.c (early_type_list): Remove.
15694         (layout_type): Don't append to early_type_list.
15695         (initialize_sizetypes): Add signed_p argument.
15696         (set_sizetype): Overwrite the stub type nodes directly.
15697         * tree.c (copy_node_stat): Clear a type's value cache here ...
15698         (build_distinct_type): ... not here.
15699         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
15700         * tree.h (initialize_sizetypes): Add signed_p argument.
15701         (build_common_tree_nodes): Likewise.
15702
15703         * objc/objc-act.c (get_static_reference): Use
15704         build_variant_type_copy.
15705         (get_protocol_reference): Likewise.
15706         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
15707
15708 2004-08-24  Richard Henderson  <rth@redhat.com>
15709             Andrew Pinski  <apinski@apple.com>
15710
15711         * gimplify.c (gimplify_array_ref_to_plus): Delete.
15712         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
15713         for ARRAY_REF.
15714
15715         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
15716         ARRAY_REF also to get to the STRING_CST.
15717
15718 2004-08-24  Paul Brook  <paul@codesourcery.com>
15719
15720         * config/arm/arm.c (arm_override_options): Update error message.
15721         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
15722         TARGET_HARD_FLOAT_ABI.
15723         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
15724         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
15725
15726 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15727
15728         PR target/17093
15729         * config/m32r.md (movsi_sda): Add SI mode specification to
15730         UNSPEC.
15731
15732 2004-08-24  Nick Clifton  <nickc@redhat.com>
15733
15734         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
15735         of seth_add3_operand.
15736
15737 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15738
15739         * Makefile.in (PROTO_OBJS): Add errors.o.
15740         * protoize.c (fancy_abort): Remove.
15741         * mips-tfile.c (fancy_abort): Add parameters.
15742
15743 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
15744
15745         * doc/trouble.texi (C++ misunderstandings): Fix example code.
15746
15747 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
15748
15749         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
15750         (host-default.o): Add dependency on HOOKS_H.
15751         * config/x-linux: Likewise.
15752         * config/x-solaris: Likewise.
15753         * config/i386/x-mingw32: Likewise.
15754         * config/rs6000/x-darwin: Likewise.
15755
15756 2004-08-23  James E Wilson  <wilson@specifixinc.com>
15757
15758         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
15759         DEF_REG_NOTE.
15760
15761 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
15762
15763         PR c/14492
15764         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
15765
15766 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
15767
15768         * cfg.c (check_bb_profile): Fix typos.
15769         * function.c (assign_parm_is_stack_parm): Likewise.
15770         * tree-nested.c: Likewise.
15771
15772 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
15773
15774         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
15775         Remove TYPECODE.
15776         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
15777
15778 2004-08-23  Eric Christopher  <echristo@redhat.com>
15779
15780         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
15781         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
15782         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
15783         * target.h: Ditto.
15784         * hooks.h: Include machmode.h.
15785         (hook_bool_mode_false): Declare.
15786         * hooks.c (hook_bool_mode_false): Define.
15787         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
15788         * stor-layout.c (layout_type): Ditto.
15789         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
15790         Define to target macro.
15791         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
15792         * config/arm/arm.c: Ditto. Use.
15793         * config/arm/arm.h: Ditto.
15794         * config/arm/arm-protos.h: Ditto.
15795         * config/i386/i386.c: Ditto.
15796         * config/i386/i386.h: Ditto.
15797         * config/rs6000/rs6000.c: Ditto.
15798         * config/rs6000/rs6000.h: Ditto.
15799         * config/sh/sh.c: Ditto.
15800         * config/sh/sh.h: Ditto.
15801         * config/sh/sh-protos.h: Ditto.
15802         * config/sh/sh.md: Use.
15803         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
15804         to TARGET_VECTOR_MODE_SUPPORTED_P.
15805
15806 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
15807
15808         * Makefile.in (BUILD_ERRORS): Set to build-errors.
15809         (errors.o): New target for host.
15810         (build-errors.o): New target for build.
15811         (genobjs): Replace errors.o with build-errors.
15812         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
15813         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
15814         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
15815         (fix-header.o): Add errors.h
15816         * collect2.c (fancy_abort): Add parameters.
15817         * collect2.h (fancy_abort): Don't declare.
15818         * errors.h (fancy_abort): Don't declare.
15819         * errors.c: Include either bconfig.h or config.h.
15820         (fancy_abort): Trim filename.
15821         * fix-header.c (v_fatal, fatal): Remove.
15822         (progname): Remove definition.
15823         (main): Set progname here.
15824         * gcc.c (fancy_abort): Add parameters.
15825         * gcc.h (fancy_abort): Remove declaration.
15826         * gcov.c (fancy_abort): Remove.
15827         * rtl.h (fancy_abort): Don't declare.
15828         (abort): Don't define.
15829         * tree.h (fancy_abort): Don't declare.
15830         (abort): Don't define.
15831         * system.h (fancy_abort): Declare.
15832         (abort): Define to fancy_abort.
15833         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
15834
15835         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
15836         (usize_type, ubitsizetype): Remove.
15837         * stor-layout.c (set_sizetype): Don't initialize usizetype,
15838         ubitsizetype.
15839         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
15840
15841         * tree.h (build_distinct_type_copy): New.
15842         (build_type_copy): ... here.  Rename to ...
15843         (build_variant_type_copy): ... here.
15844         * tree.c (build_qualified_type): Rename build_type_copy call.
15845         (build_distinct_type_copy): New, broken out of ...
15846         (build_type_copy): ... here.  Rename to ...
15847         (build_variant_type_copy): ... here.  Use
15848         build_distinct_type_copy.
15849         (build_common_tree_nodes_2): Rename build_type_copy call.
15850         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
15851         call.
15852         (handle_packed_attribute, handle_unused_attribute,
15853         handle_transparanet_union_attribute, handle_aligned_attribute,
15854         handle_deprecated_attribute): Likewise.
15855         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
15856         Likewise.
15857         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
15858         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
15859         build_distinct_type_copy.
15860
15861 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15862
15863         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
15864         attribute.
15865
15866 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15867
15868         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
15869         loads and stores.
15870         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
15871         formerly unnamed patterns.  Redefine using :P for the address.  Remove
15872         explicit length attributes.
15873
15874 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15875
15876         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
15877         New functions.
15878         (single_reachable_address): Use them.
15879         (schedule_sm): Add dump.
15880         (is_call_clobbered_ref): New function.
15881         (determine_lsm_reg): Check whether the reference is call clobbered.
15882         Only work for gimple_reg_type values.
15883
15884 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15885
15886         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
15887         $31 store insns.  Redefine using :GPR.
15888
15889 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15890
15891         * config/mips/mips.md (P): New mode macro.
15892         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
15893         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
15894         Add mode attributes.
15895
15896 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15897
15898         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
15899         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
15900         later constants to cover the gap.
15901         (load, store): New mode attributes.
15902         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
15903         Use new unspec constants.
15904
15905 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15906
15907         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
15908         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
15909         to use register_operand rather than uns_arith_operand as the predicate
15910         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
15911         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
15912         Redefine using :GPR.  Make same predicate change here.  Extend the
15913         commutativity of operands 1 and 2 from the SImode version to the
15914         DImode one.
15915         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
15916         but with no predicate changes.
15917         (*nor[sd]i3): Redefine using :GPR.
15918
15919 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15920
15921         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
15922         noreturn functions.
15923
15924 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15925
15926         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
15927         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
15928         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
15929         rather than "%z2" (with a fake const0_rtx for operand 2).
15930         (ffs[sd]i2): Redefine using :GPR.
15931         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
15932
15933 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15934
15935         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
15936
15937 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15938
15939         * config/mips/mips.md (any_extend): New code macro.
15940         (u, su): New code attributes.
15941         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
15942         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
15943         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
15944         (*{s,u}mul_acc_di): Redefine using any_extend.
15945         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
15946         to reflect real insn names.
15947         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
15948         with an any_extend template.
15949         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
15950         Add '*' to name.
15951
15952 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15953
15954         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
15955         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
15956         (mul[sd]i3_r4000): Redefine using :GPR.
15957         (mulsi3_mult3): Don't check TARGET_MAD separately.
15958         (muldi3_mult3): Moved after mulsi_mult3.
15959
15960 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15961
15962         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
15963         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
15964         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
15965         (TARGET_GAS, TARGET_MIPS_AS): Delete.
15966         (TARGET_GPWORD): Define to true for n32 on IRIX.
15967         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
15968         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
15969         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
15970         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
15971         (MDEBUG_ASM_SPEC): Delete, folding into...
15972         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
15973         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
15974         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
15975         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
15976         to define asm_abi_default_spec.
15977         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
15978         (TARGET_ASM_SELECT_SECTION): Delete.
15979         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
15980         for non-mips16 code, removing previous workaround for SGI assemblers.
15981         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
15982         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
15983         (override_options): Remove !TARGET_GAS and !have_named_sections code.
15984         (print_operand): Fold TARGET_GAS conditionals into asm strings.
15985         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
15986         ASM_STABS_OP and ASM_STABN_OP.
15987         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
15988         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
15989         (mips_output_function_prologue): Remove !TARGET_GAS code.
15990         (mips_select_rtx_section): Remove !have_named_sections code.
15991         (mips_select_section): Delete.
15992         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
15993         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
15994         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
15995         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
15996         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
15997         * config/mips/windiss.h (ASM_SPEC): Likewise.
15998
15999 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16000
16001         * read-rtl.c (map_value, mapping, macro_group): New structures.
16002         (BELLWETHER_CODE): New macro.
16003         (modes, codes, bellwether_codes): New variables.
16004         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
16005         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
16006         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
16007         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
16008         (add_map_value, initialize_macros): New functions.
16009         (def_hash, def_hash_eq_p): Generalize to anything that points to,
16010         or starts with, a char * field.
16011         (find_macro, read_mapping, check_code_macro): New functions.
16012         (read_rtx_1): New, split out from read_rtx.  Handle the new
16013         define_{mode,code}_{macro,attr} constructs.  Use find_macro
16014         to parse the name of a code or mode.  Use BELLWETHER_CODE to
16015         extract the format and to choose a suitable code for rtx_alloc.
16016         Modify recursive invocations to use read_rtx_1.
16017         (read_rtx): Call initialize_macros.  Apply code and mode macros
16018         to the rtx returned by read_rtx_1.  Cache everything after the
16019         first macro expansion for subsequent read_rtx calls.
16020         * doc/md.texi: Document new .md constructs.
16021         * config/mips/mips.md (GPR): New mode macro.
16022         (d, si8_di5): New mode attributes.
16023         (any_cond): New code macro.
16024         (add[sd]i3): Redefine using :GPR.
16025         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
16026         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
16027         previously unnamed MIPS16 patterns.
16028         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
16029         lines.  Don't match (plus (const_int 0) ...).
16030         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
16031         Use a define_split to generate the addition.
16032         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
16033         (subsi3_internal): Delete.
16034         (*subsi3_extended): Renamed from subsi3_internal_2.
16035         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
16036         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
16037         using an any_cond template.
16038
16039 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16040
16041         * read-rtl.c (read_rtx): Tidy use of format_ptr.
16042
16043 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16044
16045         * read-rtl.c (string_obstack): New file-scope variable.
16046         (read_string, read_quoted_string, read_braced_string)
16047         (read_escape): Remove obstack parameter and use string_obstack instead.
16048         (read_rtx): Remove function-local rtl_obstack and initialize
16049         string_obstack instead.  Update call to read_string.
16050
16051 2004-08-22  Andrew Pinski  <apinski@apple.com>
16052
16053         PR c/15262
16054         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
16055         expression is not constant.
16056         (c_finish_return): Do not go through INDIRECT_REF when looking
16057         for the inner expression of an ADDR_EXPR for warning about.
16058
16059 2004-08-22  Richard Henderson  <rth@redhat.com>
16060
16061         PR 17075
16062         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
16063         create new blocks and fall through.
16064         (expand_gimple_basic_block): Update to match.
16065
16066 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
16067
16068         * reload.c (find_reloads_address): Make return value tri-state.
16069         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
16070         (find_reloads): Assume that reloaded addresses match 'o' or
16071         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
16072         returned 1 (not -1).  Omit optional reloads for address operands
16073         only if find_reloads_address returned 1 (not -1).
16074
16075         * config/s390/s390.c (legitimize_reload_address): New function.
16076         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
16077         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
16078         legitimize_reload_address.
16079
16080 2004-08-22  Richard Hendersion  <rth@redhat.com>
16081
16082         * tree.h (SAVE_EXPR_RESOLVED_P): New.
16083         * gimplify.c (gimplify_save_expr): Use it.
16084         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
16085         on the temporary variable.
16086
16087 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
16088
16089         * fold-const.c (rtl_expr_nonnegative_p): Delete.
16090         * tree.h (rtl_expr_nonnegative_p): Remove.
16091
16092 2004-08-22  Steven Bosscher  <stevenb@suse.de>
16093
16094         * config/i386/ppro.md (ppro_complex_insn): Add missing check
16095         for cpu==pentiumpro.
16096
16097         * combine.c (struct reg_stat): Fix comment typo.
16098
16099 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16100
16101         * c-tree.h (c_sizeof_nowarn): Remove.
16102
16103 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
16104
16105         * c-decl.c (set_array_declarator_type): Rename to
16106         set_array_declarator_inner.
16107         (build_c_parm, build_attrs_declarator, build_function_declarator):
16108         New functions.
16109         (make_pointer_declarator): Call build_attrs_declarator.
16110         * c-tree.h (set_array_declarator_type): Rename to
16111         set_array_declarator_inner.
16112         (build_c_parm, build_attrs_declarator, build_function_declarator):
16113         New prototypes.
16114         * c-parse.in (after_type_declarator,
16115         parm_declarator_starttypename, parm_declarator_nostarttypename,
16116         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
16117         firstparm): Use these functions
16118
16119 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
16120
16121         * c-decl.c (build_array_declarator, set_array_declarator_type,
16122         start_decl, grokdeclarator, grokparms): Change boolean parameters
16123         to type bool.
16124         * c-tree.h (build_array_declarator, set_array_declarator_type,
16125         start_decl): Update prototypes.
16126         * c-decl.c, c-parse.in: All callers changed.
16127
16128 2004-08-21  Mike Stump  <mrs@apple.com>
16129
16130         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
16131         (darwin_fix_and_continue): Likewise.
16132         (darwin_fix_and_continue_switch): Likewise.
16133         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
16134         (darwin_fix_and_continue): Likewise.
16135         (darwin_fix_and_continue_switch): Likewise.
16136
16137 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
16138
16139         PR  c++/16030
16140         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
16141         Remove, merging into ...
16142         (gen_stdcall_or_fastcall_suffix): New function, returning tree
16143         rather than const char*, and accepting additional parameter.
16144         Don't add suffix to '*'-prefixed symbols or variadic functions.
16145         (i386_pe_encode_section_info): Adjust for call to new function.
16146         Call change_decl_assembler_name.
16147
16148 2004-08-20  Mike Stump  <mrs@apple.com>
16149
16150         * config/darwin.c (machopic_indirect_data_reference): Mark
16151         stubs as defined.
16152         * config/386/386.c (darwin_local_data_pic): Add.
16153         (legitimate_constant_p): Reorder so that PLUS handling runs
16154         before darwin_local_data_pic to match the ordering in
16155         legitimate_pic_address_disp_p and so that MINUS runs after
16156         darwin_local_data_pic as otherwise the darwin_local_data_pic
16157         logic can be skipped, which would be very bad.
16158         (legitimate_pic_address_disp_p): Move from from here to
16159         darwin_local_data_pic so it can be reused.
16160
16161 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
16162
16163         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
16164         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
16165         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
16166         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
16167         (RS6000_ABI_NAME): Define as "linux".
16168         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
16169         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
16170         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
16171         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
16172         * config/rs6000/rs6000.c (dot_symbols): New global var.
16173         (rs6000_output_function_entry): New function, modified for
16174         !DOT_SYMBOLS..
16175         (print_operand <case 'z'>): ..extracted from here.
16176         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
16177         (rs6000_output_function_epilogue): Likewise.
16178         (rs6000_elf_declare_function_name): Likewise.
16179         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
16180         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
16181         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
16182         * configure: Regenerate.
16183         * config.in: Regenerate.
16184
16185 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
16186
16187         * reload.c (find_reloads_address): Fix thinko in previous change.
16188
16189         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
16190         a CONST_INT.
16191
16192 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
16193
16194         PR rtl-optimization/17099
16195         * combine.c (force_to_mode): Check if inner_mask has any bits set
16196         outside of GET_MODE (x) instead of op_mode.
16197
16198 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
16199
16200         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
16201         fragment.
16202         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
16203         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
16204         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
16205         architecture.
16206         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
16207         configurations.
16208         * config/arm/t-symbian: New file.
16209
16210 2004-08-20  Andrew Pinski  <apinski@apple.com>
16211
16212         * regrename.c (kill_value_regno): ANSIfy.
16213
16214 2004-08-20  Dale Johannesen  <dalej@apple.com>
16215
16216         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
16217
16218 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
16219
16220         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
16221         (kill_value_regno): New function, derived from kill_value.
16222         (kill_value): Update.
16223         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
16224
16225 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
16226
16227         Fix PR tree-optimization/17111
16228         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
16229         of non-value_handles.
16230         (bitmap_set_contains): All constants are in every set.
16231
16232 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
16233
16234         * fold-const.c (round_up, round_down): Use build_int_cst.
16235         Optimize common case.
16236
16237 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
16238             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16239
16240         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
16241         one_only_data_section): Rename to som_readonly_data_section,
16242         som_one_only_readonly_data_section and som_one_only_data_section.
16243         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
16244         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
16245         conditional defines.
16246         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
16247         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
16248         string values.
16249         (pa_select_section): Use renamed section functions.
16250         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
16251         SOM_READONLY_DATA_SECTION_FUNCTION,
16252         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
16253         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
16254         Define here ...
16255         * config/pa/som.h: ... not here.
16256         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
16257         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
16258         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
16259         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
16260         (READONLY_DATA_SECTION): Use som_readonly_data_section.
16261
16262 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
16263
16264         * fold-const.c (int_const_binop): Don't generate non-overflowing
16265         size-types specially.
16266         (fold_convert_const): Likewise.
16267
16268         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
16269         clear cache on copied sizetype.
16270
16271 2004-08-20  Ben Elliston  <bje@au.ibm.com>
16272
16273         * configure.ac: Don't escape apostrophe in --enable-coverage help.
16274         * configure: Regenerate.
16275
16276 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
16277
16278         PR 5620
16279         * gcc.c (struct stat input_stat): Don't define if
16280         HOST_LACKS_INODE_NUMBERS
16281         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
16282         than stat to determine if temp file is same as input file.
16283         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
16284         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
16285
16286 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
16287
16288         * configure.ac (mips*-*-*): Print an error if not using GAS.
16289         * configure: Regenerated.
16290         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
16291         comments about buggy MIPSpro assemblers.
16292         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
16293         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
16294         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
16295         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
16296         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
16297         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
16298         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
16299         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
16300         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
16301         of more general IRIX 6 definitions.
16302         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
16303         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
16304         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
16305         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
16306         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
16307         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
16308         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
16309         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
16310         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
16311         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
16312         (LINK_SPEC): Move most of definition to iris.h.
16313         (SUBTARGET_LINK_SPEC): New macro.
16314         (IRIX_STARTFILE_SPEC): Fold into...
16315         (STARTFILE_SPEC): ...here.
16316         (IRIX_ENDFILE_SPEC): Fold into...
16317         (ENDFILE_SPEC): ...here.
16318         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
16319         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
16320         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
16321         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
16322         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
16323         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
16324         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
16325         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
16326         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
16327         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
16328         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
16329         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
16330         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
16331         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
16332         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
16333         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
16334         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
16335         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
16336         (TARGET_IRIX6): Define to 1.
16337         (DRIVER_SELF_SPECS): Define.
16338         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
16339         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
16340         (SUBTARGET_LINK_SPEC): New macro.
16341         (IRIX_STARTFILE_SPEC): Fold into...
16342         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
16343         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
16344         (LIB_SPEC, LIBGCC_SPEC): Use them.
16345         (LIB_SPEC): Remove !mabi=* case.
16346         (IRIX_ENDFILE_SPEC): Fold into...
16347         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
16348         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
16349         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
16350         (TARGET_IRIX6): New macro.
16351         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
16352         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
16353         (LABEL_AFTER_LOC): Delete.
16354         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
16355         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
16356         (mips_build_builtin_va_list): Check TARGET_IRIX6.
16357         (override_options): Remove TARGET_SGI_O32_AS-related code.
16358         (irix_output_external_libcall): Make static.
16359         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
16360         LABEL_AFTER_LOC.
16361         (mips_file_start): Tidy guard for ABI sections.  Remove use of
16362         ABICALLS_ASM_OP; use .abicalls instead.
16363         (mips_output_aligned_decl_common, mips_declare_object_name)
16364         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
16365         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
16366         .globl foo .text directives.
16367         (irix_asm_named_section_1, irix_asm_named_section)
16368         (irix_section_align_entry, irix_section_align_htab)
16369         (irix_orig_asm_out_file, irix_section_align_entry_eq)
16370         (irix_section_align_entry_hash, irix_asm_output_align)
16371         (irix_file_start, irix_section_align_1, copy_file_data)
16372         (irix_file_end, irix_section_type_flags): Delete.
16373         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
16374         Use standard section syntax.  Remove protective "jr $31".
16375         (__gcc_fini): Likewise .gcc_fini.
16376         * config/mips/irix-crtn.asm: Adjust sections accordingly.
16377         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
16378         iris5gas.h.
16379         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
16380         from t-irix-gld.
16381         (EXTRA_MULTILIB_PARTS): Define.
16382         * config/mips/t-iris6: Remove bogus comment.
16383         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
16384         * config/mips/iris5gas.h, config/mips/iris5gld.h,
16385         config/mips/iris6gas.h, config/mips/iris6gld.h,
16386         config/mips/t-iris5-as, config/mips/t-iris5-gas
16387         config/mips/t-irix-gld: Delete.
16388         * config/mips/iris.h: New file.
16389         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
16390
16391 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
16392
16393         * postreload.c (reload_cse_move2add): Allow any condjump, but check
16394         that the implicit set isn't clobbered in the jump insn.
16395
16396 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
16397
16398         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
16399         * optabs.c (init_optabs): Don't check it.
16400         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
16401         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
16402
16403 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
16404
16405         * config/s390/s390.md (s390_warn_framesize_string)
16406         (s390_warn_dynamic_string, s390_stack_size_string)
16407         (s390_stack_guard_string): New global string variables.
16408         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
16409         (s390_stack_guard): New global variables.
16410         (override_options): Added checks for the new options.
16411         (s390_emit_prologue): Emit stack check and trap code and perform
16412         compile time stack size checking.
16413
16414         * config/s390/s390.h (TARGET_OPTIONS): Added new options
16415         "warn-framesize", "warn-dynamicstack", "stack-size" and
16416         "stack-guard".
16417
16418         * doc/invoke.texi: Added documentation for the new options.
16419
16420 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
16421
16422         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
16423         to eliminate warning.
16424         (linear_search_fdes): Declare p as unsigned.
16425         (binary_search_mixed_encoding_fdes): Likewise.
16426         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
16427         to eliminate warning.
16428         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
16429         type cast.
16430
16431 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
16432
16433         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
16434         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
16435         instead of one.  Check for strictly legitimate address.
16436         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
16437         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
16438
16439 2004-08-19  Eric Christopher  <echristo@redhat.com>
16440
16441         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
16442         * langhooks.h (unsave_expr_now): Ditto.
16443         * tree.h (unsave_expr_1): Remove prototype.
16444         (lhd_unsave_expr_now): Rename to unsave_expr_now.
16445         * tree-inline.c (unsave_expr_1): Move here
16446         from tree.c. Make static.
16447         (unsave_expr_now): Rename from lhd_unsave_expr_now.
16448         * tree-sra.c: Fix up for rename.
16449         * tree-ssa-copy.c: Ditto.
16450         * tree-eh.c: Ditto.
16451         * tree.c (unsave_expr_1): Move to tree-inline.c.
16452
16453 2004-08-19  Caroline Tice  <ctice@apple.com>
16454
16455         * config/i386/cygming.h (switch_to_section):  Fix typo (change
16456         in_unlikely_text_section to in_unlikely_executed_text).
16457
16458 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
16459
16460         * vec.h (VEC_lower_bound): New macro.
16461
16462 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
16463
16464         PR target/16446
16465         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
16466         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
16467         treat each ABI separately.  Deal with n32/n64 complex float arguments.
16468         (function_arg): Add associated complex handling here.
16469
16470 2004-08-19  Richard Henderson  <rth@redhat.com>
16471
16472         * config/arm/arm.c (arm_gen_load_multiple): Use
16473         adjust_automodify_address.  Take base memory and offset instead
16474         of unchanging/struct/scalar bits.
16475         (arm_gen_store_multiple): Likewise.
16476         (arm_gen_movmemqi): Use adjust_automodify_address.
16477         * config/arm/arm-protos.h: Update decls.
16478         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
16479         (store_multiple): Similarly.
16480
16481 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
16482
16483         * regclass.c (globalize_reg): Update call_really_used_regs.
16484
16485 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16486
16487         * doc/invoke.texi (integer-share-limit): Document.
16488
16489         * tree.h (TYPE_CACHED_VALUES_P): New.
16490         (TYPE_CACHED_VALUES): New.
16491         (TYPE_ORIG_SIZE_TYPE): Adjust.
16492         * tree.def (INTEGER_CST): Update documentation.
16493         * tree.c: Inlcude params.h.
16494         (build_int_cst): Cache small values.
16495         (build_type_copy): Do not copy the value cache.
16496         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
16497         unneeded zeroing.
16498         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
16499         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
16500         cache.
16501         * fold-const.c (force_fit_type): Copy value when setting
16502         overflows.
16503         (int_const_binop): Likewise.
16504         * stor-layout.c: Include params.h
16505         (set_sizetype): Create values cache.
16506         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
16507         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
16508         * params.h (INTEGER_SHARE_LIMIT): New.
16509         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
16510
16511 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
16512
16513         * gimplify.c (gimplify_minimax_expr): Remove.
16514         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
16515
16516 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
16517
16518         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
16519         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
16520
16521 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
16522
16523         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
16524
16525 2004-08-18  Andrew Pinski  <apinski@apple.com>
16526
16527         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
16528
16529 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
16530
16531         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
16532         (__aeabi_ul2f): Likewise.
16533
16534 2004-08-18  Richard Henderson  <rth@redhat.com>
16535
16536         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
16537         move to rtl completely.
16538         (struct meminsnbuf, xtensa_emit_block_move): Remove.
16539         (xtensa_find_mode_for_size): Remove.
16540         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
16541         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
16542
16543 2004-08-18  Richard Henderson  <rth@redhat.com>
16544
16545         * config/mcore/mcore.c (mode_from_align): Remove DImode.
16546         (block_move_sequence): Rewrite to use adjust_address.
16547         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
16548         Return boolean indicating success/failure.
16549         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
16550         * config/mcore/mcore.md (movmemsi): Update to match.
16551
16552 2004-08-18  Mike Stump  <mrs@apple.com>
16553
16554         * doc/invoke.texi (-mfix-and-continue): Add support for
16555         fast turn around debugging.
16556         (-ffix-and-continue): Likewise.
16557         (-mindirect-data): Likewise.
16558         (-findirect-data): Likewise.
16559         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
16560         (indirect_data): Likewise.
16561         (machopic_data_defined_p): Likewise.
16562         (machopic_output_indirection): Likewise.
16563         (darwin_encode_section_info): Likewise.
16564         (darwin_fix_and_continue): Likewise.
16565         (darwin_fix_and_continue_switch): Likewise.
16566         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
16567         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
16568         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
16569         (SUBTARGET_OPTIONS): Likewise.
16570         (darwin_fix_and_continue): Likewise.
16571         (darwin_fix_and_continue_switch): Likewise.
16572         (TARGET_FIX_AND_CONTINUE): Likewise.
16573         * config/rs6000.c (rs6000_emit_prologue): Likewise.
16574
16575 2004-08-19  Steven Bosscher  <stevenb@suse.de>
16576
16577         * basic-block.h (struct edge_def): Remove crossing_edge.
16578         (EDGE_CROSSING): New define.
16579         (EDGE_ALL_FLAGS): Update.
16580         * bb-reorder.c (find_traces_1_round, better_edge_p,
16581         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
16582         find_jump_block, fix_crossing_conditional_branches,
16583         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16584         Replace all occurences of crossing_edge with an edge flag check
16585         or set/reset.
16586         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16587         try_crossjump_bb): Likewise.
16588         * cfglayout.c (fixup_reorder_chain): Likewise.
16589         * cfgrtl.c (force_nonfallthru_and_redirect,
16590         commit_one_edge_insertion): Likewise.
16591
16592         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
16593         * tree-flow.h (compute_dominance_frontiers): Move prototype...
16594         * basic-block.h:  ...here.
16595         * tree-cfg.c (compute_dominance_frontiers_1,
16596         compute_dominance_frontiers): Move from here...
16597         * cfganal.c: ...to here.  Include timevar.h.
16598
16599 2004-08-18  James E Wilson  <wilson@specifixinc.com>
16600
16601         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
16602         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
16603
16604         * config/mips/mips.md (type): Add frdiv.
16605         (divsf3+1, divsf3+2): Change type to frdiv.
16606         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
16607         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
16608
16609         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
16610         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
16611         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
16612         * config/mips/5000.md (r5k_fdiv_single): Likewise.
16613         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
16614         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
16615         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
16616         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
16617         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
16618         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
16619         Likewise.
16620         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
16621
16622 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
16623
16624         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
16625         get regression tester working again.
16626
16627 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16628
16629         * insn-notes.def, reg-notes.def: New files.
16630         * rtl.h: Use them to define enum insn_note and enum reg_note.
16631         * rtl.c: Use them to define note_insn_name and reg_note_name.
16632         * Makefile.in (RTL_BASE_H): Update.
16633
16634         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
16635         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
16636
16637 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
16638
16639         * arm.c (arm_size_rtx_costs): New function.
16640         (arm_override_options): Use it if optimizing for space.
16641
16642 2004-08-18  Richard Henderson  <rth@redhat.com>
16643
16644         * emit-rtl.c (gen_const_mem): New.
16645         * rtl.h (gen_const_mem): Declare.
16646         * expr.c (do_tablejump): Use it.
16647         * varasm.c (force_const_mem): Likewise.
16648         * config/darwin.c (machopic_indirect_data_reference): Likewise.
16649         (machopic_legitimize_pic_address): Likewise.
16650         * config/arm/arm.c (legitimize_pic_address): Likewise.
16651         * config/i386/i386.c (legitimize_pic_address): Likewise.
16652         (legitimize_tls_address): Likewise.
16653         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16654         * config/ia64/ia64.md (load_fptr): Likewise.
16655         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
16656         * config/pa/pa.c (legitimize_pic_address): Likewise.
16657         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16658         (rs6000_emit_move): Likewise.
16659         * config/s390/s390.c (legitimize_pic_address): Likewise.
16660         (legitimize_tls_address): Likewise.
16661         * config/s390/s390.md (casesi): Likewise.
16662         * config/sh/sh.c (sh_reorg): Likewise.
16663         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
16664         * config/v850/v850.md (casesi): Likewise.
16665
16666         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
16667         * config/sh/sh.c (prepare_move_operands): Remove incorrect
16668         use of MEM_READONLY_P.
16669
16670 2004-08-18  Steven Bosscher  <stevenb@suse.de>
16671
16672         * Makefile.in (OBJS-common): Add postreload-gcse.c.
16673         Add new postreload-gcse.o.
16674         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
16675         (lookup_as_function, insert, rehash_using_reg, use_related_value,
16676         equiv_constant): Use SAFE_HASH instead of safe_hash.
16677         (exp_equiv_p): Export.  Add for_gcse argument when comparing
16678         for GCSE.
16679         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
16680         find_comparison_args, fold_rtx, cse_insn): Update callers.
16681         (hash_rtx): New function derived from old canon_hash and bits
16682         from gcse.c hash_expr_1.
16683         (canon_hash_string): Rename to hash_rtx_string.
16684         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
16685         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
16686         (cselib_lookup): Update this caller.
16687         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
16688         Make static.
16689         (hash_expr): Call hash_rtx.
16690         (ldst_entry): Likewise.
16691         (expr_equiv_p): Call exp_equiv_p.
16692         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
16693         reg_used_on_edge, reg_set_between_after_reload_p,
16694         reg_used_between_after_reload_p, get_avail_load_store_reg,
16695         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
16696         get_bb_avail_insn, hash_scan_set_after_reload,
16697         compute_hash_table_after_reload,
16698         eliminate_partially_redundant_loads, gcse_after_reload,
16699         get_bb_avail_insn, gcse_after_reload_main): Remove.
16700         * postreload-gcse.c: New file, reincarnating most of the above.
16701         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
16702         (gcse_after_reload_main): Update prototype.
16703         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
16704         * passes.c (rest_of_handle_gcse2): Use it.
16705
16706 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16707
16708         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
16709         (pass_loop_done): Likewise.
16710
16711 2004-08-18  Andrew Pinski  <apinski@apple.com>
16712
16713         * config/rs6000/darwin.md: Delete the altivec patterns which are
16714         handled differently now.
16715         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
16716         (macho_correct_pic_di): Likewise.
16717         (call_indirect_nonlocal_darwin64): Likewise.
16718         Delete the save world/saveFP/saveVec patterns.
16719
16720         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
16721         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16722         * config/rs6000/rs6000.md: Include darwin.md.
16723         (builtin_setjmp_receiver): Add DImode case.
16724         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16725         Darwin bits.
16726
16727 2004-08-18  Matt Austern  <austern@apple.com>
16728
16729         Dead code stripping
16730         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
16731         * darwin.c (darwin_file_end): Mark file as potentially strippable.
16732
16733 2004-08-18  Richard Henderson  <rth@redhat.com>
16734
16735         * alias.c (readonly_fields_p): Remove.
16736         (objects_must_conflict_p): Don't call it.
16737         * tree.h (readonly_fields_p): Remove.
16738         * langhooks.h (struct lang_hooks): Remove honor_readonly.
16739         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
16740
16741 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16742
16743         * tree-dfa.c (add_referenced_var): Only global variables are
16744         call-clobbered.
16745         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
16746         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
16747         all pointers dereferenced if the statement dereferences them.
16748         (create_name_tags): Do not create memory tags for pointers
16749         that have PT_ANYTHING set.
16750         Also check if PT_VARS is not empty before creating a name tag.
16751         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
16752         variables that share the same alias set with a pointer that
16753         may point anywhere.
16754         (add_may_alias): Add FIXME comment to remove clobbering
16755         aliased variables and tags.
16756         (replace_may_alias): Likewise.
16757         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
16758         (merge_pointed_to_info): If the original variable has not
16759         points-to information, call set_pt_anything.
16760         (add_pointed_to_var): Do not prevent adding a pointed-to
16761         variable if the pointers is PT_ANYTHING.
16762         If the variable is a global, set PT_GLOBAL_MEM.
16763         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
16764         pointer type only come in PTR+OFFSET flavours.
16765         Always call merge_pointed_to_info on PHI arguments that are
16766         SSA_NAMEs.
16767         (get_nmt_for): Mark call-clobbered tags whose pointer points
16768         to global memory.
16769         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
16770         values.
16771         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
16772         FLAGS.
16773         (add_stmt_operand): Abort if the caller tried to add a killing
16774         definition for a memory tag.
16775         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
16776         unnecessary checks.
16777
16778 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
16779
16780         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
16781         from call_used_regs.  Update call_really_used_regs.
16782         (CALL_REALLY_USED_REGISTERS): Define.
16783         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
16784         Replace call_used_regs with call_really_used_regs.
16785         (calc_live_regs, sh_media_register_for_return): Likewise.
16786         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
16787         * sh.md (return_media): Likewise.
16788
16789 2004-08-18  Andrew Pinski  <apinski@apple.com>
16790
16791         * config/darwin.c (machopic_legitimize_pic_address): Only set
16792         MEM_READONLY_P in the non TARGET_TOC case.
16793
16794 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16795
16796         * rtl.def (NIL): Delete.
16797         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
16798         Tighten the syntax a little.
16799
16800         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
16801         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
16802         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
16803         * config/i386/predicates.md, config/m32r/m32r.h
16804         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
16805         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
16806         * config/sparc/sparc.h, doc/tm.texi:
16807         Replace all occurrences of NIL with UNKNOWN.
16808
16809 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16810
16811         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
16812         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
16813         sequence inline.  Move drop_through_label code into this
16814         block, being the only place it is used.  Adjust comments.
16815
16816 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
16817
16818         * config/rs6000/altivec.md: Add new patterns for calls to
16819         save_world/rest_world functions.
16820
16821         * config/rs6000/rs6000-protos.h: (save_world_operation,
16822         restore_world_operation) new declarations.
16823
16824         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
16825         field added.
16826         (rs6000_stack_info): Set world_save_p field.
16827         (save_world_operation): New function.
16828         (restore_world_operation): New function.
16829         (compute_save_world_info): New function.
16830         (rs6000_stack_info): Call compute_save_world_info.
16831         (rs6000_emit_prologue): Check for world_save_p and generate
16832         pattern to call save_world for saving all non-volatile and
16833         special registers.
16834         (rs6000_emit_epilogue): Check for world_save_p and generate
16835         pattern to call rest_world to restore saved registers.
16836
16837         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
16838         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
16839         (rs6000_reg_names): New entries added for save_world_operation and
16840         restore_world_operation.
16841
16842 2004-08-18  Caroline Tice  <ctice@apple.com>
16843
16844         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
16845         "-freorder-blocks-and-partition" to the flags used in second
16846         stage of profiledbootstrap.
16847         * bb-reorder.c (push_to_next_round_p): Add new variable,
16848         next_round_is_last; set and use variable to make sure, when
16849         partitioning, that the last trace construction round consists
16850         of all (and only) cold basic blocks.
16851         (rotate_loop): Don't copy blocks that end in a section
16852         crossing jump.
16853         (copy_bb): Correctly initialize "partition" of duplicated bb.
16854         (add_unlikely_executed_notes): Add a comment.
16855         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
16856         to make sure, if function contains hot blocks, that the
16857         successors of ENTRY_BLOCK_PTR are hot; also, only look for
16858         crossing edges if the architecture supports named sections.
16859         (mark_bb_for_unlikely_executed_section): Modify to always
16860         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
16861         the basic block note insn.
16862         (fix_crossing_unconditional_branches): Remove extra space.
16863         (fix_edges_for_rarely_executed_code): Modify to only do
16864         partitioning work if the architecture supports named sections.
16865         (reorder_basic_blocks): Modify to only add
16866         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
16867         supports named sections.
16868         * c-common.c (handle_section_attribute): Initialize new global
16869         variable, user_defined_section_attribute, to true if user has
16870         specified one.
16871         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
16872         forward edges that cross section boundaries.
16873         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
16874         partitioning information if the architecture supports named
16875         sections.
16876         * cfgrtl.c (target.h): Add statement to include this.
16877         (rtl_split_block): Make sure newly created bb gets correct
16878         partition.
16879         (try_redirect_by_replacing_jump): Make sure redirection isn't
16880         attempting to cross section boundaries.
16881         (force_nonfallthru_and_redirect): Only do partition fix up if
16882         architecture supports named sections.
16883         (rtl_split_edge): Make sure newly created bb ends up in
16884         correct partition.
16885         (commit_one_edge_insertion): Remove code that incorrectly
16886         updated basic block partition; Make sure partition fix up only
16887         happens if architecture supports named sections and it's not
16888         already done.
16889         (rtl_verify_flow_info_1): Fix if-condition on test/error
16890         condition that fallthru edges are not allowed to cross section
16891         boundaries.
16892         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
16893         * final.c (final_scan_insn): Remove redundant test from if-statement;
16894         change calls to text_section into calls to function_section; add code
16895         to only to partitioning fix up if architecture supports named
16896         sections.
16897         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
16898         partition.
16899         (if_convert): Add targetm.have_named_sections to test.
16900         * output.h (unlikely_section_label): Extern declaration for new global
16901         variable.
16902         (unlikely_text_section_name): Likewise.
16903         * opts.c (decode_options): If both partitioning and DWARF debugging
16904         are turned on, issue a warning that this doesn't work, and change
16905         partitiong to basic block reordering (without hot/cold partitions).
16906         * passes.c (rest_of_handle_final): Re-set new global variable,
16907         user_defined_section_attribute, to false.
16908         (rest_of_compilation): Change options for calling partitioning
16909         function: Don't call if the user defined the section attribute, and
16910         don't call if DECL_ONE_ONLY is true for the current function.
16911         * predict.c (choose_function_section): Return immediately if we
16912         are doing hot/cold partitioning (i.e. let the basic block partitioning
16913         determine where the function belongs).
16914         * reg-stack.c (emit_swap_insn): Add condition to step over
16915         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
16916         * toplev.c (user_defined_section_attribute): New global variable.
16917         * toplev.h (user_defined_section_attribute): Extern declaration
16918         for new global variable.
16919         * varasm.c (unlikely_section_label): New global variable.
16920         (unlikely_text_section_name): New global variable.
16921         (unlikely_text_section): Add code to initialize
16922         unlikely_text_section_name if necessary; modify to use
16923         unlikely_text_section_name and unlikely_section_label; also to use
16924         named_section properly.
16925         (in_unlikely_text_section):  Modify to work correctly with
16926         named_section and to use unlikely_text_section_name.
16927         (named_section):  Add code to work properly with cold section.
16928         (function_section): Clean up if-statement.
16929         * config/darwin.c (darwin_asm_named_section): Return to original
16930         code, removing use of SECTION_FORMAT_STRING.
16931         * config/arm/pe.h (switch_to_section):  Add case for
16932         in_unlikely_executed_text to switch statement.
16933         * config/i386/cygming.h (switch_to_section): Likewise.
16934         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16935         (SECTION_FORMAT_STRING): Likewise.
16936         * config/mcore/mcore.h (switch_to_section): Likewise.
16937         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16938         (SECTION_FORMAT_STRING): Remove.
16939
16940 2004-08-18  Roger Sayle  <roger@eyesopen.com>
16941
16942         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
16943         -ffixed-reg safe, by preserving the meanings of zero and one.
16944         (CALL_USED_REGISTERS): Likewise.
16945         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
16946
16947 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16948
16949         * config/sh/sh.c (split_branches): Check the result of
16950         next_active_insn.
16951         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
16952         Call rtl_register_cfg_hooks.
16953
16954 2004-08-18  Richard Henderson  <rth@redhat.com>
16955
16956         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
16957         * alias.c (true_dependence): Update to match new semantics.
16958         (canon_true_dependence, write_dependence_p): Likewise.
16959         (anti_dependence, output_dependence): Update write_dependence_p args.
16960         (unchanging_anti_dependence): Remove.
16961         * calls.c (purge_mem_unchanging_flag): Remove.
16962         (fixup_tail_calls): Don't call it.
16963         (expand_call): Don't add unchanging memory to function usage.
16964         * expr.c (emit_block_move_via_libcall): Likewise.
16965         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
16966         (get_subtarget): Don't use RTX_UNCHANGING_P.
16967         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
16968         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
16969         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
16970         * cse.c (insert): Don't use RTX_UNCHANGING_P.
16971         (cse_insn, canon_hash): Use MEM_READONLY_P.
16972         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
16973         instead of RTX_UNCHANGING_P.
16974         * explow.c (maybe_set_unchanging): Remove.
16975         * expr.h (maybe_set_unchanging): Remove.
16976         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
16977         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
16978         (assign_parm_setup_reg, expand_function_start): Likewise.
16979         * integrate.c (copy_rtx_and_substitute): Likewise.
16980         * ra-rewrite.c (emit_colors): Likewise.
16981         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
16982         (fixup_match_1): Likewise.
16983         * reload1.c (reload, alter_reg): Likewise.
16984         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
16985         not RTX_UNCHANGING_P.
16986         (equiv_init_varies_p): Likewise.
16987         * loop-invariant.c (check_maybe_invariant): Likewise.
16988         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
16989         * loop.c (note_addr_stored): Likewise.
16990         (prescan_loop): Likewise. Don't check function usage for clobbered
16991         unchanging memory.
16992         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
16993         not RTX_UNCHANGING_P.
16994         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
16995         * varasm.c (force_const_mem): Likewise.
16996         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
16997         * web.c (entry_register): Likewise.
16998         * tree-gimple.h (get_base_address): Move decl ...
16999         * tree.h: ... here.
17000         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
17001
17002         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
17003         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
17004         (alpha_set_memflags): Update to match.
17005
17006         * config/darwin.c (machopic_indirect_data_reference): Set
17007         MEM_READONLY_P instead of RTX_UNCHANGING_P.
17008         (machopic_indirect_call_target): Likewise.
17009         (machopic_legitimize_pic_address): Likewise.
17010         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
17011         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
17012         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
17013         * config/frv/frv.md (symGOT2reg): Likewise.
17014         * config/i386/i386.c (legitimize_pic_address,
17015         legitimize_tls_address, ix86_split_to_parts): Likewise.
17016         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17017         * config/ia64/ia64.md (load_fptr): Likewise.
17018         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
17019         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
17020         * config/mcore/mcore.c (block_move_sequence): Likewise.
17021         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
17022         * config/pa/pa.c (legitimize_pic_address): Likewise.
17023         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17024         (rs6000_emit_move): Likewise.
17025         * config/s390/s390.c (legitimize_pic_address): Likewise.
17026         (legitimize_tls_address): Likewise.
17027         * config/s390/s390.md (casesi): Likewise.
17028         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
17029         * config/sh/sh.md (symGOT2reg): Likewise.
17030         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
17031         * config/v850/v850.md (casesi): Likewise.
17032
17033         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
17034         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
17035         * config/mips/mips.c (mips_restore_gp): Likewise.
17036         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
17037         * config/sh/sh.c (sh_reorg): Likewise.
17038
17039 2004-08-18  Richard Henderson  <rth@redhat.com>
17040
17041         * tree.h (struct tree_decl): Add gimple_formal_temp.
17042         (DECL_GIMPLE_FORMAL_TEMP_P): New.
17043         * gimplify.c (pop_gimplify_context): Clear it.
17044         (lookup_tmp_var): Set it, if is_formal.
17045         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
17046         Use is_gimple_val for VECTOR.  Simplify return value.
17047         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
17048         (gimplify_expr): Likewise.
17049         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
17050         is_gimple_tmp_rhs for clarity.  Update all callers.
17051         (is_gimple_reg_rhs): Simplify logic.
17052         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
17053         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
17054         (is_gimple_formal_tmp_reg): Similarly.
17055         * tree-gimple.h: Update decls.
17056         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
17057         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
17058         * tree-ssa-live.c (var_union, type_var_init): Likewise.
17059
17060 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
17061
17062         * c4x.c (legitimize_operands): Remove calls to
17063         preserve_subexpressions_p.
17064
17065 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
17066
17067         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
17068         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
17069
17070 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
17071
17072         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
17073         Objective-C++ extensions.
17074         * gengtype.c (get_file_basename): Match entire subdirectory name
17075         ('cp', 'objc', 'objcp') rather than just its suffix.
17076         (get_base_file_bitmap): Allow for files to belong to more than one
17077         language.
17078         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
17079         used by more than one front-end.
17080
17081 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
17082
17083         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
17084         avoid use of preserve_subexpressions_p.
17085
17086 2004-08-17  Richard Henderson  <rth@redhat.com>
17087
17088         PR 17051
17089         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
17090
17091 2004-08-17  DJ Delorie  <dj@redhat.com>
17092
17093         * doc/extend.texi: Document new xstormy16 attribute.
17094
17095         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
17096         (xstormy16_splittable_below100_or_register): New.
17097         (combine_bnp): New.
17098         (xstormy16_reorg): New.
17099         (TARGET_MACHINE_DEPENDENT_REORG): Define.
17100
17101         * config/stormy16/stormy16.md (movqi_internal): Make name public.
17102         (movhi_internal): Likewise.
17103         (cbhranchhi): Likewise.
17104         (cbhranchhi_neg): Likewise.
17105         (andhi3): Only allow splittable below100 operands.
17106         (iorhi3): Likewise.
17107         (peephole2): New and/zero_extend->and peephole.
17108         (peephole2): New load/ior/save->set1 peephole.
17109         (peephole2): New load/and/save->clr1 peephole.
17110         (bclrx, bclrx2, bclr7, bclr15): New.
17111         (bsetx, bsetx2, bset7, bset15): New.
17112
17113         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
17114         liberal about acceptable 'B' masks.
17115
17116         * config/stormy16/stormy16-protos.h
17117         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
17118         xstormy16_below100_operand, xstormy16_below100_or_register,
17119         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
17120         (PREDICATE_CODES): Add new predicates.
17121
17122         * config/stormy16/stormy16.c
17123         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
17124         xstormy16_below100_operand, xstormy16_below100_or_register,
17125         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
17126         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
17127         (xstormy16_legitimate_address_p): Allow below100 symbols.
17128         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
17129         (xstormy16_expand_move): Leave below100 operands as-is.
17130         (xstormy16_encode_section_info): Encode below100 symbols.
17131         (xstormy16_strip_name_encoding): New.
17132         (xstormy16_print_operand): Print 'b' as shift mask.
17133         (xstormy16_attribute_table): Add below100 attributes.
17134         (xstormy16_handle_below100_attribute): New.
17135
17136         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
17137         (XSTORMY16_SECTION_FUNCTION): New.
17138         (EXTRA_SECTION_FUNCTIONS): Define using the above.
17139         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
17140         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
17141         (ASM_OUTPUT_LABELREF): Define.
17142
17143         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
17144         (movhi_internal): Add below100 support.
17145         (andhi3): Add below100 support.
17146         (iorhi3): Add below100 support.
17147         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
17148
17149 2004-08-17  James E Wilson  <wilson@specifixinc.com>
17150
17151         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
17152         of VOIDmode for comparison code mode.
17153         * config/mips/mips.md: For conditional move patterns, use mode of
17154         first compare operand for comparison mode, instead of VOIDmode.
17155
17156         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
17157         normal and -ffast-math code.
17158
17159 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
17160
17161         PR c++/15871
17162         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
17163
17164 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
17165
17166         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
17167
17168 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
17169
17170         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
17171         for non Darwin targets.
17172         (*call_value_nonlocal_darwin64): Likewise.
17173
17174 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
17175
17176         * config/rs6000/rs6000.c (rs6000_function_value): Check for
17177         altivec mode for altivec return register.
17178
17179 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
17180
17181         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
17182         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
17183         * config/rs6000/rs6000.md: Include darwin.md.
17184         (builtin_setjmp_receiver): Add DImode case.
17185         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
17186         Darwin bits.
17187
17188 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
17189
17190         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
17191         trees.
17192         * tree-vectorizer.h: New File: Same.
17193         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
17194         * common.opt (ftree-vectorize): New flag to enable vectorization.
17195         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
17196         vectorization pass.
17197         * tree-data-ref.h (init_data_ref): Additional argument.
17198         (array_base_name_differ_p): Moved to tree-data-ref.c.
17199         * tree-data-ref.c (array_base_name_differ_p): Revised.
17200         (initialize_data_dependence_relation): Call array_base_name_differ_p
17201         with an extra argument.
17202         (analyze_all_data_dependences): Same.
17203         (init_data_ref): Additional argument is_read to set DR_IS_READ.
17204         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
17205         file.
17206         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
17207         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
17208         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
17209         vectorization pass.
17210         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
17211         (tree_ssa_loop_done): Call scev_finalize.
17212         (tree_vectorize): Define the new vectorization pass.
17213         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
17214         size of the vector they support (until support for multiple vector
17215         sizes is added to the vectorizer).
17216         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
17217         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
17218         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
17219         documentation.
17220
17221 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
17222
17223         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
17224         usage.
17225         (generate_protocol_list, handle_impent): Likewise.
17226
17227 2004-08-17  Roger Sayle  <roger@eyesopen.com>
17228
17229         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
17230         ensure that call_used_regs is a superset of both fixed_regs and
17231         call_really_used_regs.
17232
17233 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
17234
17235         PR target/17019
17236         * arm.md (addsi3_cbranch_scratch): Correct case labels.
17237
17238 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
17239
17240         PR middle-end/17036
17241         * fold-const.c (fold): Check for integer operand when
17242         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
17243         Pinski  <pinskia@physics.uc.edu>.
17244
17245 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
17246
17247         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
17248         No need to check if in a cross configuration.
17249         * configure: Regenerate.
17250
17251         * calls.c (precompute_register_parameters):
17252         Inline preserve_subexpressions_p ().
17253         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
17254         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
17255         Likewise.
17256         * expr.c (get_subtarget): Likewise.
17257         * rtl.h (preserve_subexpressions_p): Remove.
17258         * stmt.c (preserve_subexpressions_p): Remove.
17259
17260         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
17261         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
17262         Abort on gimplified cases.
17263
17264 2004-08-16  James E Wilson  <wilson@specifixinc.com>
17265
17266         * tree.h (VECTOR_FLOAT_TYPE_P): New.
17267         (FLOAT_TYPE_P): Use it.
17268         * c-typeck.c (build_binary_op): After convert calls, check for
17269         check for ERROR_MARK operands.
17270
17271 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
17272
17273         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
17274         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
17275         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
17276         (genobjs static pattern rule): Remove %.c dependency.
17277         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
17278         Rename rules; delete commands; fix dependencies.
17279         (mostlyclean): Do not delete temporary source copies.
17280         * configure.ac: Delete all references to BUILD_PREFIX and
17281         BUILD_PREFIX_1.
17282         * configure: Regenerate.
17283
17284         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
17285         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
17286         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
17287         with #ifndef GENERATOR_FILE so that nothing from those headers
17288         is used.
17289
17290         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
17291
17292 2004-08-16  Adam Nemet  <anemet@lnxw.com>
17293
17294         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
17295
17296 2004-08-16  Andrew Pinski  <apinski@apple.com>
17297
17298         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
17299         extraneous semicolon.
17300
17301 2004-08-16  Devang Patel  <dpatel@apple.com>
17302
17303         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
17304         * print-tree.c (print_node): Print DECL_PRESERVE_P.
17305         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
17306         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
17307         * target.h (struct gcc_target): New member, mark_decl_preserved.
17308         * hooks.c (hook_void_charptr): Rename to ...
17309         (hook_void_constcharptr): ... new name.
17310         * hooks.h (hook_void_charptr): Rename to ..
17311         (hook_void_constcharptr): ... new name.
17312         * tree.h (DECL_PRESERVE_P): New #define.
17313         (struct tree_decl): New member, preserve_flag.
17314         * varasm.c (assemble_start_function): Mark decl preserved.
17315         (assemble_variable): Same.
17316         * darwin.c (darwin_mark_decl_preserved): New function.
17317         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
17318         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
17319         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
17320
17321 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
17322
17323         * c-decl.c (grokdeclarator): Allow for function definition where
17324         innermost declarator has attributes.
17325
17326 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
17327
17328         * except.c (get_exception_filter, build_post_landing_pads,
17329         dw2_build_landing_pads): Use target-specific mode for 'filter'.
17330         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
17331         * target.h (eh_return_filter_mode): New field added.
17332         * targhooks.c (default_eh_return_filter_mode): Defined.
17333         * targhooks.h (default_eh_return_filter_mode): Declared.
17334         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
17335
17336 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
17337
17338         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
17339         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
17340         * configure: Regenerate.
17341
17342 2004-08-16  Stan Shebs  <shebs@apple.com>
17343
17344         Basic support for 64-bit Darwin.
17345         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
17346         (machopic_legitimize_pic_address): Similarly, plus use Pmode
17347         instead of SImode.
17348         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
17349         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
17350         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
17351         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
17352         (PROCESSOR_DEFAULT64): Define.
17353         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
17354         Darwin.
17355         * config/rs6000/rs6000.md: Include darwin.md.
17356         (builtin_setjmp_receiver): Add DImode case.
17357         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
17358         Darwin.
17359         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
17360         (rs6000_emit_move): Add DImode case to Darwin bits.
17361         (machopic_output_stub): Use .quad if 64-bit.
17362         * invoke.texi: Document -m32 and -m64.
17363
17364 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
17365
17366         * doc/extend.texi (AltiVec builtins): Document additional differences
17367         from the Motorola AltiVec PIM.
17368
17369 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
17370
17371         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
17372         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
17373         (struct tree_common): Update public_flag documentation.
17374
17375 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
17376
17377         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
17378         Check for artificial variables, not is_gimple_tmp_var.
17379         * tree-ssa-live.c (var_union): Likewise.
17380
17381 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
17382
17383         * calls.c (load_register_parameters): Remove spurious FIXME token.
17384
17385 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
17386
17387         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
17388         (c-lang.o): Depend on c-objc-common.h.
17389         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
17390         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
17391         * c-lang.c: Include c-objc-common.h.
17392         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
17393         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
17394         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
17395         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
17396         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
17397         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
17398         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
17399         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
17400         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
17401         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
17402         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
17403         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
17404         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
17405         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
17406         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
17407         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
17408         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
17409         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
17410         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
17411         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
17412         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
17413         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
17414         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
17415         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
17416         Move to c-objc-common.h.
17417         * c-objc-common.c: Include c-objc-common.h.
17418         * c-objc-common.h: New file.
17419
17420 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
17421             Andrew Pinski  <pinskia@physics.uc.edu>
17422
17423         PR target/14931
17424         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
17425         style.
17426
17427 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
17428
17429         * tree.h (build_int_cst): New.
17430         (build_int_2): Remove.
17431         * tree.c (build_int_2): Remove.
17432         (build_int_cst): New.
17433         (make_vector_type, build_common_tree_nodes,
17434         build_common_tree_nodes_2): Use build_int_cst.
17435         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
17436         expand_builtin_strpbrk, expand_builtin_fputs,
17437         build_string_literal, expand_builtin_printf,
17438         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
17439         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
17440         fold_builtin_isdigit, simplify_builtin_strstr,
17441         simplify_builtin_strpbrk, fold_builtin_fputs,
17442         simplify_builtin_sprintf): Use build_int_cst.
17443         * c-common.c (start_fname_decls, fix_string_type,
17444         c_common_nodes_and_builtins, c_init_attributes,
17445         shorten_compare): Likewise.
17446         * c-decl.c (complete_array_type,
17447         check_bitfield_type_and_width): Likewise.
17448         * c-lex.c (interpret_integer, lex_charconst): Likewise.
17449         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
17450         * c-pretty-print.c (pp_c_integer_constant): Likewise.
17451         * c-typeck.c (really_start_incremental_init, push_init_level,
17452         set_nonincremental_init_from_string): Likewise.
17453         * calls.c (load_register_parameters): Likewise.
17454         * convert.c (convert_to_pointer): Likewise.
17455         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
17456         build_fn_info_type, build_ctr_info_value, build_gcov_info):
17457         Likewise.
17458         * except.c (init_eh, assign_filter_values, assign_filter_values):
17459         Likewise.
17460         * expmed.c (store_fixed_bit_field, extract_bit_field,
17461         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
17462         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
17463         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
17464         * expr.c (convert_move, emit_group_load, emit_group_store,
17465         expand_assignment, store_constructor, store_field,
17466         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
17467         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
17468         invert_truthvalue, optimize_bit_field_compare,
17469         decode_field_reference, all_ones_mask_p, constant_boolean_node,
17470         fold_div_compare, fold, fold_read_from_constant_string,
17471         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
17472         * function.c (assign_parm_setup_block): Likewise.
17473         * stmt.c (shift_return_value, expand_end_case_type,
17474         estimate_case_costs): Likewise.
17475         * stor-layout.c (layout_type, initialize_sizetypes,
17476         set_min_and_max_values_for_integral_type): Likewise.
17477         * tree-chrec.c (chrec_fold_multiply_poly_poly,
17478         reset_evolution_in_loop): Likewise.
17479         * tree-chrec.h (build_polynomial_chrec): Likewise.
17480         * tree-complex.c (build_replicated_const): Likewise.
17481         * tree-eh.c (honor_protect_cleanup_actions,
17482         lower_try_finally_onedest, lower_try_finally_copy,
17483         lower_try_finally_switch): Likewise.
17484         * tree-mudflap.c (mf_build_string, mx_register_decls,
17485         mudflap_register_call, mudflap_enqueue_constant): Likewise.
17486         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
17487         * tree-pretty-print.c (dump_generic_node): Likewise.
17488         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
17489         Likewise.
17490         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
17491         * tree-ssa-loop-niter.c (number_of_iterations_cond,
17492         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
17493         Likewise.
17494
17495         * config/alpha/alpha.c (alpha_initialize_trampoline,
17496         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
17497         * config/arm/arm.c (arm_get_cookie_size): Likewise.
17498         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
17499         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
17500         * config/i860/i860.c (i860_va_start): Likewise.
17501         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17502         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
17503         mips_gimplify_va_arg_expr): Likewise.
17504         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
17505         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
17506         add_compiler_branch_island): Likewise.
17507         * config/s390/s390.c (s390_va_start): Likewise.
17508         * config/sh/sh.c (sh_va_start): Likewise.
17509         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
17510         Likewise.
17511         * config/xtensa/xtensa.c (xtensa_va_start,
17512         xtensa_gimplify_va_arg_expr): Likewise.
17513
17514         * objc/objc-act.c (build_objc_string_object,
17515         build_objc_symtab_template, init_def_list, init_objc_symtab,
17516         init_module_descriptor, generate_static_references,
17517         build_selector_translation_table, get_proto_encoding,
17518         build_typed_selector_reference, build_selector_reference,
17519         build_next_objc_exception_stuff,
17520         build_method_prototype_list_template, generate_descriptor_table,
17521         generate_protocols, build_protocol_initializer,
17522         build_ivar_list_template, build_method_list_template,
17523         build_ivar_list_initializer, generate_ivars_list,
17524         generate_dispatch_table, generate_protocol_list,
17525         build_category_initializer, build_shared_structure_initializer,
17526         generate_shared_structures, handle_impent,
17527         generate_objc_image_info): Use build_int_cst.
17528
17529 2004-08-15  Ben Elliston  <bje@au.ibm.com>
17530
17531         * vec.h: Comment improvements.
17532
17533 2004-08-14  Roger Sayle  <roger@eyesopen.com>
17534
17535         * c-common.c (shorten_compare, pointer_int_sum,
17536         c_common_truthvalue_conversion, boolean_increment): Replace calls
17537         to build with calls to buildN.
17538         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
17539         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
17540         gimplify_switch_stmt): Likewise.
17541         * c-typeck.c (default_function_array_conversion,
17542         build_component_ref, build_array_ref, build_function_call,
17543         pointer_diff, build_unary_op, build_conditional_expr,
17544         build_compound_expr, build_modify_expr, c_finish_goto_label,
17545         c_finish_goto_ptr, c_finish_return, c_finish_loop,
17546         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
17547         build_binary_op): Likewise.
17548
17549 2004-08-15  Steven Bosscher  <stevenb@suse.de>
17550
17551         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
17552
17553 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17554
17555         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
17556         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
17557         * fixinc/fixincl.x: Rebuilt.
17558
17559 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
17560
17561         * config/mips/mips-protos.h (mips_symbolic_constant_p)
17562         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
17563         (mips_small_data_pattern_p): Declare.
17564         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
17565         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
17566         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
17567         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
17568         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
17569         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
17570         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
17571         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
17572         (pc_or_label_operand, call_insn_operand, move_operand)
17573         (consttable_operand, symbolic_operand, general_symbolic_operand)
17574         (global_got_operand, local_got_operand, stack_operand)
17575         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
17576         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
17577         (mips_small_data_pattern_p): Replace previous small_data_pattern
17578         predicate.  Turn into a bool () (rtx) function.
17579         * config/mips/predicates.md: New file.
17580         * config/mips/mips.md: Include it.  Use the target-independent
17581         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
17582         trap_comparison_operator and equality_op to equality_operator.
17583         Replace uses of small_int with the equivalent const_arith_operand.
17584         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
17585         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
17586         to fcc_reload_operand.
17587         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
17588
17589 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17590
17591         PR libstdc++/17005 partial fix.
17592         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
17593         except when generating ANSI/C89 code.
17594
17595 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
17596
17597         * c-common.c (shorten_compare): Use force_fit_type directly.
17598
17599 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
17600             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
17601             Dave Korn  <dk@artimi.com>
17602
17603         * doc/install.texi (Building): Avoid duplicate reference to GNU
17604         make requirement.
17605         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
17606
17607 2004-08-14  Richard Henderson  <rth@redhat.com>
17608
17609         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
17610         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
17611
17612 2004-08-13  Richard Henderson  <rth@redhat.com>
17613
17614         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
17615         for constant_call_address_operand.
17616         (call_value_pop_1, call_value_1): Likewise.
17617         (sibcall_value_1, call_value_1_rex64): Likewise.
17618
17619 2004-08-13  James E Wilson  <wilson@specifixinc.com>
17620
17621         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
17622         Correct mode from SFmode to DFmode.
17623
17624 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
17625
17626         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
17627         __cstring_object and __image_info sections with the no_dead_strip
17628         attribute.
17629
17630 2004-08-13  Roger Sayle  <roger@eyesopen.com>
17631             David Billinghurst  <David.Billinghurst@riotinto.com>
17632
17633         PR libgfortran/15930
17634         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
17635         * fixinc/fixincl.x: Regenerate.
17636         * fixinc/tests/base/internal/math_core.h: New file.
17637
17638 2004-08-13  Richard Henderson  <rth@redhat.com>
17639
17640         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
17641         (dbxout_function_end): Remove ifdefs for it.
17642         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
17643
17644 2004-08-13  Richard Henderson  <rth@redhat.com>
17645
17646         * Makefile.in (insn-preds.o): Depend on TREE_H.
17647         * genpreds.c (write_insn_preds_c): Include tree.h.
17648         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
17649         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
17650         const48_operand, and_operand, or_operand, mode_width_operand,
17651         mode_mask_operand, mul8_operand, const0_operand,
17652         hard_fp_register_operand, hard_int_register_operand,
17653         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
17654         samegp_function_operand, direct_call_operand, small_symbolic_operand,
17655         global_symbolic_operand, call_operand, symbolic_operand,
17656         dtp16_symbolic_operand, dtp32_symbolic_operand,
17657         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
17658         gottp_symbolic_operand, alpha_comparison_operator,
17659         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
17660         signed_comparison_operator, alpha_fp_comparison_operator,
17661         divmod_operator, fix_operator, aligned_memory_operand,
17662         unaligned_memory_operand, reg_or_unaligned_mem_operand,
17663         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
17664         reg_no_subreg_operand, addition_operation): Move to predicates.md.
17665         (reg_or_const_int_operand): Remove.  Replace all users with
17666         reg_or_cint_operand.
17667         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
17668         (resolve_reload_operand): Split out of aligned_memory_operand.
17669         * config/alpha/alpha-protos.h: Update for exports.
17670         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
17671         * config/alpha/alpha.md: Include predicates.md.
17672         * config/alpha/predicates.md: New file.
17673
17674 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
17675
17676         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
17677         fields with a pointer to the instruction definition.
17678         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
17679         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
17680         (write_attr_case, write_const_num_delay_slots): Update accordingly.
17681         (write_attr_case, write_const_num_delay_slots): Write the name of
17682         an insn next to its case statement.
17683         * genoutput.c (data): Add a filename field.
17684         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
17685         (output_insn_data): Print the location of each insn definition.
17686         * genrecog.c (write_action): Print the name of an insn above
17687         the statement that returns its code.
17688
17689 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
17690
17691         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
17692         * config/libgloss.h: Likewise.
17693         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
17694         * c4x/c4x-modes.def: Likewise.
17695         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
17696         (c4x_rptb_nop_p): Likewise.
17697         (c4x_rptb_valid_p): Likewise.
17698         (c4x_rptb_insert): Likewise.
17699         (c4x_address_conflict): Likewise.
17700         * config/c4x/c4x.md: Likewise.
17701         * config/frv/frv.md: Likewise.
17702         * config/i386/athlon.md: Likewise.
17703         * config/i386/i386.md: Likewise.
17704         * config/i386/predicates.md: Likewise.
17705         * config/ia64/ia64.c: Likewise.
17706         * config/ia64/itanium1.md: Likewise.
17707         * config/ia64/itanium2.md: Likewise.
17708         * config/iq2000/iq2000.md: Likewise.
17709         * config/mcore/mcore.c: Likewise.
17710         * config/mips/mips.c: Likewise.
17711         * config/mips/r3900.h: Likewise.
17712         * config/mips/sb1.md: Likewise.
17713         * config/pa/milli64.S: Likewise.
17714         * config/pa/pa.c: Likewise.
17715         * config/pa/pa.h: Likewise.
17716         * config/rs6000/8540.md: Likewise.
17717
17718 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
17719
17720         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
17721
17722 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
17723
17724         * sh.md (cbranch define_delay) Use cond_delay_slot for
17725         non-anulled condition too.
17726
17727 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17728
17729         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
17730         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17731         any_parallel_operand, lmw_operation, stmw_operation,
17732         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
17733         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
17734         any_parallel_operand.
17735         (return_and_restore_fpregs_{si,di}): Same.
17736
17737 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17738
17739         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
17740         if pred->singleton != PARALLEL, issue a warning and pretend it was.
17741         Also issue a warning for any predicate we don't know about.
17742
17743 2004-08-12  Richard Henderson  <rth@redhat.com>
17744
17745         * config/i386/i386.c (internal_label_prefix): Export.
17746         (internal_label_prefix_len, struct ix86_address,
17747         ix86_decompose_address, maybe_get_pool_constant,
17748         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
17749         memory_address_length): Export.
17750         (any_fp_register_operand, fp_register_operand,
17751         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
17752         x86_64_general_operand, x86_64_szext_general_operand,
17753         x86_64_nonmemory_operand, x86_64_movabs_operand,
17754         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
17755         x86_64_zext_immediate_operand, const_int_1_31_operand,
17756         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
17757         tls_symbolic_operand, global_dynamic_symbolic_operand,
17758         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
17759         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
17760         constant_call_address_operand, const0_operand, const1_operand,
17761         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
17762         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
17763         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
17764         general_no_elim_operand, nonmemory_no_elim_operand,
17765         index_register_operand, q_regs_operand, flags_reg_operand,
17766         non_q_regs_operand, zero_extended_scalar_load_operand,
17767         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
17768         ix86_comparison_operator, ix86_carry_flag_operator,
17769         fcmov_comparison_operator, promotable_binary_operator,
17770         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
17771         mult_operator, div_operator, arith_or_logical_operator,
17772         memory_displacement_operand, cmpsi_operand, long_memory_operand,
17773         aligned_operand): Move to predicates.md as define_predicates.
17774         (tls_symbolic_operand_1): Remove.
17775         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
17776         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
17777         (legitimize_address): Merge tls_symbolic_operand contents.
17778         (ix86_expand_move): Likewise.
17779         * config/i386/i386-protos.h: Update for exports.
17780         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
17781         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
17782         * config/i386/i386.md: Include predicates.md.
17783         * config/i386/predicates.md: New file.
17784
17785 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
17786
17787         PR c++/16924
17788         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
17789         SYMBOL_REF_DECL.
17790         (i386_pe_mark_dllimport): Likewise.
17791         (i386_pe_encode_section_info): Likewise, when overriding
17792         dllimport attribute.
17793
17794 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
17795
17796         * configure.ac: When testing for flex, nm, ar, and bison, check
17797         that they will actually be built.
17798         * configure: Regenerate.
17799
17800 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
17801
17802         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
17803         (MOVE_MAX_PIECES): Define.
17804
17805 2004-08-12  Devang patel  <dpatel@apple.com>
17806
17807         * dbxout.c (dbxout_begin_prologue): New function.
17808         (dbx_debug_hooks): Use new begin prologue hook.
17809         (dbxout_function_end): Emit N_ENSYM.
17810         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
17811
17812 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
17813
17814         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
17815         argument is float*.
17816
17817         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
17818         for vec_dss.
17819
17820         * doc/extend.texi (AltiVec builtins): Fix description for recent
17821         changes.  Update operation list to match current support.
17822
17823 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
17824
17825         * config/s390/s390.c (struct s390_frame_layout): New struct as element
17826         of struct machine_function.
17827         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
17828         changed all uses.
17829         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
17830         changed all uses.
17831         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
17832         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
17833         (s390_frame_area, s390_register_info): New functions.
17834         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
17835         for base register.
17836         (s390_return_addr_rtx, s390_return_address_offset)
17837         (s390_va_start, s390_gimplify_va_arg)
17838         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
17839         layouts.
17840         (s390_frame_info): Functionality partly moved to s390_register_info.
17841         Made adaptions for new stack layout.
17842         (save_gprs, restore_gprs): Changed meaning of second parameter and
17843         adapted all callers.
17844
17845         * config/s390/s390.h (s390_backchain_string): New global variable.
17846         (MASK_BACKCHAIN): Removed definition.
17847         (TARGET_BACKCHAIN): Changed check.
17848         (TARGET_KERNEL_BACKCHAIN): New macro.
17849         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
17850         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
17851         "kernel-backchain".
17852         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
17853
17854         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
17855         as condition.  Adjusted for new stack layout.
17856
17857         * doc/invoke.texi: Added documentation for new option
17858         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
17859         "-mno-backchain".
17860
17861 2004-08-12  Paul Brook  <paul@codesourcery.com>
17862
17863         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
17864         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
17865
17866 2004-08-12  David Daney  <ddaney@avtrex.com>
17867
17868         * java/gcj.texi:  Add subsection on signal usage.
17869
17870 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17871
17872         * expr.c (move_by_pieces): Set alignment for move to minimum of
17873         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
17874         alignment, but not less than the original alignment.
17875         (move_by_pieces_ninsns): Same.
17876         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
17877         (store_by_pieces_1): Same.
17878
17879 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
17880
17881         PR tree-optimization/16867
17882         * tree.c (is_global_var): New function.
17883         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
17884         Call is_global_var.
17885         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
17886         Update all users.
17887         (is_global_var): Declare.
17888         * tree-dfa.c (dump_variable): Display global and addressable
17889         attributes.
17890         (add_referenced_var): Clarify documentation when marking
17891         variables call-clobbered.
17892         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
17893         instead of needs_to_live_in_memory.
17894         (mark_call_clobbered): If the variable is a tag, mark it
17895         DECL_EXTERNAL.
17896         * tree-gimple.c (is_gimple_reg): Don't check for
17897         TREE_ADDRESSABLE.
17898         (is_gimple_non_addressable): Likewise.
17899         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
17900         needs to be marked call-clobbered.
17901         (setup_pointers_and_addressables): Call is_global_var instead
17902         of needs_to_live_in_memory.
17903         * tree-ssa-dce.c (need_to_preserve_store): Remove.
17904         Update all users with is_global_var.
17905         (mark_stmt_if_obviously_necessary): Fix processing of aliased
17906         stores.  Don't check the virtual definitions.  Rather, check
17907         whether the store is going into global memory.
17908         (find_obviously_necessary_stmts): Get the symbol from the PHI
17909         result.
17910         * tree-ssa-operands.c (get_call_expr_operands): Do not add
17911         clobbering may-defs if the call does not have side effects.
17912
17913 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
17914
17915         PR c++/16276
17916         * output.h (default_function_rodata_section,
17917         default_no_function_rodata_section): New prototypes.
17918         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
17919         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17920         (TARGET_ASM_OUT): Add it.
17921         * varasm.c (default_function_rodata_section,
17922         default_no_function_rodata_section): New functions.
17923         * final.c (final_scan_insn): Call
17924         targetm.asm_out.function_rodata_section instead of
17925         readonly_data_section.
17926         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17927         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17928         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17929         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17930         Likewise.
17931         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17932         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17933         Likewise.
17934         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17935         Likewise.
17936         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17937         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17938         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
17939
17940 2004-08-12  Paul Brook  <paul@codesourcery.com>
17941
17942         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
17943         frame info.
17944         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
17945         DWARF2_UNWIND_INFO.
17946
17947 2004-08-12  Ben Elliston  <bje@au.ibm.com>
17948
17949         PR target/16286
17950         * config/rs6000/altivec.h: Change vector to __vector throughout.
17951         (Except for the `vector' macro itself).
17952
17953 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17954
17955         * genpreds.c: Add capability to generate predicate bodies as
17956         well as function prototypes.  Write function prototypes for
17957         the generic predicates too.
17958         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
17959         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
17960         (write_match_code, write_predicate_expr, write_one_predicate_function)
17961         (parse_option): New functions.
17962         (output_predicate_decls): Delete.
17963         (main): Read the machine description, process DEFINE_PREDICATE or
17964         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
17965         as appropriate.
17966
17967         * genrecog.c (struct decision_test): Replace index with
17968         struct pred_data pointer.
17969         (next_index): Remove, unused.
17970         (pred_table, preds, special_mode_pred_table): Delete.
17971         (compute_predicate_codes, process_define_predicate): New functions.
17972         (validate_pattern, add_to_sequence, write_switch): Update for
17973         new data structures.
17974         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17975         Check both error_count and have_error.
17976
17977         * gensupport.c (in_fname, first_predicate): New globals.
17978         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
17979         (predicate_table, last_predicate, old_pred_table)
17980         (old_special_pred_table): New statics.
17981         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
17982         (add_predicate, init_predicate_table): New functions.
17983         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17984         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
17985         it or max_include_len.  Call init_predicate_table.
17986         (read_rtx): Run the predicate queue after the attribute queue
17987         but before all the others.
17988         * gensupport.h (in_fname, struct pred_data, first_predicate)
17989         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
17990         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
17991         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
17992         * dummy-conditions.c: Don't include bconfig.h, system.h,
17993         coretypes.h, tm.h, or system.h.  Do include stddef.h.
17994         Duplicate declaration of struct c_test from gensupport.h.
17995
17996         * Makefile.in (OBJS-common): Add insn-preds.o.
17997         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
17998         (insn-preds.c, insn-preds.o): New rules.
17999         (s-preds): Also generate insn-preds.c.
18000         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
18001         Update dependencies.
18002         (print-rtl.o, print-rtl1.o): Correct dependencies.
18003
18004         * recog.h: Delete prototypes of predicate functions.
18005
18006         * doc/md.texi (Predicates): New section with complete
18007         documentation of operand/operator predicates.  Remove some
18008         incomplete documentation of predicates from other places.
18009         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
18010         PREDICATE_CODES; indicate that both are deprecated in favor
18011         of define_predicate/define_special_predicate.
18012
18013         * config/ia64/ia64.c: All predicate function definitions moved
18014         to ia64.md, except
18015         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
18016         (ia64_expand_load_address, ia64_expand_move):
18017         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
18018
18019         * config/ia64/ia64.md: All predicates now defined here.
18020         (symbolic_operand): Is now a special predicate.
18021
18022         * config/ia64/ia64.h: Declare ia64_section_threshold.
18023         (PREDICATE_CODES): Delete.
18024
18025 2004-08-12  Richard Henderson  <rth@redhat.com>
18026
18027         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
18028         * c-semantics.c (add_stmt): Set it.
18029         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
18030         before instantiating a variable sized type.
18031
18032 2004-08-12  Richard Henderson  <rth@redhat.com>
18033
18034         * stor-layout.c (round_up, round_down): Move ...
18035         * fold-const.c (round_up, round_down): ... here.  Use
18036         multiple_of_p to avoid any arithmetic at all.
18037
18038 2004-08-12  Richard Henderson  <rth@redhat.com>
18039
18040         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
18041         (gimplify_init_ctor_preeval_1): New.
18042         (gimplify_init_ctor_preeval): New.
18043         (gimplify_init_ctor_eval): New.
18044         (gimplify_init_constructor): Use them.  Always gimplify the LHS
18045         object first.
18046
18047 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
18048
18049         (This patch is part of merge of objc-improvements-branch
18050         into mainline.)
18051
18052         * doc/frontends.texi: Mention Objective-C++ in addition to
18053         Objective-C.
18054         * doc/install.texi: Add 'obj-c++' to list of configurable
18055         languages.
18056         * doc/invoke.texi: Rename Objective-C option headings to
18057         indicate they also apply to Objective-C++.  List file
18058         extensions for Objective-C++ sources.  Mention that
18059         ObjC and ObjC++ compilations may also use C and C++ options,
18060         respectively.  Point users to doc/standards.texi for
18061         further info on ObjC and ObjC++.
18062         * doc/sourcebuild.texi: Mention the objcp/ directory and
18063         the Objective-C++ sources it contains.
18064         * doc/standards.texi: Update link to Apple ObjC site;
18065         add link to gcc readings.html WWW doc.
18066
18067 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
18068
18069         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
18070         and 2004-07-14 changes.
18071
18072 2004-08-12  Paul Brook  <paul@codesourcery.com>
18073
18074         * doc/invoke.texi: Fix typo.
18075
18076 2004-08-11 Devang Patel  <dpatel@apple.com>
18077
18078         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
18079         and -no_dead_strip_inits_and_terms.
18080         (LINK_SPEC): Same.
18081         * doc/invoke.texi (Darwin Options): Document -dead_strip and
18082         -no_dead_strip_inits_and_terms.
18083
18084 2004-08-11  Paul Brook  <paul@codesourcery.com>
18085
18086         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
18087         (arm_load_pic_register): ... to this.
18088         * config/arm/arm.c (arm_finalize_pic): Rename ...
18089         (arm_load_pic_register): ... to this.  Always output insns at the
18090         current location.  Load via low reg in thumb mode.
18091         (arm_expand_prologue): Call arm_load_pic_register.
18092         (thumb_expand_prologue): Ditto.
18093         * config/arm/arm.h (FINALIZE_PIC): Remove.
18094         * config/arm/arm.md (builtin_setjmp_receiver): Call
18095         arm_load_pic_register.
18096
18097 2004-08-11  Paul Brook  <paul@codesourcery.com>
18098
18099         * arm.c (thumb_force_lr_save): Add prototype.
18100         (thumb_compute_save_reg_mask): New function.
18101         (thumb_find_work_register): New function.
18102         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
18103         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
18104         Don't clobber r3 when removing pretend args.
18105         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
18106         (thumb_output_function_prologue): Use new functions.
18107         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
18108         * arm.h (THUMB_REG_PUSHED_P): Remove.
18109
18110 2004-08-11  James E Wilson  <wilson@specifixinc.com>
18111
18112         PR rtl-optimization/16490
18113         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
18114         global_live_at_end for new basic block if already set for other blocks.
18115
18116 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
18117
18118         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
18119
18120         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
18121         (mfcr rlwinm rlwinm patterns): Set length to 12.
18122
18123 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
18124
18125         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
18126         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
18127         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
18128         (start_ssa_stmt_operands): Delete.
18129         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
18130         struct stmt_operands_d.
18131         (build_ssa_operands): New extern entry point.
18132         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
18133         building code, replace with create_ssa_artficial_load_stmt().
18134         * tree-ssa-operands.c (struct voperands_d): Delete.
18135         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
18136         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
18137         (free_uses, free_defs, free_vuses, free_v_may_defs,
18138         free_v_must_defs): Remove dealloc parameter.
18139         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
18140         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
18141         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
18142         vector comparisons, ssa_name reuse, and allocations here.
18143         (verify_start_operands): Delete.
18144         (finalize_ssa_stmt_operands): Set new operands by calling finalize
18145         routines.
18146         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
18147         (append_def, append_usei): Simplify to simple accumulation.
18148         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
18149         duplicates and simple accumulation.
18150         (free_ssa_operands): Free vectors in a stmt_operand structure.
18151         (build_ssa_operands): New. Create a new stmt_operand structure from
18152         a stmt and an old set of stmt_operands.
18153         (get_stmt_operands): Simplify and call build_ssa_operands.
18154         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
18155         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
18156         add_call_read_ops): Don't pass prev_vops around anymore.
18157         (note_addressable): Return if no stmt annotation.
18158         (copy_virtual_operands): Access v_may_def operands through a struct.
18159         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
18160         hash tables without treating the stmt as a real stmt.
18161         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
18162         v_may_def def and use through a struct instead of 2 array elements.
18163         (struct v_may_def_optype_d): Use v_may_def_operand_type.
18164         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
18165
18166 2004-08-11  Nick Clifton  <nickc@redhat.com>
18167
18168         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
18169         this funciton's behaviour.  Return true when the current function
18170         has a section attribute and -mlong-calls is in effect.
18171         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
18172         short-call marker when -mlong-calls is in effect and the function
18173         has a section attribute.
18174
18175 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
18176
18177         * stmt.c (expand_return): If asked to return the RESULT_DECL,
18178         just call expand_value_return on result_rtl.
18179
18180 2004-08-10  Richard Henderson  <rth@redhat.com>
18181
18182         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
18183         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
18184         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
18185         (add_location_or_const_value_attribute): ... not here.  Use
18186         loc_descriptor_from_tree if possible.
18187         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
18188         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
18189         values specially.
18190         (loc_descriptor_from_tree): New.  Update callers.
18191         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
18192         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
18193         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
18194         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
18195         and BUILT_IN_STACK_RESTORE.
18196         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
18197         * stmt.c (expand_stack_alloc): Remove.
18198         * tree-mudflap.c (mx_register_decls): Don't look for
18199         BUILT_IN_STACK_ALLOC.
18200         * tree-nested.c (convert_local_reference): Likewise.
18201         * tree.h (DECL_VALUE_EXPR): New.
18202
18203 2004-08-10  Richard Henderson  <rth@redhat.com>
18204
18205         * stor-layout.c (round_up): Check for 0/1 before dividing.
18206         (round_down): Likewise.
18207
18208         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
18209
18210 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
18211
18212         * config.gcc (arm*-*-eabi*): New target.
18213         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
18214         (TARGET_LIB_INT_CMP_BIASED): Likewise.
18215         * expmed.c (expand_divmod): Try a two-valued divmod function as a
18216         last resort.
18217         * gthr.h: Remove bogus tokens at end of #pragma.
18218         * optabs.c (expand_twoval_binop_libfunc): New function.
18219         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
18220         (prepare_float_lib_cmp): Try reversing the condition.
18221         (debug_optab_libfuncs): New function.
18222         * optabs.h (expand_twoval_binop_libfunc): Declare.
18223         * config/arm/arm.c (arm_init_libfuncs): New function.
18224         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
18225         (TARGET_INIT_LIBFUNCS): Define it.
18226         * config/arm/arm.h (TARGET_BPABI): New macro.
18227         * config/arm/arm-protos.h
18228         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
18229         * config/arm/bpabi.S: New file.
18230         * config/arm/bpabi.c: Likewise.
18231         * config/arm/bpabi.h: Likewise.
18232         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
18233         (__aeabi_drsub): Likewise.
18234         (__aeabi_dsub): Likewise.
18235         (__aeabi_dadd): Likewise.
18236         (__aeabi_ui2d): Likewise.
18237         (__aeabi_i2d): Likewise.
18238         (__aeabi_f2d): Likewise.
18239         (__aeabi_dmul): Likewise.
18240         (__aeabi_ddiv): Likewise.
18241         (__aeabi_cdrcmple): Likewise.
18242         (__aeabi_cdcmpeq): Likewise.
18243         (__aeabi_cdcmple): Likewise.
18244         (__aeabi_dcmpeq): Likewise.
18245         (__aeabi_dcmplt): Likewise.
18246         (__aeabi_dcmple): Likewise.
18247         (__aeabi_dcmpge): Likewise.
18248         (__aeabi_dcmpgt): Likewise.
18249         (__aeabi_dcmpun): Likewise.
18250         (__aeabi_d2iz): Likewise.
18251         (__aeabi_d2uiz): Likewise.
18252         (__aeabi_d2f): Likewise.
18253         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
18254         (__aeabi_frsub): Likewise.
18255         (__aeabi_fsub): Likewise.
18256         (__aeabi_fadd): Likewise.
18257         (__aeabi_ui2f): Likewise.
18258         (__aeabi_i2f): Likewise.
18259         (__aeabi_fmul): Likewise.
18260         (__aeabi_fdiv): Likewise.
18261         (__aeabi_cfrcmple): Likewise.
18262         (__aeabi_cfcmpeq): Likewise.
18263         (__aeabi_cfcmple): Likewise.
18264         (__aeabi_fcmpeq): Likewise.
18265         (__aeabi_fcmplt): Likewise.
18266         (__aeabi_fcmple): Likewise.
18267         (__aeabi_fcmpge): Likewise.
18268         (__aeabi_fcmpgt): Likewise.
18269         (__aeabi_fcmpun): Likewise.
18270         (__aeabi_f2iz): Likewise.
18271         (__aeabi_f2uiz): Likewise.
18272         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
18273         (__aeabi_uidivmod): New function or alias.
18274         (__aeabi_idivmod): Likewise.
18275         (__aeabi_idiv0): Likewise.
18276         (__aeabi_ldiv0): Likewise.
18277         (__aeabi_llsr): Likewise.
18278         (__aeabi_lasr): Likewise.
18279         (__aeabi_llsl): Likewise.
18280         (bpabi.S): Include it.
18281         * config/arm/libgcc-bpabi.ver: New file.
18282         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
18283         (LINK_SPEC): Remove.
18284         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
18285         __aeabi_ulcmp.
18286         * config/arm/t-bpabi: New file.
18287         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
18288         (TARGET_LIB_INT_CMP_BIASED): Likewise.
18289
18290 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
18291
18292         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
18293         * config/rs6000/rs6000.md (clrmemsi): New pattern.
18294         * config/rs6000/rs6000.c (expand_block_clear): New function.
18295         (expand_block_move): Convert alignment to bits.  Use SImode and
18296         HImode for unaligned addresses if not STRICT_ALIGNMENT.
18297
18298 2004-08-10  Caroline Tice  <ctice@apple.com>
18299
18300         * varasm.c (unlikely_section_label): New global variable.
18301         (unlikely_text_section_name): New global variable.
18302         (text_section):  Remove alignment statement.
18303         (unlikely_text_section): Remove alignment statement; use
18304         unlikely_section_label rather than hard-coded string.
18305         (assemble_start_function): Initialize unlikely_section_label and
18306         unlikely_text_section_name;  make sure cold section is properly
18307         aligned at start of function; output unlikely_section_label if
18308         appropriate.
18309
18310 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
18311
18312         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
18313         * config/s390/s390.c (s390_canonicalize_comparison): New function.
18314         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
18315         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
18316         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
18317         ("*tmqi_mem"): Remove SUBREG from pattern.
18318         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
18319         ("*andsi3_cconly"): Likewise.
18320
18321 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
18322
18323         PR target/16909
18324         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
18325
18326 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
18327
18328         * doc/sourcebuild.texi (compat testing): Document available test
18329         framework commands.  Use the preferred spelling of DejaGnu.
18330
18331 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
18332
18333         * lambda.h: Add matrix type, and prototypes for remainder of
18334         matrix and vector functions.
18335         (lambda_vector_mult_const): New function.
18336         (lambda_vector_negate): Ditto.
18337         (lambda_vector_add): Ditto.
18338         (lambda_vector_add_mc): Ditto.
18339         (lambda_vector_copy): Ditto.
18340         (lambda_vector_zerop): Ditto.
18341         (lambda_vector_equal): Ditto.
18342         (lambda_vector_min_nz): Ditto.
18343         (lambda_vector_first_nz): Ditto.
18344         (lambda_vector_matrix_mult): Ditto.
18345         * lambda-mat.c: New file.
18346         * Makefile.in (lambda-mat.o): New.
18347
18348 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
18349
18350         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
18351         after linking stmt into the program.
18352         (bsi_remove): Don't call modify_stmt.
18353         * tree-complex.c (update_complex_assignment,
18354         expand_complex_comparison): Call modify_stmt after changing the stmt.
18355         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
18356         removing the stmt.
18357         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
18358         the stmt, and only if needed.
18359         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
18360         expression.
18361         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
18362         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
18363         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
18364         (eliminate_redundant_computations): Don't pass an annotation. Call
18365         modify_stmt rather than setting the annotation directly.
18366         (record_equivalences_from_stmt): Remove unused local 'j'.
18367         (cprop_operand): Take a stmt rather than an annotation as a parameter.
18368         Call modify_stmt.
18369         (cprop_into_stmt): Pass stmt rather than annotation.
18370         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
18371         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
18372         modify_stmt.
18373         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
18374
18375 2004-08-10  Jason Merrill  <jason@redhat.com>
18376
18377         PR middle-end/16948
18378         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
18379         the RESULT_DECL.
18380
18381 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
18382
18383         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
18384         hash function.
18385
18386 2004-08-10  Roger Sayle  <roger@eyesopen.com>
18387
18388         * config/mips/mips.md: New reciprocal square root patterns that
18389         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
18390
18391 2004-08-10  Paul Brook  <paul@codesourcery.com>
18392
18393         * config/arm/arm-protos.h (arm_set_return_address,
18394         thumb_set_return_address): Add prototypes.
18395         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
18396         * config/arm/arm.c (arm_compute_func_type,
18397         use_return_insn, arm_compute_save_reg0_reg12_mask,
18398         arm_compute_save_reg_mask, arm_output_function_prologue,
18399         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
18400         current_function_calls_eh_return.
18401         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
18402         old eh code.
18403         (arm_set_return_address, thumb_set_return_address): New functions.
18404         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
18405         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
18406         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
18407         (epilogue): Use the stackadj register.
18408         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
18409
18410 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
18411
18412         PR target/3144
18413         * expr.c (move_by_pieces_ninsns): Add max_size argument.
18414         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
18415         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
18416         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
18417         but using MOVE_RATIO.
18418         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
18419         (can_store_by_pieces): Change max_size type to unsigned int.
18420         (store_by_pieces_1): Likewise.  Pass max_size to
18421         move_by_pieces_ninsns.
18422         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
18423         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
18424         to move_by_pieces_ninsns.
18425         (STORE_BY_PIECES_P): Define.
18426         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
18427         to move_by_pieces_ninsns.
18428         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
18429
18430         * config/i386/i386.h (CLEAR_RATIO): Define.
18431
18432 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18433
18434         * expr.c (expand_expr_real_1): Add back code that was not dead.
18435
18436 2004-08-09  Andrew Pinski  <apinski@apple.com>
18437
18438         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
18439         which is found to be compatible before returning the aliasing set.
18440
18441 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
18442
18443         * ggc-zone.c (struct alloc_zone): Add statistics counters.
18444         (always_collect): New flag.
18445         (ggc_alloc_zone_1): Update statistics support.  Don't include
18446         overhead in allocated counter.
18447         (sweep_pages): Update allocated counter for large pages.  Don'y
18448         include overhead.
18449         (ggc_collect_1): Always collect.
18450         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
18451         whether to collect.
18452         (SCALE, LABEL): New macros.
18453         (ggc_print_statistics): Add statistics support.
18454
18455 2004-08-09  Roger Sayle  <roger@eyesopen.com>
18456
18457         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
18458         (init_expmed): Fix potential overrun problem with "all.reg".
18459         (expand_sdiv2_pow2): Add an alternate implementation for signed
18460         division, if the target provides a suitable conditional move insn.
18461
18462 2004-08-09  Paul Brook  <paul@codesourcery.com>
18463         Richard Henderson  <rth@redhat.com>
18464
18465         * unwind-dw2.c (uw_install_context_1): Update target saved stack
18466         pointer.
18467
18468 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
18469
18470         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
18471         Check DATA limit only if there's no AS limit.  Ignore insanely
18472         low DATA limits.
18473         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
18474         but take care that the AS limit isn't overrun.
18475         * doc/invoke.texi: Update documentation of min-heapsize parameter.
18476
18477 2004-08-09  Jeff Law  <law@redhat.com>
18478
18479         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
18480         (tree-ssa-threadupdate.o): Add dependencies.
18481         * tree-ssa-threadupdate.c: New file.
18482         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
18483         (rewrite_vars_out_of_ssa): Remove prototype.
18484         (cleanup_tree_cfg): Returns a bool.
18485         * tree.h (thread_through_all_blocks): Prototype.
18486         * tree-outof-ssa.c  (SSANORM_*): Move into here.
18487         (remove_ssa_form): Now static.
18488         (rewrite_vars_out_of_ssa): Kill.
18489         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
18490         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
18491         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
18492         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
18493         anything was changed.
18494         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
18495         from the PHI's annotation rather than the edge associated with
18496         the new argument.
18497         * tree-ssa-dom.c (redirection_edges): Kill.
18498         (redirect_edges_and_update_ssa_graph): Kill.
18499         (tree_ssa_dominator_optimize): Do not reset forwardable flag
18500         for blocks anymore.  Do not initialize redirection_edges.
18501         Call thread_through_all_blocks.  Simplify code for cleanup
18502         of the CFG and iterating.  No longer call cleanup_tree_cfg
18503         outside the iteration loop.
18504         (thread_across_edge): No longer mess with forwardable blocks.
18505
18506 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
18507
18508         * explow.c (memory_address): Use memory_address_p.
18509         * recog.c (general_operand): Likewise.
18510         * regrename.c: No need to define REG_OK_STRICT.
18511
18512 2004-08-09  Steven Bosscher  <stevenb@suse.de>
18513
18514         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
18515         New timers.
18516         * gcse.c: Include timevar.h.
18517         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
18518         and global_copy_prop_count.
18519         (local_const_prop_count, local_copy_prop_count): New static globals.
18520         (gcse_main): Set the right timevar for each pass.
18521         (cprop_jump): Increment global_const_prop_count when a constant is
18522         propagated.  Add "GLOBAL" to dump output.
18523         (cprop_insn): Increment global_const_prop_count when a constant is
18524         propagated, or global_copy_prop_count when a copy is propagated.
18525         (do_local_cprop): Likewise for local_const_prop_count and
18526         local_copy_prop_count.
18527         (one_cprop_pass): Initialize const/cprop counters to zero.
18528         Print out results of local and global const/cprop separately.
18529         (bypass_block): Break over-length line.
18530         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
18531         for bb-reorder.o and tracer.o.
18532
18533 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18534
18535         * Makefile.in (GTFILES): Remove stmt.c
18536         (stmt.o): Do not depend on gt-stmt.h.
18537         * emit-rtl.c (emit_line_note): Do not call
18538         set_file_and_line_for_stmt.
18539         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
18540         do everything.
18541         * function.c (free_after_parsing): Do not free STMT field.
18542         (allocate_struct_function): Do not call init_stmt_for_function.
18543         (assign_stack_temp_for_type): Do not accept values of keep
18544         other than 0 or 1.
18545         (init_temp_slots): Do not initialize removed variables.
18546         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
18547         and X_VAR_TEMP_SLOT_LEVEL fields.
18548         * rtl.h (set_file_and_line_for_stmt): Remove.
18549         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
18550         struct stmt_status, cond_stack, case_stack, nesting_stack,
18551         nesting_depth, emit_locus, set_file_and_line_for_stmt,
18552         same_case_target_p, init_stmt_for_function, emit_nop,
18553         expand_start_cond, expand_start_elseif, expand_start_else,
18554         expand_elseif, expand_end_cond): Remove.
18555         (preserve_subexpressions_p): Remove references to CFUN->STMT.
18556         (expand_start_case, expand_end_case_type): Remove, merge into...
18557         (expand_case): ... this one, including other bits from
18558         expand_expr_real_1.  Inline same_case_target_p.  Turn members
18559         of CASE_STACK into local variables.
18560         (emit_case_bit_tests): Inline same_case_target_p.
18561         (add_case_node): Add HEAD argument, return new head of the list,
18562         do not handle default label here.
18563         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
18564         expand_start_elseif, current_nesting_level, expand_start_case,
18565         expand_end_case_type, expand_end_case, add_case_node,
18566         init_stmt_for_function, expand_elseif): Remove prototypes.
18567         (expand_case): Add prototype.
18568
18569 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18570
18571         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
18572
18573 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18574
18575         * expr.c (var_rtx): Remove.
18576         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
18577         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
18578         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
18579         Abort.
18580         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
18581         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
18582         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
18583
18584 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
18585         Ayal Zaks <zaks@il.ibm.com>
18586
18587         * common.opt (freschedule-modulo-scheduled-loops): New flag.
18588         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
18589         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
18590         when -freschedule-modulo-scheduled-loops flag is not specified.
18591         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
18592         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
18593         More accurate placing of insn in row of partial schedule.
18594         (ps_insn_find_column): New function.
18595         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
18596         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
18597         (schedule_region): Use sched_is_disabled_for_current_region_p.
18598         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
18599
18600 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18601
18602         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
18603         change.
18604
18605 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18606
18607         * config/i386/i386.c (ix86_expand_clrmem): Properly call
18608         gen_strset for 64bit target.
18609
18610 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
18611
18612         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
18613
18614 2004-08-07  Jason Merrill  <jason@redhat.com>
18615
18616         Make return in memory explicit.
18617         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
18618         (assign_parm_find_data_types): Remove code for old front end
18619         invisible reference handling.
18620         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
18621         (expand_function_end): Likewise.
18622         * gimplify.c (gimplify_return_expr): Handle a dereferenced
18623         RESULT_DECL.
18624         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
18625         (declare_return_variable): Handle DECL_BY_REFERENCE.
18626         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
18627         (cp_genericize_r): Use convert_from_reference.
18628         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
18629         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
18630
18631         * c-common.c (c_warn_unused_result): Check TREE_USED before
18632         warning about a CALL_EXPR with an unused value.
18633
18634 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18635
18636         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
18637         to the compiler.  Use -fshort-wchar by default.
18638
18639 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
18640
18641         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
18642         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
18643         threshhold.
18644         * doc/invoke.texi (param): Document min-crossjump-insns.
18645
18646 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
18647
18648         PR c/13282
18649         * c.opt (Wmissing-field-initializers): New option.
18650         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
18651         * c-typeck.c (pop_init_level): Guard the missing field warning with
18652         warn_missing_field_initializers rather than extra_warnings.
18653         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
18654         some of the explanation from...
18655         (-Wextra): ...here.  Say that the missing field warning can be
18656         seperately controlled by -Wmissing-field-initializers.
18657
18658 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
18659
18660         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
18661         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
18662         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
18663         * tree.def (ENTRY_VALUE_EXPR): Remove.
18664
18665 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
18666
18667         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
18668         the places where it is actually needed.  Don't use repz; stosb
18669         for -Os with sufficiently small constant sizes.
18670         For sufficiently small repz; stos{l,q} repeat counts use a sequence
18671         of stos{l,q} instructions instead.
18672
18673 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18674
18675         PR tree-optimization/16807
18676         * loop-iv.c (dump_iv_info): Dump invariants correctly.
18677         (iv_subreg, iv_extend): Express value of invariant purely in
18678         base field.
18679
18680 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18681
18682         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
18683         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
18684
18685 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
18686
18687         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
18688         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
18689         pre_dec_operand.
18690         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
18691         pattern until reload is finished to allow better code generation
18692         and split them completely into separate instrunctions.
18693         (*andsi3_split): New pattern.
18694
18695 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
18696
18697         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
18698         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
18699         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18700         * tree.h (handle_dll_attribute): Declare.  Test
18701         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18702         * c-common.h (c_determine_visibility): Declare.
18703         * c-common.c (c_determine_visibility): New function.
18704         * c-decl.c (finish_decl): Use it.
18705         (finish_function): Likewise.
18706         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
18707         zero, by default.  Use #if, not #ifdef, to test it.
18708         * config/arm/arm.c (arm_attribute_table): Use
18709         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
18710         #if.
18711         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
18712         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18713         to 1.
18714         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
18715         * config/i386/i386.c (ix86_attribute_table): Use
18716         handle_dll_attribute for dllimport/dllexport.  Test
18717         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18718         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
18719         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18720         it to 1.
18721         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
18722         with #if.
18723         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18724         it to 1.
18725         * doc/extend.texi (dllexport): Clarify and correct documentation.
18726         (dllimport): Likewise.
18727         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
18728         handle_dll_attribute.
18729
18730 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18731
18732         * tree-ssa-loop-manip.c: New file.
18733         * Makefile.in (tree-ssa-loop-manip.o): Add.
18734         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
18735         Declare.
18736         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
18737         form.
18738         (tree_ssa_loop_done): Verify loop closed ssa form.
18739         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
18740
18741 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18742
18743         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
18744         pa_asm_output_aligned_local): New functions.
18745         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
18746         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
18747         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
18748         pa_asm_output_aligned_common.
18749         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18750         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
18751         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18752         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18753         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
18754         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18755         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18756         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
18757         common data.
18758
18759 2004-08-05  Andrew Pinski  <apinski@apple.com>
18760
18761         * objc/objc-act.c (build_objc_string_object): Mark the address
18762         expression as constant.
18763
18764 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
18765
18766         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
18767         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
18768         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
18769
18770 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18771
18772         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
18773         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
18774         out, and associated obsolete comments.
18775
18776 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
18777
18778         * tree.h (force_fit_type): Return a tree, take three flags.
18779         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
18780         TREE_CONSTANT_OVERFLOW here.
18781         (int_const_binop, const_binop): Adjust.
18782         (size_int_type): Do sign extension here.
18783         (fold_convert_const, optimize_bit_field_compare,
18784         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
18785         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
18786         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
18787
18788 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18789
18790         PR tree-optimization/16864
18791         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
18792         for ssa names without default_def.
18793
18794 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
18795
18796         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
18797         frame pointer, restore eax with an ebp-relative address.
18798
18799 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
18800
18801         PR 14516
18802         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
18803         * c-common.h (make_rtl_for_local_static): Delete.
18804         * c-decl.c (shadow_tag_warned): Clean up comment.
18805         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
18806         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
18807         * c-semantics.c (make_rtl_for_local_static): Delete.
18808         * expr.c (init_block_move_fn): Use set_user_assembler_name.
18809         (init_block_clear_fn): Likewise.
18810         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
18811         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
18812         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
18813         * tree.h (make_decl_rtl): Remove second parameter.
18814         (set_user_assembler_name): New.
18815         * varasm.c (set_user_assembler_name): New.
18816         (make_decl_rtl): Remove second parameter.  Update callers in many
18817         files.
18818
18819 2004-08-05  Adam Nemet  <anemet@lnxw.com>
18820
18821         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
18822         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
18823         to LynxOS 4.0.
18824         * gthr-lynx.h: New file.
18825         * config/lynx-ng.h: Remove file.
18826         * config/lynx.h: Update to LynxOS 4.0.
18827         * config/t-lynx: New file.
18828         * config/i386/lynx-ng.h: Remove file.
18829         * config/i386/lynx.h: Update to LynxOS 4.0.
18830         * config/rs6000/lynxbase.h: Remove file.
18831         * config/rs6000/lynx.h: Update to LynxOS 4.0.
18832         * config/rs6000/t-lynx: New file.
18833         * doc/install.texi (Options specification): Remove reference to
18834         LynxOS from systems where --with-gnu-as makes a difference.
18835
18836 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18837
18838         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
18839         __UINTMAX_TYPE__.
18840         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
18841         __INTMAX_MAX__.
18842         (c_cpp_builtins): Call it.
18843         * doc/cpp.texi: Update.
18844
18845 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
18846
18847         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
18848         cost.
18849
18850 2004-08-04  Jan Hubicka  <jh@suse.cz>
18851
18852         * basic-block.h (profile_staus): New global variable.
18853         * cfg.c (profile_status): Declare.
18854         (check_bb_profile): Break out from ....; use profile_status
18855         (dump_flow_info): ... here.
18856         * cfgbuild.c (find_basic_blocks): Set profile_status.
18857         * cfgexpand.c (tree_expand_cfg): Likewise.
18858         * predict.c (estimate_probability): Likewise.
18859         * profile.c (branch_prob): Likewise.
18860         * tree-cfg.c (build_tree_cfg): Likewise.
18861         (dump_function_to_file): Use check_bb_profile.
18862         * tree-pretty-print (dump_bb_header): Likewise.
18863         * tree-profile.c (do_tree_profiling): Cleanup.
18864
18865 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
18866
18867         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
18868         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
18869         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
18870         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
18871         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
18872         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
18873         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
18874         (ggc-none.o, errors.o): Move rule to generators section;
18875         correct dependencies.
18876         (min-insn-modes.o): Move rule to generators section; remove
18877         unnecessary explicit command; correct dependencies.
18878         (print-rtl.o, print-rtl1.o): Correct dependencies.
18879         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
18880         (mostlyclean): Update.
18881
18882         * errors.c: Include bconfig.h not config.h.  Correct comment.
18883         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
18884         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
18885         * print-rtl.c: Don't include tm_p.h.
18886
18887         * rtl.h: Move forward-decl of struct function down where it's
18888         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
18889         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
18890
18891 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18892             Jeff Law  <law@redhat.com>
18893
18894         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
18895         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
18896         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
18897         manipulate the duplicated ssa names.
18898         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
18899         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
18900         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
18901         New functions.
18902         (release_ssa_name): Do not release ssa names that may have multiple
18903         definitions.
18904         * tree.h (release_ssa_name_force, mark_for_rewrite,
18905         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
18906         marked_ssa_names): Declare.
18907         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
18908         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
18909         Update call to rewrite_ssa_into_ssa.
18910
18911 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
18912
18913         * defaults.h (TARGET_DECLSPEC): New macro.
18914         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
18915         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
18916         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
18917         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
18918         __declspec support.
18919         (TARGET_DECLSPEC): Define.
18920         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
18921         __declspec support.
18922         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
18923         __declspec support.
18924         (TARGET_DECLSPEC): Define.
18925         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
18926         __declspec support.
18927         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
18928         support.
18929         * doc/tm.texi (TARGET_DECLSPEC): Document.
18930
18931         * doc/extend.texi: Fix typo in comment.
18932
18933 2004-08-04  Paul Brook  <paul@codesourcery.com>
18934
18935         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18936         (TARGET_CXX): Use it.
18937         * target.h (struct gcc_target): Add cdtor_returns_this.
18938         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
18939         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18940         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
18941
18942 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
18943
18944         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
18945         low/high pair. Do range checking directly.
18946         (interpret_integer): Adjust.
18947
18948 2004-08-04  Nick Clifton  <nickc@redhat.com>
18949
18950         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
18951         GCC ABI.
18952         * doc/invoke.texi: Document this new switch and also the -mrenesas
18953         switch.
18954
18955 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
18956
18957         * cfglayout.c (insn_locators_initialize): Update the current
18958         location before initializing a location.
18959
18960 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18961
18962         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
18963         (dbxout_function_end): Return after emitting the "Lscope" symbol
18964         under the same conditions that this function formerly wasn't called.
18965         Add explanatory comments.
18966
18967         PR 14860
18968         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
18969         on the new decl.
18970
18971         PR 13956
18972         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
18973         functions, broken out of dbxout_block.
18974         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
18975         stabs too, if it contains symbols.  Use the begin_label and
18976         the Lscope label (emitted by dbxout_function_end) for the
18977         range of this block.
18978
18979 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18980
18981         * doc/install.texi: Update autoconf version requirements.
18982
18983 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18984
18985         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
18986         * recog.c (general_operand, immediate_operand, nonmemory_operand)
18987         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
18988         * regclass.c (record_reg_classes): Likewise.
18989         * reload.c (find_reloads): Likewise.
18990         * reload1.c (reload): Likewise.
18991
18992 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18993
18994         * gensupport.c (init_md_reader_args_cb): Renamed from
18995         init_md_reader_args.  Add third option, callback function for
18996         parsing program-specific options.  Add diagnosis of incorrect
18997         number of input files.
18998         (init_md_reader): Fold into init_md_reader_args_cb.
18999         (init_md_reader_args): Now a thin wrapper around
19000         init_md_reader_args_cb.
19001         * gensupport.h: Update prototypes.
19002
19003         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
19004         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
19005         * genrecog.c: No need to diagnose lack of an input file;
19006         init_md_reader_args will handle it.
19007         * genconditions.c: Likewise, and use init_md_reader_args.
19008         * genconstants.c: Likewise, and no need to call read_md_rtx.
19009
19010 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19011
19012         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
19013         declarations.
19014
19015 2004-08-03  Mike Stump  <mrs@apple.com>
19016
19017         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
19018         for frameworks.
19019         * doc/invoke.texi (Darwin Options): Update to reflect above.
19020
19021 2004-08-03  Roger Sayle  <roger@eyesopen.com>
19022
19023         PR middle-end/16790
19024         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
19025         truncations, not just global truncations.
19026
19027 2004-08-03  Andrew Pinski  <apinski@apple.com>
19028
19029         PR bootstrap/16865
19030         * loop-iv.c (simplify_using_assignment): Initialize lhs.
19031
19032 2004-08-03  Paul Brook  <paul@codesourcery.com>
19033
19034         * gcc/doc/install.texi: Document MPFR requirement.
19035
19036 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
19037
19038         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
19039         and mmap() explicitly instead of relying on preset autoconf cache
19040         variables.
19041         * configure: Regenerate.
19042
19043 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
19044
19045         PR target/16570
19046         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
19047         to tmake_file.
19048         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
19049         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
19050         to tmake_file.
19051
19052         * config/i386/t-gmm_malloc: New file.
19053         * config/i386/t-pmm_malloc: Likewise.
19054
19055         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
19056
19057 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
19058             Tanguy Fautrà <tfautre@pandora.be>
19059
19060         * config/i386/pmm_malloc.h: New file.
19061
19062 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
19063
19064         * config/i386/gmm_malloc.h: New file.
19065
19066 2004-08-03  Dale Johannesen  <dalej@apple.com>
19067
19068         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
19069         * c-common.c: Include opts.h.
19070         (c_common_get_alias_set): Fix check for a single input file.
19071         * toplev.c: Remove current_file_decl.
19072         * tree.h: Ditto.
19073
19074 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
19075
19076         * config.gcc (arm*-*-symbianelf*): New target.
19077         * config/arm/symbian.h: New file.
19078
19079         * gthr-gnat.c: Add visibility #pragmas.
19080         * gthr-gnat.h : Likewise.
19081         * gthr.h: Likewise.
19082         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
19083         (__ffsDI2): Likewise.
19084         (__clzSI2): Likewise.
19085         (__ctzSI2): Likewise.
19086         (__ctzDI2): Likewise.
19087         (__popcountSI2): Likewise.
19088         (__popcountDI2): Likewise.
19089         (__paritySI2): Likewise.
19090         (__parityDI2): Likewise.
19091         * libgcc2.h: Add visibility #pragmas.
19092         (__clzDI2): Add prototype.
19093         (__clzSI2): Likewise.
19094         (__ctzSI2): Likewise.
19095         (__ffsDI2): Likewise.
19096         (__ffsSI2): Likewise.
19097         (__ctzDI2): Likewise.
19098         (__popcountSI2): Likewise.
19099         (__popcountDI2): Likewise.
19100         (__paritySI2): Likewise.
19101         (__parityDI2): Likewise.
19102         * unwind-dw2-fde.h: Add visibility #pragmas.
19103         * unwind.h: Likewise.
19104
19105 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
19106             Dale Johannesen  <dalej@apple.com>
19107             Roger Sayle  <roger@eyesopen.com>
19108
19109         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
19110         constants more accurately.  Adjust costs for FMA instructions.
19111         Add cases for most logical and float operations.  Recurse into
19112         most operands.
19113
19114 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
19115
19116         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
19117
19118 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
19119
19120         * ra-build.c (conflicts_between_webs): For webs that cross a call add
19121         conflicts to regs_invalidated_by_call.
19122
19123 2004-08-03  Paul Brook  <paul@codesourcery.com>
19124
19125         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
19126
19127 2004-08-03  Jan Hubicka  <jh@suse.cz>
19128
19129         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
19130         ARRAY_REF argument.
19131
19132 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
19133
19134         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
19135         arm968es, arm10e, arm1020e, arm1022e.
19136         * invoke.texi: Update list of ARM cores.
19137         * arm-tune.md: Regenerate.
19138
19139 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
19140
19141         * arm/gentune.sh: New file.
19142         * arm/t-arm: New file.
19143         * arm/arm-tune.md: New file (autogenerated).
19144         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
19145         * arm.md (attribute tune): Delete.  Include arm-tune.md.
19146
19147 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
19148
19149         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
19150         penultimate parameter.  All callers adjusted.
19151         (struct prefix_list): Remove used_flag_ptr.
19152         (find_a_file): Do not set *pl->used_flag_ptr.
19153         (warn_B, warn_std_ptr): Remove.
19154
19155 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
19156             Mostafa Hagog <mustafa@il.ibm.com>
19157
19158         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
19159
19160 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
19161
19162         * dwarf2out.c (output_call_frame_info): Don't change data format
19163         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
19164         label.  Use 'true' not '1'.
19165         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
19166         required.
19167
19168 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19169
19170         * gdbinit.in: Reflect previous changes to rtunion_def.
19171
19172 2004-08-02  Roger Sayle  <roger@eyesopen.com>
19173
19174         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
19175         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
19176
19177 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19178
19179         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
19180         vec_p_reserve.
19181         * langhooks.h (lang_hooks::builtin_function): Rename parameter
19182         from "class" to "bt_class".
19183
19184 2004-08-02  Paul Brook  <paul@codesourcery.com>
19185
19186         PR rtl-optimization/15068
19187         * flow.c (init_propagate_block_info): Check condition is reversible.
19188
19189 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19190
19191         * gengtype.h (options::info): Change type to const char *.
19192         (enum gc_used_enum): Move out of struct type scope.
19193         * gengtype.c (create_option): Convert initializer for option::info to
19194         appropiate type.
19195         (adjust_field_type, walk_type, write_func_for_structure,
19196         write_root, write_roots): Remove pointless cast.
19197
19198 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
19199
19200         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
19201
19202 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19203
19204         * rtl.h (union rtunion_def): Have all members  start with the
19205         prefix "rt_".
19206         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
19207         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
19208         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
19209         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
19210         access.
19211         * gengtype.c (adjust_field_rtx_def): Likewise.
19212         * rtlanal.c (loc_mentioned_in_p): Likewise.
19213
19214 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
19215
19216         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
19217         Replace uses of mips/elf64.h with mips/elf.h
19218         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
19219         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
19220         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
19221         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
19222         (HANDLE_SYSV_PRAGMA): Delete.
19223         (ASM_OUTPUT_DEF): Fix formatting.
19224         * config/mips/elf64.h: Delete.
19225
19226 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
19227
19228         * config/ia64/ia64.c (got_symbolic_operand): Do require a
19229         symbol+offset operand to have its offset be zero mod 0x3fff
19230         when GOT entries are in use.  Clarify logic in SYMBOL_REF
19231         case.  Clarify comments.
19232         (ia64_expand_load_address): Split a symbol+offset load when
19233         the offset is nonzero mod 0x3fff, not 0x1fff.
19234
19235 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
19236
19237         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
19238         if trying to *store* to a non-offsettable address.
19239         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
19240         a nonoffsettable address.
19241         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
19242         Clean up.
19243         (movti_string): Don't move GPRs to a nonoffsettable address.
19244         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
19245
19246 2004-08-02  Ben Elliston  <bje@au.ibm.com>
19247
19248         PR target/16155
19249         * config/rs6000/altivec.h: Replace typeof with __typeof__.
19250
19251 2004-08-01  Richard Henderson  <rth@redhat.com>
19252
19253         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
19254         variable sized types.
19255
19256 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19257
19258         * doc/invoke.texi: In the MIPS options section, remove the passage
19259         saying that -mexplicit-relocs is usually disabled for -mabicalls
19260         -fno-unit-at-a-time.
19261         * config/mips/mips.c (override_options): Remove the code that enforced
19262         this rule.
19263
19264 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19265
19266         * config/mips/mips.md (cprestore): Provide two alternatives, one for
19267         an in-range offset and one for an out-of-range offset.  Wrap the latter
19268         in .set macro/.set nomacro if it's inside a .set nomacro block.
19269
19270 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19271
19272         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
19273         (mips_restore_gp): Declare.
19274         * config/mips/mips.c (mips_add_offset): Add a scratch register
19275         argument.  Reimplement in rtl only, reusing MIPS16 logic from
19276         mips_output_mi_thunk.
19277         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
19278         to mips_add_offset.
19279         (mips_gp_save_slot): Delete.
19280         (mips_restore_gp): New function.
19281         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
19282         * config/mips/mips.md (exception_receiver): Turn into a
19283         define_insn_and_split.  Use mips_restore_gp to do the split.
19284         (call_internal, call_value_internal, call_value_multiple_internal): Use
19285         mips_restore_gp to restore $gp.
19286
19287 2004-07-31  Andrew Pinski  <apinski@apple.com>
19288
19289         PR other/16842
19290         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
19291
19292 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
19293
19294         * c-decl.c (diagnose_mismatched_decls): Give error for external
19295         redeclaration of identifier declared with no linkage, not just
19296         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
19297         error for redeclaration with no linkage.
19298
19299 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
19300             Fariborz Jahanian <fjahanian@apple.com>
19301
19302         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
19303         non-offsettable addresses even for DImode.
19304         (rs6000_split_multireg_move): Cope with non-offsettable addresses
19305         being moved into multiple GPRs.
19306
19307         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
19308         to 64.
19309         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
19310         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
19311         to 128.
19312         * config/rs6000/darwin-ldouble.c (isless): New macro.
19313         (inf): New macro.
19314         (nonfinite): New macro.
19315         (FPKINF): Delete.
19316         (_xlqadd): Completely rewrite.
19317         (_xlqmul): Correct overflow handling.
19318         (_xlqdiv): Correct overflow handling.
19319         * config/rs6000/darwin-ldouble-format: New file.
19320
19321 2004-07-30  Roger Sayle  <roger@eyesopen.com>
19322             Richard Henderson  <rth@redhat.com>
19323
19324         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
19325         9 into the equivalent lea instruction.
19326
19327 2004-07-30  Richard Henderson  <rth@redhat.com>
19328
19329         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
19330         with DECL_INITIAL if fb_lvalue.
19331         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
19332         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
19333         with <Cxxx>.
19334         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
19335
19336 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
19337
19338         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
19339         pointer escapes through a function call, assume that the
19340         callee will dereference it.
19341         (add_pointed_to_var): Assume that VALUE is always an
19342         ADDR_EXPR.
19343         (collect_points_to_info_r): Only call add_pointed_to_var if
19344         the value is an ADDR_EXPR.
19345
19346 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
19347
19348         * tree-ssa-alias.c (create_alias_map_for): Do not get the
19349         alias set of the inner type of ARRAY_TYPEs.
19350
19351 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19352
19353         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
19354         setting a non-register to UNDEFINED right before the call to
19355         set_lattice_value.
19356
19357 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19358
19359         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
19360
19361 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19362
19363         * tree-ssa.c (verify_flow_sensitive_alias_info): When
19364         comparing points-to sets of different pointers, make sure the
19365         second pointer is actually referenced in the code.
19366
19367 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
19368
19369         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
19370         (got_symbolic_operand): Remove unreachable code.
19371         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
19372         setjmp_operand; add entry for tls_symbolic_operand.
19373         * config/ia64/ia64-protos.h: Remove all prototypes of
19374         predicate functions.
19375
19376 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
19377
19378         * c-common.h (lang_post_pch_load): New variable.
19379         * c-pch.c (lang_post_pch_load): Define it.
19380         (c_common_read_pch): Use it.
19381         * cgraphunit.c (record_call_1): Give the front end a chance to
19382         record additional needed entities when a variable is marked as
19383         needed.
19384         * tlink.c (recompile_files): Robustify.
19385         (scan_linker_output): If a symbol is assigned to a file,
19386         but after recompilation is not present there, issue an error
19387         message.
19388
19389 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19390
19391         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
19392         Take orig_loop argument and pass it to set_level.
19393         (schedule_sm): Pass the correct orig_loop to force_move_till.
19394
19395 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19396
19397         * cfgloop.c (update_latch_info): Update dominator of the new block.
19398         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
19399         info.
19400         * dominance.c (verify_dominators): Check that the dominance tree is
19401         connected.
19402         (recount_dominator): Ignore unreachable blocks.
19403         (iterate_fix_dominators): Cleanup old dominance information before
19404         recomputing it.
19405
19406 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19407
19408         * tree-ssa-operands.c (get_expr_operands): Revert changes
19409         to ADDR_EXPR processing introduced by:
19410             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19411             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
19412
19413 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
19414
19415         * doc/implement-c.texi: Add C90 subclause references.  Point to
19416         preprocessor documentation instead of duplicating it.  Add points
19417         only present in C90.  Fill in documentation for all points.
19418
19419 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19420
19421         * pa.c (output_movb): Correct typo.
19422
19423 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
19424
19425         * ra.h (single_reg_in_regclass): Declare.
19426         * ra.c (single_reg_in_regclass): Define.
19427         (first_hard_reg): New.
19428         (init_ra): Initialize single_reg_in_regclass.
19429         * ra-colorize.c (ok_class): New.
19430         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
19431
19432 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
19433
19434         * gcov-io.h: Allow zero tag as EOF indicator.
19435         (gcov_is_eof): Remove.
19436         (gcov_truncate): Remove.
19437         * gcov-io.c (gcov_seek): Always SEEK_SET.
19438         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
19439         EOF tag.
19440         * coverage.c (read_counts_file): Don't use gcov_is_eof.
19441         * gcov-dump.c (dump_file): Likewise.
19442         * gcov.c (read_graph_file, read_count_file): Likewise.
19443
19444         * c-decl.c (complete_array_type): Don't gratuitously copy
19445         maxindex.  Check it always has a type.
19446
19447 2004-07-29  Steven Bosscher  <stevenb@suse.de>
19448
19449         * rtl.c (currently_expanding_to_rtl): New.
19450         * rtl.h (currently_expanding_to_rtl): Export it.
19451         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
19452
19453         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
19454         inliner hack.
19455         * config/sh/sh.c: Replace rtx_equal_function_value_matters
19456         with currently_expanding_to_rtl.
19457         * config/sh/sh.md: Likewise.
19458         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
19459
19460 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
19461
19462         Introduce sh2a support.
19463         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
19464         * config.gcc: Build multilibs for sh2a and sh2a-single by
19465         default.
19466         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
19467         default.  Split their tests out of the corresponding SH4
19468         multilibs.
19469         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
19470         multilibs for SH2a.
19471         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19472         * config.gcc: Handle sh2a multilibs and cpu selection.
19473         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
19474         * config/sh/t-mlib-sh2a: New.
19475         * config/sh/t-mlib-sh2a-nofpu: New.
19476         * config/sh/t-mlib-sh2a-single: New.
19477         * config/sh/t-mlib-sh2a-single-only: New.
19478         2004-07-09  Nick Clifton  <nickc@redhat.com>
19479         Issue 43400
19480         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
19481         -ml and -m2a are used together.
19482         2004-03-23  DJ Delorie  <dj@redhat.com>
19483         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
19484         when we have a double-sized FPU.
19485         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
19486         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
19487         is set.
19488         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
19489         -msh2a-single and -msh2a-single-only
19490         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
19491         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
19492         is set.
19493         2004-02-20  DJ Delorie  <dj@delorie.com>
19494         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
19495         2004-02-20  Fred Fish <fnf@redhat.com>,
19496         Corinna Vinschen <vinschen@redhat.com>
19497         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
19498         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
19499         2004-02-18  DJ Delorie  <dj@redhat.com>
19500         * config/sh/sh.c (broken_move): Add support for movi20.
19501         * config/sh/sh.h: Likewise.
19502         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
19503         * config/sh/sh.md (udivsi3_sh2a): New.
19504         (udivsi3): Call it.
19505         (divsi3_sh2a): New.
19506         (divsi3): Call it.
19507         (mul_r): New.
19508         (ashlsi3_sh2a): New.
19509         (ashrsi3_sh2a): New.
19510         (lshrsi3_sh2a): New.
19511         (movsi_i): Disable for sh2a.
19512         (movsi_ie): Add movi20.
19513         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
19514         sh2a, for -m2a-nofpu mode.
19515         2004-02-13  DJ Delorie  <dj@redhat.com>
19516         * config/sh/lib1funcs.asm: Handle double vs single better.
19517         * config/sh/sh.h: Likewise.
19518         2004-02-09  DJ Delorie  <dj@redhat.com>
19519         * config/sh/crt1.asm: Add support for sh2a.
19520         * config/sh/elf.h: Likewise.
19521         * config/sh/lib1funcs.asm: Likewise.
19522         * config/sh/sh.c: Likewise.
19523         * config/sh/sh.md: Likewise.
19524         * config/sh/sh.h: Likewise.
19525         * config/sh/t-sh: Likewise.
19526
19527 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19528
19529         * config/frv/frv.md (movqi_internal, movhi_internal,
19530         movsi_internal): Add backup alternatives for memory inputs.
19531
19532 2004-07-28  Matt Austern  <austern@apple.com>
19533
19534         * config/darwin.c (darwin_one_byte_bool): New global variable.
19535         * config/darwin.h (darwin_one_byte_bool): Declare.
19536         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
19537         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
19538         value of darwin_one_byte_bool.
19539         * doc/invoke.texi: Document -mone-byte-bool flag.
19540
19541 2004-07-28  Eric Christopher  <echristo@redhat.com>
19542
19543         * c-common.c (c_common_unsafe_for_reeval): Delete.
19544         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
19545         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
19546         * calls.c (fix_unsafe_tree): Delete.
19547         (expand_call): Delete code which used above.
19548         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
19549         * expr.c (expand_expr_real_1): Ditto.
19550         * fold-const.c (non_lvalue): Ditto.
19551         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19552         (lhd_unsafe_for_reeval): Ditto.
19553         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
19554         * langhooks.h (unsafe_for_reeval): Ditto.
19555         (unsave_expr_now): Adjust comment.
19556         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
19557         (estimate_num_insns_1): Ditto.
19558         * tree-pretty-print.c (dump_generic_node): Ditto.
19559         * tree.c (expr_align): Ditto.
19560         (unsave_expr): Delete.
19561         (unsafe_for_reeval): Ditto.
19562         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
19563         * tree.def (UNSAVE_EXPR): Delete.
19564         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19565
19566 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
19567
19568         * tree.h (enum tls_model): Move ...
19569         * coretypes.h: ... here.
19570
19571 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
19572
19573         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
19574
19575 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19576
19577         * cse.c (validate_canon_reg): New function, split out from...
19578         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
19579
19580 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19581
19582         * tree-ssa-alias.c (maybe_create_global_var): Don't just
19583         return if .GLOBAL_VAR has been created.
19584
19585 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19586
19587         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
19588         every variable that may have aliases, not just tags.
19589
19590 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
19591
19592         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
19593         move_from_CR_eq_bit.
19594         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
19595
19596
19597         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
19598         e500_flip_eq_bit.
19599
19600         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
19601         output_e500_flip_eq_bit.
19602
19603         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
19604         output_e500_flip_eq_bit.
19605         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
19606         output_e500_flip_eq_bit.
19607         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
19608         (print_operand): case D.  Get to EQ bit.
19609
19610 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19611
19612         * gcov.c (function_summary): Add missing \n.
19613
19614 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19615
19616         Introduce sh4a support.
19617         * config.gcc: Handle sh4a multilibs and cpu selection.
19618         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
19619         * config/sh/t-mlib-sh4a: New.
19620         * config/sh/t-mlib-sh4al: New.
19621         * config/sh/t-mlib-sh4a-nofpu: New.
19622         * config/sh/t-mlib-sh4a-single: New.
19623         * config/sh/t-mlib-sh4a-single-only: New.
19624         2004-02-20  DJ Delorie  <dj@redhat.com>
19625         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
19626         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
19627         2003-08-22  Eric Christopher  <echristo@redhat.com>
19628         * config/sh/sh4a.md: Update for chip errata.
19629         2003-08-07  Eric Christopher  <echristo@redhat.com>
19630         * config/sh/sh4a.md: New file. sh4a processor description.
19631         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
19632         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
19633         of -m4a-nofpu.
19634         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
19635         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
19636         * doc/invoke.texi (SH Options): Document -m4al.
19637         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
19638         * config/sh/sh.c (expand_block_move): Remove commented-out code
19639         checked in by mistake.
19640         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
19641         single elements from SFmode vectors.
19642         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
19643         register.
19644         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
19645         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
19646         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
19647         sh_fsca_int2sf): Remove variable declarations.
19648         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19649         sh_fsca_int2sf): New functions.
19650         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
19651         sh_fsca_int2sf_rtx): New static variables.
19652         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
19653         sh_fsca_int2sf): Declare.
19654         * config/sh/sh.md: Adjust.
19655         * doc/invoke.texi (SH Options): Document new options.
19656         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
19657         compatibility from SH4 code.
19658         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
19659         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
19660         early.
19661         (memory_movsrc_operand): Renamed to...
19662         (unaligned_load_operand): ... this.  Simplified.
19663         * config/sh/sh.h (PREDICATE_CODES): Adjust.
19664         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
19665         input operand to SImode, and adjust the others.  Introduce
19666         post-increment by peephole.
19667         * config/sh/sh.c (expand_block_move): Give the target address the
19668         same mode as the temp reg.
19669         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
19670         copying.
19671         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
19672         Introduce support for SH4a.
19673         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
19674         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
19675         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19676         sh_fsca_int2sf): New.
19677         (sh_init_builtins): Initialize them.
19678         (print_operand): Support `d'.
19679         (expand_block_move): Use movua if src is misaligned.
19680         (memory_movsrc_operand): New.
19681         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
19682         and one of the SH4 macros.
19683         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
19684         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
19685         SELECT_SH4A_SINGLE): New.
19686         (TARGET_NONE): Add SH4A_BIT.
19687         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
19688         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
19689         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
19690         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
19691         (enum processor_type): Added PROCESSOR_SH4A.
19692         (PREDICATE_CODES): Add memory_movsrc_operand.
19693         * config/sh/sh.md: Removed unused variables.
19694         (attr cpu): Add sh4a.
19695         (attr type): Add movua, fsrra and fsca.
19696         (prefetch): New, for SH4.
19697         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
19698         (toggle_sz): Set type to fp.
19699         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
19700         (movua, extv, extzv): New.
19701         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
19702         and 4a-single-only.
19703
19704 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19705
19706         * tree-optimize.c (init_tree_optimization_passes): Schedule
19707         pass_may_alias right after the program is renamed into SSA.
19708         * tree-pass.h (PROP_alias): Define.
19709         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
19710         * tree-sra.c (pass_sra): Likewise.
19711         * tree-ssa-ccp.c (pass_ccp): Likewise.
19712         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
19713         * tree-ssa-dce.c (pass_dce): Likewise.
19714         * tree-ssa-dom.c (pass_dominator): Likewise.
19715         * tree-ssa-dse.c (pass_dse): Likewise.
19716         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19717         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19718         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
19719         * tree-ssa-pre.c (pass_pre): Likewise.
19720         * tree-tailcall.c (pass_tail_recursion): Likewise.
19721         * tree-ssa.c (pass_redundant_phi): Likewise.
19722         * tree-ssa-alias.c (aliases_computed_p): Remove.
19723         Update all users.
19724         (init_alias_info): Do not mark all type tags for renaming
19725         unconditionally.
19726         Clear may_aliases from every symbol.
19727         (setup_pointers_and_addressables): If a pointer has not been
19728         dereferenced and it had a type tag, clear it and mark the old
19729         tag for renaming.
19730
19731 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19732
19733         PR tree-optimization/16705
19734         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
19735         .GLOBAL_VAR.
19736
19737 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19738
19739         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
19740         check.
19741
19742         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
19743         don't make another one.
19744
19745         PR optimization/15077
19746         * function.h (struct function): Add field saved_static_chain_decl.
19747         Fix comment for static_chain_decl.
19748         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
19749         * tree-inline.h (save_body): Add new arg.
19750         * tree-optimize.c (tree_rest_of_compilation): Handle saving
19751         static_chain_decl.
19752
19753 2004-07-27  Richard Henderson  <rth@redhat.com>
19754
19755         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
19756         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
19757         is_gimple_addressable.
19758         * tree-gimple.c (is_gimple_addressable): Rename from
19759         is_gimple_addr_expr_arg; accept INDIRECT_REF.
19760         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
19761         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
19762         rename to is_gimple_addressable.
19763
19764 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
19765
19766         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
19767
19768 2004-07-27  Richard Henderson  <rth@redhat.com>
19769
19770         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
19771         before rounding.
19772
19773 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
19774
19775         * libgcc2.c: Change all conditionals testing
19776         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
19777         * libgcc2.h: Likewise.
19778         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
19779         TYPE_PRECISION of float80_type to 80.
19780         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
19781         of fpreg_type and float80_type to 80.
19782         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
19783         * config/m68k/netbsd-elf.h:
19784         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
19785         to evaluate to 80 whenever they would formerly have evaluated to 96.
19786         * config/i386/sco5.h: Remove unnecessary redefinition of
19787         LONG_DOUBLE_TYPE_SIZE.
19788         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
19789         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
19790         XFmode, with a bitsize of 80.  Update commentary.
19791         * config/ia64/ia64-modes.def: Likewise.
19792         * config/m68k/m68k-modes.def: Likewise.
19793
19794 2004-07-27  Steven Bosscher  <stevenb@suse.de>
19795
19796         * cfgexpand.c (tree_expand_cfg): Fix comment.
19797
19798         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
19799         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
19800         Remove.
19801         (prepare_function_start): Don't set rtx_equal_function_value_matters.
19802         * integrate.c (copy_rtx_and_substitute): Don't test for it.
19803         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
19804         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
19805         here again.  Update leading comment.
19806         * rtl.c (rtx_equal_function_value_matters): Remove.
19807         (rtx_equal_p): Don't test for it.
19808         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
19809         Likewise.
19810
19811         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
19812         * rtl.c (note_insn_name): Likewise.
19813         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
19814         * final.c (final_scan_insn): Likewise.
19815
19816         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
19817         * passes.c (rest_of_handle_eh): Do it here.
19818
19819         * stmt.c (struct nesting): Remove struct nesting block member.
19820         (struct stmt_status): Remove x_block_start_count field.
19821         (current_block_start_count): Remove.
19822
19823 2004-07-27  Brian Booth  <bbooth@redhat.com>
19824
19825         * tree-optimize.c (register_one_dump_file): Update condition that uses
19826         static_pass_number.
19827         (dup_pass_1): Replace with...
19828         (next_pass_1): This.
19829         (NEXT_PASS): Call next_pass_1.
19830         (DUP_PASS): Remove.
19831         (init_tree_optimization_passes): Remove uses of DUP_PASS.
19832         (execute_one_pass): Update condition that uses
19833         static_pass_number.
19834         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
19835         integer.
19836
19837 2004-07-27  Nick Clifton  <nickc@redhat.com>
19838
19839         * config/m32r/m32r.c: Include integrate.h in order to get the
19840         prototype for get_hard_reg_initial_val().
19841
19842         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
19843         and tidy up indentation.
19844         (final_presence_set): Use absence_set instead, so that if there is
19845         nothing in the "o" pipe the "s" pipe can be scheduled.
19846
19847 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
19848
19849         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
19850         don't have PT_VARS nor PT_MALLOC set.
19851         Clear name tag from pointers that have not been dereferenced.
19852         (set_pt_anything, set_pt_malloc): Forward declare.
19853         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
19854         not type compatibility when determining if a pointer can be
19855         copy propagated.
19856
19857 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
19858
19859         * expr.h (canonicalize_condition, get_condition): Add an int argument.
19860         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
19861         it to check whether the condition is still valid at the jump insn.
19862         * ifcvt.c (noce_get_condition): Likewise.
19863         (noce_get_alt_condition): Update call to canonicalize_condition.
19864         * loop-iv.c (simplify_using_initial_values): Update call to
19865         get_condition.  Remove FIXME.
19866         (check_simple_exit): Update call to get_condition.
19867         * loop-unswitch.c (may_unswitch_on): Likewise.
19868         * loop.c (check_dbra_loop): Likewise.
19869         (canonicalize_condition, get_condition): Add an argument to say whether
19870         the condition must still be valid at INSN.
19871         (get_condition_for_loop): Update call to get_condition.  Require that
19872         the condition be valid at INSN.
19873         * predict.c (estimate_probability): Update call to get_condition.
19874         Remove unused earliest parameter.
19875         (expected_value_to_br_prob): Update call to canonicalize_condition.
19876
19877 2004-07-26  Eric Christopher  <echristo@redhat.com>
19878
19879         * tree-dfa.c (add_referenced_var): Register initializers of global
19880         variables.
19881
19882 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
19883
19884         * config/i386/i386.c (function_arg): Always treat 8-
19885         and 16-byte wide vectors the same, even if MMX/SSE
19886         are disabled.
19887         (contains_128bit_aligned_vector_p): Add comment.
19888
19889 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
19890
19891         * ra.h (enum node_type): Rename to:
19892         (enum ra_node_type).
19893         * ra-colorize.c: Likewise.
19894
19895 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19896
19897         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
19898         after simplifying the jump.
19899
19900 2004-06-26  Richard Henderson  <rth@redhat.com>
19901
19902         * calls.c (combine_pending_stack_adjustment_and_call): Make
19903         preferred_unit_stack_boundary argument unsigned.  Make
19904         unadjusted_alignment unsigned.
19905         (expand_call): Make preferred_stack_boundary and
19906         preferred_unit_stack_boundary variables unsigned.
19907         * function.c (assign_stack_local_1): Make alignment unsigned.
19908         * function.h (struct function): Make stack_alignment_needed,
19909         preferred_stack_boundary unsigned.
19910         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
19911         (ix86_compute_frame_layout): Make stack_alignment_needed,
19912         preferred_alignment variables unsigned.
19913         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
19914
19915 2004-07-26  Tom Tromey  <tromey@redhat.com>
19916
19917         * tree.h: Fix typo in comment.
19918
19919 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
19920
19921         PR bootstrap/12804
19922         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
19923         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
19924         (ggc_free): Remove incorrect freeing.
19925         (sweep_pages): Advance PP for large pages.  Fix indentation.
19926
19927 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19928
19929         PR rtl-optimization/16643
19930         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
19931         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
19932         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
19933         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
19934         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
19935         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19936         * rtl.h (tracer): Add a flags parameter.
19937         * tracer.c (tracer): Pass it to cfg_layout_initialise.
19938         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
19939         (rest_of_handle_reorder_blocks): Update calls to tracer and
19940         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
19941         (rest_of_handle_tracer): Pass 0 to tracer.
19942         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
19943
19944 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
19945
19946         PR target/16239
19947         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
19948         f->f.
19949
19950 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
19951
19952         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
19953         (BINFO_BASE_ACCESS): Adjust.
19954         (BINFO_BASE_ACCESS_APPEND): New.
19955         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
19956         * dbxout.c (dbxout_type): Adjust binfo access accessing.
19957         * dwarf2out.c (gen_member_die): Likewise.
19958         * tree-dump.c (deque_and_dump): Likewise.
19959
19960 2004-07-26  Falk Hueffner  <falk@debian.org>
19961
19962         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
19963         costs.
19964
19965 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19966
19967         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
19968         value off of the stack if TARGET_USE_FFREEP.
19969
19970 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19971
19972         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
19973         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
19974         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
19975         check on invocation of XRESIZEVEC ().
19976
19977 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19978
19979         * c-common.c (disable_builtin_function): Rename variable n to
19980         new_disabled_builtin.
19981         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
19982         Rename local variable old to old_decl.
19983         * gensupport.c (shift_output_template): Rename parameter old to src.
19984         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
19985         old_rtx and newx to new_rtx.
19986
19987 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19988
19989         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
19990         of c-pragma.h.
19991         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
19992         enum cpp_ttype.
19993         * c-lex.c: Likewise.
19994
19995 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19996
19997         * fold-const.c (constant_boolean_node): Make extern.
19998         (make_range): Wrap long lines.
19999         (fold_cond_expr_with_comparison): Remove unnecessary call to
20000         pedantic_non_lvalue.  Add missing calls to fold_convert.
20001         (fold_truthop): Add missing calls to fold_convert.
20002         (fold): Likewise.
20003         * tree.h (constant_boolean_node): Add prototype here.
20004         * builtins.c (expand_builtin_strncmp): Add missing calls to
20005         fold_convert.
20006         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
20007         Call fold_convert and constant_boolean_node to correct types.
20008         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
20009         missing call to fold_convert to correct types.
20010
20011 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
20012             Brian Ryner  <bryner@brianryner.com>
20013
20014         PR c++/9283
20015         PR c++/15000
20016         * c-common.c (c_common_attribute_table): Allow
20017         handle_visibility_attribute to be called for types.
20018         (handle_visibility_attribute) When given a type, set the visibility
20019         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
20020         so that we can check later whether the attribute was present. Added
20021         warning if attribute applied to non class type.
20022         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
20023         decls and checking that they are consistent.
20024         * common.opt: Added -fvisibility.
20025         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
20026         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
20027         * flags.h, tree.h: Added assorted support defines for overall patch
20028         * opts.c: Added parsing support for -fvisibility.
20029         * tree.c (build_decl): Set visibility for all decls to be whatever
20030         is in force at that time.
20031         * varasm.c (default_binds_local_p_1): Reworked logic determining
20032         when to make a symbol locally bound.
20033         * doc/invoke.texi: Added documentation for -fvisibility and
20034         -fvisibility-inlines-hidden.
20035
20036 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20037
20038         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
20039         * c-common.c: Add missing casts from void * to other types.
20040         * c-decl.c: Likewise.
20041         * c-format.c: Likewise.
20042         * c-lex.c: Likewise.
20043         * c-pragma.c: Likewise.
20044         * c-typeck.c: Likewise.
20045         * defaults.h: Likewise.
20046         * genconstants.c: Likewise.
20047         * gengtype-lex.l: Likewise.
20048         * genmodes.c: Likewise.
20049         * read-rtl.c: Likewise.
20050         * rtl.c: Likewise.
20051
20052 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20053
20054         * bitmap.c: Use type-safe memory allocation macros from libiberty.
20055         * c-common.c: Likewise.
20056         * c-decl.c: Likewise.
20057         * c-lang.c: Likewise.
20058         * c-lex.c: Likewise.
20059         * c-opts.c: Likewise.
20060         * c-parse.in: Likewise.
20061         * c-typeck.c: Likewise.
20062         * genconditions.c: Likewise.
20063         * gengtype-lex.l: Likewise.
20064         * gengtype-yacc.y: Likewise.
20065         * gengtype.c: Likewise.
20066         * genmodes.c: Likewise.
20067         * gensupport.c: Likewise.
20068         * read-rtl.c: Likewise.
20069         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
20070         htab_find_slot().
20071
20072 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20073
20074         * c-decl.c (groktypename, groktypename_in_param_context): Rename
20075         variable typename to type_name.
20076         * c-lex.c (interpret_float): Likewise.
20077
20078 2004-07-25  Roger Sayle  <roger@eyesopen.com>
20079
20080         * convert.c (convert_to_real, convert_to_integer,
20081         convert_to_complex): Replace calls to build with calls to buildN.
20082         * coverage.c (tree_coverage_counter_ref): Likewise.
20083         * dojump.c (do_jump): Likewise.
20084         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
20085         * emit-rtl.c (component_ref_for_mem_expr,
20086         set_mem_attributes_minus_bitpos): Likewise.
20087         * explow.c (update_nonlocal_goto_save_area): Likewise.
20088         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
20089         expand_mult_add): Likewise.
20090         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
20091         store_constructor, get_inner_reference, expand_expr_real_1,
20092         try_casesi, try_tablejump): Likewise.
20093         * function.c (expand_function_start): Likewise.
20094         * stmt.c (emit_case_bit_tests, expand_end_case_type,
20095         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
20096         * stor-layout.c (place_union_field, layout_type): Likewise.
20097         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
20098         * varasm.c (copy_constant): Likewise.
20099
20100 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20101
20102         * c-common.c: Rename all identifiers named `new'.
20103         * c-decl.c: Likewise.
20104         * gensupport.c: Likewise.
20105         * simplify-rtx.c: Likewise.
20106         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
20107         with XNEW().
20108         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
20109         with XNEWVEC().
20110
20111 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
20112
20113         PR c/15360
20114         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
20115         declarations until after calling pushdecl.
20116         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
20117         "extern" and not on whether the declaration is initialized.
20118
20119 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
20120
20121         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
20122         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
20123         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
20124         "cpplib.h", "c-pragma.h", "c-common.h".
20125         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
20126         (solaris_register_pragmas): New functions.
20127         * config/sol2-protos.h: New file.
20128         * config/sol2.c: New file.
20129         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
20130         (REGISTER_TARGET_PRAGMAS): New macros.
20131         (solaris_pending_aligns, solaris_pending_inits)
20132         (solaris_pending_finis): New variables.
20133         * config/t-sol2 (sol2-c.o): Update dependencies.
20134         (sol2.o): New rule.
20135         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
20136         SUBTARGET_INSERT_ATTRIBUTES.
20137         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
20138         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
20139         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
20140         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
20141         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
20142         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
20143         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
20144         * config/sparc/sparc.c (sparc_attribute_table): New.
20145         (TARGET_INSERT_ATTRIBUTES): Define in terms of
20146         SUBTARGET_INSERT_ATTRIBUTES.
20147         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
20148         is defined.
20149         * doc/extend.texi (Solaris Pragmas): New section.
20150
20151 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20152
20153         * c-common.c: Rename all identifiers named `class' to `cl'.
20154         * c-common.h: Likewise.
20155         * c-parse.in: Likewise.
20156         * c-typeck.c: Likewise.
20157         * genmodes.c: Likewise.
20158         * real.c: Likewise.
20159         * real.h: Likewise.
20160         * recog.c: Likewise.
20161         * recog.h: Likewise.
20162         * regrename.c: Likewise.
20163         * tree.h: Likewise.
20164         * c-common.c (builtin_function_2): Change type of 5th parameter from
20165         int to enum built_in_function. Change type of 8th parameter from int
20166         to bool.
20167         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
20168         with GGC_CNEW().
20169         * c-typeck.c (convert_arguments): Change type of formal_prec from
20170         int to unsigned int.
20171         * genmodes.c (blank_mode): Make a few negative constants unsigned.
20172         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
20173         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
20174         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
20175         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
20176         iterator to for_all_modes () instead of an enum because enums can't
20177         be incremented in C++.
20178
20179
20180 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
20181
20182         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
20183         hard registers.
20184
20185 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20186
20187         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
20188         Handle ARRAY_RANGE_REF like ARRAY_REF.
20189
20190 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
20191
20192         * c-typeck.c (digest_init): Don't allow arrays of signed or
20193         unsigned variants of wchar_t to be initialized by wide string
20194         constants.  Do allow arrays of enumerated types compatible with
20195         wchar_t to be initialized by wide string constants.  Refine tests
20196         distinguishing wide and narrow strings and arrays.  Give specific
20197         error for arrays of other integer types initialized by string
20198         constants.
20199         (output_init_element, process_init_element): Check for
20200         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
20201         initializing with string constants.
20202
20203 2004-07-25  Richard Henderson  <rth@redhat.com>
20204
20205         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
20206         on the RESULT_DECL.
20207         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20208         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
20209         DECL_IGNORED_P to new decl.
20210
20211 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
20212
20213         * config/ia64/ia64.c (general_xfmode_operand)
20214         (destination_xfmode_operand): Delete.
20215         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
20216         * config/ia64/ia64.md (*movxf_internal): Use general_operand
20217         and destination_operand.
20218
20219 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
20220
20221         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
20222         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
20223
20224 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
20225             Zack Weinberg  <zack@codesourcery.com
20226
20227         PR 16684
20228         * c-decl.c (diagnose_mismatched_decls): Don't issue a
20229         redundant-declaration warning the first time a builtin is
20230         declared explicitly.
20231
20232 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20233
20234         * tree.h (staticp): Change return type to bool.
20235
20236 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20237
20238         * c-common.c (c_staticp): Last episode of the staticp saga.
20239
20240 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20241
20242         * c-common.h (c_staticp): Change return type from int to bool.
20243         * tree.c (staticp): Likewise.
20244         * langhooks.h (staticp): Likewise.
20245
20246 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20247
20248         * langhooks-def.h (lhd_staticp): Change return type from int to
20249         bool in prototype to match definition.
20250
20251 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20252
20253         * system.h (bool, true, false): Don't redefine as preprocessor macros
20254         in C++.
20255
20256 2004-07-24  Roger Sayle  <roger@eyesopen.com>
20257
20258         * expmed.c (init_expmed): A signed modulus by a power of two is
20259         considered cheap if its less than or equal to four instructions.
20260
20261 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20262
20263         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
20264         GGC_CNEWVAR): New macros.
20265
20266 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20267
20268         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
20269         lists.
20270         * c-decl.c: Likewise.
20271         * c-format.c: Likewise.
20272         * c-lex.c: Likewise.
20273         * c-opts.c: Likewise.
20274         * c-pragma.c: Likewise.
20275         * c-typeck.c: Likewise.
20276         * gencheck.c: Likewise.
20277         * genconditions.c: Likewise.
20278         * genconfig.c: Likewise.
20279         * genflags.c: Likewise.
20280         * gengtype.c: Likewise.
20281         * gensupport.c: Likewise.
20282         * ggc-none.c: Likewise.
20283         * langhooks.c: Likewise.
20284         * statistics.h: Likewise.
20285         * stub-objc.c: Likewise.
20286         * java/decl.c: Likewise.
20287
20288 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
20289
20290         * config/m68k/m68k.c (output_scc_di): Fix coding style.
20291         (symbolic_operand): Fix prototype.
20292         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
20293         * config/m68k/m68k.md: Add constants for registers a0 and sp and
20294         use them, change from the "{...}" syntax to the simpler {...}
20295         syntax.
20296         (*cfv4_extendqisi2): Fix destination predicate.
20297         * config/m68k/m68k-protos.h: Remove various declarations also
20298         generated via PREDICATE_CODES.
20299
20300 2004-07-23  Mike Stump  <mrs@apple.com>
20301
20302         * c-typeck.c (convert_for_assignment): Tightened up pointer
20303         converstions that differ in signedness.
20304
20305 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
20306
20307         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
20308
20309 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20310
20311         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
20312         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
20313
20314         * gimplify.c (gimplify_compound_lval): Check for no handled
20315         operations, rather than checking for explicit list of nodes.
20316         (is_gimple_addr_expr_arg_or_indirect): New function.
20317         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
20318         redundant setting of TREE_INVARIANT.
20319         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
20320         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
20321
20322 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
20323
20324         PR tree-optimization/16688
20325         PR tree-optimization/16689
20326         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
20327         unnecessary initialization of 'tag'.
20328         (get_tmt_for): Check that the new type tag has the same alias
20329         set as the pointed-to type.
20330         (group_aliases): Only regular variables need to be removed
20331         from the alias set of a name tag.
20332         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
20333         propagation if the two types are not compatible.
20334         (merge_alias_info): Rename from replace_ssa_names_ann.
20335         Add more checking.
20336         (replace_exp_1): If both arguments are SSA_NAMEs, check that
20337         the propagation can be done.
20338         Only call merge_alias_info on pointers.
20339         (propagate_value): Likewise.
20340         * tree-ssa-copyrename.c: Include langhooks.h.
20341         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
20342         to do the merging.
20343         Do not coalesce variables with incompatible types.
20344         (rename_ssa_copies): Call replace_ssa_name_symbol.
20345         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
20346         the same type as the underlying _DECL.
20347         * tree-ssanames.c (replace_ssa_name_symbol): New function.
20348         * tree.h (replace_ssa_name_symbol): Declare.
20349
20350 2004-07-23  Richard Henderson  <rth@redhat.com>
20351
20352         PR c++/16277
20353         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
20354         unshare it properly.
20355         (gimplify_modify_expr_rhs): Push assignment from a conditional into
20356         the conditional for all non-register types.
20357
20358 2004-07-23  Richard Henderson  <rth@redhat.com>
20359
20360         * expr.c (expand_expr_real_1): Don't handle non-local variables.
20361         * expr.h (fix_lexical_addr): Remove.
20362         * function.c (NEED_SEPARATE_AP): Remove.
20363         (fix_lexical_addr): Remove.
20364         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
20365         not null decl_function_context.
20366         (create_alias_vars): Likewise.
20367         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
20368         (simple_goto_p): Likewise.
20369         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
20370         * tree-ssa-ccp.c (get_default_value): Likewise.
20371         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
20372         * tree.c (needs_to_live_in_memory): Likewise.
20373         * tree-flow-inline.h (may_be_aliased): Move...
20374         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
20375         when TREE_STATIC variables may be addressable.
20376
20377 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
20378
20379         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
20380
20381 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
20382
20383         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
20384         bitmap contents if GENERATOR_FILE is defined.
20385         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
20386         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
20387
20388 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
20389
20390         * c-decl.c (start_function): Form composite type of function types
20391         rather than copying type from previous prototype declaration.
20392
20393 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
20394
20395         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
20396         the const qualifier for the second argument in the C++ functions.
20397
20398         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
20399         specific pointer types.
20400
20401         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
20402         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
20403         for vector bool and/or vector pixel, add C++ and C missing support.
20404         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
20405         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
20406         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
20407         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
20408         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
20409         missing C++ and C support for vector bool and/or vector pixel.
20410         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
20411         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
20412         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
20413         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
20414         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
20415         C++ and C types used for vector bool and/or vector pixel.
20416         (vec_st, vec_stl): Add C++ support for vector pixel.
20417         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
20418         (vec_all_ne): Add C++ support for vector pixel.
20419
20420         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
20421         (vec_vmulesb): Add missing C++ function.
20422         (vec_perm): Fix type of third argument in C++ function.
20423         (vec_vsum4shs): Fix C++ function name.
20424         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
20425         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
20426         argument passed to the error handler in C macro.
20427         (vec_nmsub): Remove extra parens around argument names in C macro.
20428         (vec_packpx): Add missing parens in C macro.
20429
20430 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
20431
20432         * machmode.def: Remove vector modes.
20433         * config/alpha/alpha-modes.def: Add supported vector modes.
20434         * config/arm/arm-modes.def: Likewise.
20435         * config/frv/frv-modes.def: Likewise.
20436         * config/i386/i386-modes.def: Likewise.
20437         * config/rs6000/rs6000-modes.def: Likewise.
20438         * config/sh/sh-modes.def: Likewise.
20439
20440 2004-07-23  Matthias Klose  <doko@debian.org>
20441
20442         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
20443         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
20444         * config.h: Regenerate.
20445         * configure: Likewise.
20446
20447 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
20448
20449         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
20450         generated SYMBOL_REFs for labels.
20451         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
20452         Change prototype.
20453         (machopic_stub_name): Remove.
20454         (machopic_indirection_name): New function.
20455         (machopic_mcount_stub_name): Likewise.
20456         (machopic_classify_name): Remove.
20457         (machopic_function_base_sym): New function.
20458         (machpoic_classify_symbol): Likewise.
20459         (machopic_classify_ident): Remove.
20460         (machopic_define_ident): Likewise.
20461         (machopic_define_name): Likewise.
20462         (machopic_name_defined_p): Likewise.
20463         (machopic_ident_defined_p): Likewise.
20464         (darwin_strip_name_encoding): Likewise.
20465         (machopic_define_symbol): New function.
20466         * config/darwin.c (hashtab.h): Include.
20467         (machopic_defined_list): Remove.
20468         (machopic_classify_ident): Likewise.
20469         (machopic_classify_name): Likewise.
20470         (machopic_ident_defined_p): Likewise.
20471         (machopic_define_ident): Likewise.
20472         (machopic_define_name): Likewise.
20473         (machopic_symbol_defined_p): New function.
20474         (machopic_classify_symbol): Likewise.
20475         (machopic_data_defined_p): Use machopic_classify_symbol.
20476         (machopic_define_symbol): New function.
20477         (machopic_function_base_sym): New function.
20478         (machopic_non_lazy_pointers): Remove.
20479         (machopic_non_lazy_ptr_name): Likewise.
20480         (machopic_stubs): Likewise.
20481         (machopic_stub_name): Likewise.
20482         (NON_LAZY_POINTER_SUFFIX): New macro.
20483         (STUB_SUFFIX): Likewise.
20484         (machopic_indirection): New structure.
20485         (machopic_indirections): New variable.
20486         (machopic_indirection_hash): New function.
20487         (machopic_indirection_eq): Likewise.
20488         (machopic_indirection_name): Likewise.
20489         (machopic_mcount_stub_name): New function.
20490         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
20491         hash table.
20492         (machopic_indirect_data_reference): Rework to use new functions.
20493         (machopic_indirect_call_target): Likewise.
20494         (machopic_legitimize_pic_address): Likewise.
20495         (machopic_output_indirection): New function.
20496         (machopic_finish): Use it.
20497         (machopic_operand_p): Rework to use new functions.
20498         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
20499         (darwin_strip_name_encoding): Remove.
20500         (update_non_lazy_ptrs): Remove.
20501         (update_stubs): Likewise.
20502         (darwin_non_lazy_pcrel): Use new functions.
20503         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20504         (ASM_OUTPUT_LABELREF): Likewise.
20505         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20506         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
20507         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
20508         (TARGET_STRIP_NAME_ENCODING): Do not use
20509         darwin_strip_name_encoding.
20510         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
20511         darwin_strip_name_encoding.
20512         * config/i386/darwin.h (FUNCTION_PROFILER): Use
20513         machopic_mcount_stub_name.
20514         * config/i386/i386.c (x86_output_mi_thunk): Use
20515         machopic_indirection_name, not machopic_stub_name.
20516         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
20517         machopic_function_base_sym.
20518         (print_operand): Use machopic_classify_symbol.
20519         (rs6000_emit_prologue): Use machopic_function_base_sym.
20520         (output_profile_hook): Do not use machopic_stub_name.
20521         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
20522
20523 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20524
20525         PR c/7284
20526         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
20527         as multiplication.
20528
20529 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20530
20531         * doc/implement-c.texi: New file.
20532         * doc/extend.texi (C Implementation): Move to there.
20533         * doc/gcc.texi: Include implement-c.texi.
20534         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
20535
20536 2004-07-22  Jason Merrill  <jason@redhat.com>
20537
20538         * integrate.c (copy_decl_for_inlining): Remove invisible reference
20539         handling.
20540         * tree-inline.c (setup_one_parameter): Likewise.
20541
20542 2004-07-22  Brian Booth  <bbooth@redhat.com>
20543
20544         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
20545         (substitute_and_fold): Propigate into VUSE operands when possible.
20546         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
20547         (cp_lattice_meet): Handle merging of latticevalues when
20548         UNKNOWN_VAL is present.
20549         (visit_stmt): Visit assignments with V_MUST_DEFs.
20550         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
20551         (ccp_fold): Deal with RHS' that are constant and virtual.
20552         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
20553         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
20554         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
20555         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
20556         computing immediate uses.
20557         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
20558         transition.
20559         (replace_vuse_in): New function.
20560         (likely_value): Add check of vuse operands.
20561         (get_default_value): Set the default value of virtually defined
20562         variables to UKNOWN_VAL instead of VARYING.
20563
20564 2004-07-22  Richard Henderson  <rth@redhat.com>
20565
20566         * expr.c (emit_push_insn): Don't use set_mem_attributes.
20567
20568 2004-07-22  Richard Henderson  <rth@redhat.com>
20569
20570         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
20571         variables due to conditional compilation.
20572
20573 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20574
20575         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
20576         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
20577         Release SSA names that have been re-renamed.
20578         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
20579         variable.
20580         * tree-ssa-alias.c (init_alias_info): If aliases have been
20581         computed before, clear existing alias information.
20582         (create_name_tags): Do no fixup PT_ANYTHING pointers.
20583         If the new name tag for a pointer is different than the one it
20584         had before, mark the old tag for renaming.
20585         (replace_may_alias): New function.
20586         (group_aliases): Call it.
20587         (setup_pointers_and_addressables): Always call get_tmt_for.
20588         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
20589         once.
20590         (set_pt_anything): New local function.
20591         (set_pt_malloc): New local function.
20592         (merge_pointed_to_info): Don't merge pointed-to variables from
20593         the original pointer if the destination is pointing to an
20594         unknown location.
20595         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
20596         (add_pointed_to_var): Do not add a variable to the points-to
20597         set if the pointer is already pointing to anywhere.
20598         (collect_points_to_info_r): If the defining statement is a PHI
20599         node, only merge pointed-to information if the argument has
20600         already been visited.
20601         (get_tmt_for): Only create a new tag if the pointer didn't
20602         have one already.
20603         (dump_alias_info): Emit more information.
20604         (dump_points_to_info_for): Likewise.
20605         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
20606         try to get the annotation of an SSA_NAME.
20607         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
20608         alias sets when checking is enabled.
20609         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
20610         (eliminate): Mark basic blocks that will need
20611         EH information cleaned up.
20612         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
20613         predecessor.
20614         Initialize need_eh_cleanup.
20615         (fini_pre): Call tree_purge_all_dead_eh_edges and
20616         cleanup_tree_cfg if needed.
20617         Free need_eh_cleanup.
20618         * tree-ssa.c (verify_ssa_name): New function.
20619         (verify_def): Call it.
20620         Re-arrange to avoid printing too many error messages.
20621         (verify_use): Likewise.
20622         (verify_phi_args): Likewise.
20623         (verify_flow_insensitive_alias_info): New function.
20624         (verify_flow_sensitive_alias_info): New function.
20625         (verify_alias_info): New function.
20626         (verify_ssa): Call verify_alias_info.
20627         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
20628         program.
20629         Re-arrange to avoid printing too many error messages.
20630         * tree-ssanames.c (make_ssa_name): Clear
20631         SSA_NAME_IN_FREE_LIST.
20632         (release_ssa_name): Never release a default definition.
20633         (release_defs): New function.
20634         * tree.h: Declare it.
20635         * tree-ssa-dce.c (remove_dead_stmt): Call it.
20636
20637 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20638
20639         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
20640         If true, do a depth-first search.  Do a breadht-first search,
20641         otherwise.
20642         (walk_use_def_chains): Add new argument IS_DFS.
20643         Update all users.
20644         * tree-flow.h (walk_use_def_chains): Update prototype.
20645
20646 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
20647
20648         * config/cris/cris.md: Tweak formatting.
20649         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
20650         (mover2side, moverside, movemside, movei, op3, andu): Replace
20651         live define_peephole:s with define_peephole2 near-equivalents.
20652         Delete the rest.
20653         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
20654         word-size modes.
20655         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
20656         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
20657         "*mov_sidesi_mem" respectively.
20658
20659 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
20660
20661         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
20662         (gimplify_build1): Move from tree-complex.c do_unop.
20663         (gimplify_build2): Move from tree-complex.c do_binop.
20664         (gimplify_build3): New.
20665         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
20666         Adjust throughout to call the functions above.
20667         * tree-flow.h: Declare the functions above.
20668         * tree-nested.c (gimplify_val): Rename to...
20669         (tsi_gimplify_val): ... this.
20670
20671         * Makefile.in (tree_complex.o): Update dependencies.
20672         (stor-layout.o): Depend on regs.h.
20673         * c-common.c (handle_vector_size_attribute): Update for
20674         vector types without corresponding vector modes.
20675         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
20676         a corresponding vector mode is not available.
20677         * print-tree.c (print_node): Print nunits for vector types
20678         * regclass.c (have_regs_of_mode): New.
20679         (init_reg_sets_1): Initialize it and use it instead
20680         of allocatable_regs_of_mode.
20681         * regs.h (have_regs_of_mode): Declare it.
20682         * stor-layout.c (layout_type): Pick a mode for vector types.
20683         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
20684         build_replicated_const, do_unop, do_binop, do_plus_minus,
20685         do_negate, expand_vector_piecewise, expand_vector_parallel,
20686         expand_vector_addition, expand_vector_operations_1,
20687         expand_vector_operations, tree_lower_operations,
20688         pass_lower_vector_ssa, pass_pre_expand): New.
20689         (expand_complex_operations, pass_lower_complex): Remove.
20690         * tree-optimize.c (init_tree_optimization_passes): Adjust
20691         pass ordering for changes in tree-complex.c.
20692         * tree-pass.h: Declare new passes.
20693         * tree.c (finish_vector_type): Remove.
20694         (make_vector_type): New.
20695         (build_vector_type_for_mode, build_vector_type): Rewritten.
20696         * tree.def (VECTOR_TYPE): Document where the number of
20697         subparts is stored.
20698         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
20699         (make_vector): Remove declaration.
20700
20701 2004-07-21  Richard Henderson  <rth@redhat.com>
20702
20703         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
20704         TREE_THIS_VOLATILE, may_aliases, or optimization level.
20705         (remove_useless_vars): Dump debugging info.
20706         (expand_used_vars): Move ...
20707         * cfgexpand.c (expand_used_vars): ... here.  Make static.
20708         * tree-flow-inline.h (set_is_used): New.
20709         (set_default_def): Use get_var_ann.
20710         * tree-flow.h: Update decls.
20711         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
20712         (create_ssa_var_map): Use it.
20713         * tree-ssa.c (set_is_used): Remove.
20714
20715 2004-07-22  Ben Elliston  <bje@au.ibm.com>
20716
20717         * gdbinit.in: Set a breakpoint on internal_error.
20718
20719 2004-07-21  Richard Henderson  <rth@redhat.com>
20720
20721         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
20722         to create a new basic block.
20723
20724 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20725
20726         PR c/15052
20727         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
20728         return type on function definitions.  Move other warnings for
20729         qualified return type to -Wreturn-type.  Do not condition any such
20730         warnings on -pedantic.  Update comments.
20731         (start_function): Only copy function type from previous prototype
20732         declaration if return types are compatible.
20733         * c-typeck.c (function_types_compatible_p): Don't condition
20734         warning for incompatibility of volatile qualifiers on the return
20735         type on -pedantic.  Update comment.
20736         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
20737
20738 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20739
20740         * c-typeck.c (set_init_index): Require designator to be of integer
20741         type.
20742
20743 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20744
20745         PR c/11250
20746         * c-parse.in (init): Change to exprtype.
20747         (primary): Set original_code for STRING to STRING_CST.
20748         Call maybe_warn_string_init for compound literals.
20749         (initdcl, notype_initdcl): Call maybe_warn_string_init.
20750         (initval): Update.
20751         * c-tree.h (maybe_warn_string_init): New.
20752         (pop_init_level, process_init_element): Use struct c_expr.
20753         (struct c_expr): Update comment.
20754         * c-typeck.c (maybe_warn_string_init): New function.
20755         (digest_init): Call it.  Additional parameter strict_string.  All
20756         callers changed.
20757         (output_init_element): Likewise.
20758         (struct constructor_stack): Use struct c_expr for
20759         replacement_value.
20760         (really_start_incremental_init, push_init_level): Update.
20761         (pop_init_level): Update.  Return struct c_expr.
20762         (process_init_level): Update.  Take struct c_expr argument.
20763
20764 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
20765
20766         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
20767         commit.
20768
20769 2004-07-21  Eric Christopher  <echristo@redhat.com>
20770
20771         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
20772         removal.
20773         * c-decl.c (pop_scope): Ditto.
20774         * calls.c (expand_call): Remove call to current_nesting_level,
20775         update comment accordingly. Remove calls to expand_start_target_temps
20776         and expand_end_target_temps.
20777         * cfgexpand.c (construct_init_block): Remove call to
20778         expand_start_bindings_and_block.
20779         (construct_exit_block): Remove call to expand_end_bindings.
20780         * expr.c (safe_from_p): Remove BIND_EXPR handling.
20781         (expand_expr_real_1): Ditto. Fix formatting.
20782         (expand_vars): Delete.
20783         * stmt.c (POPSTACK): Remove block_stack.
20784         (stmt_status): Remove x_block_stack.
20785         (block_stack): Delete.
20786         (expand_start_bindings_and_block): Ditto.
20787         (expand_start_target_temps): Ditto.
20788         (expand_end_target_temps): Ditto.
20789         (current_nesting_level): Ditto.
20790         (warn_about_unused_variables): Ditto.
20791         (expand_end_bindings): Ditto.
20792         * tree.h: Remove declarations for above.
20793
20794 2004-07-21  Steven Bosscher  <stevenb@suse.de>
20795
20796         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
20797         * rtl.c (note_insn_name): Likewise.
20798         * print-rtl.c (print_rtx): Don't print it.
20799         * cfgrtl.h (can_delete_note_p): Don't handle it.
20800         (rtl_delete_block): Likewise.
20801         * passes.c (rest_of_handle_guess_branch_prob): Remove.
20802         (rest_of_compilation): Don't call it.
20803         * predict.c (process_note_predictions, process_note_prediction,
20804         note_prediction_to_br_prob): Remove.
20805         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
20806         * stmt.c (return_prediction): Remove.
20807         (expand_value_return): Don't call it.  Don't add prediction
20808         notes for return statements.
20809
20810 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
20811
20812         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
20813         once.
20814
20815 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
20816
20817         * c-common.c (vector_types_convertible_p): Use vector types'
20818         TYPE_SIZE and TREE_TYPE instead of their mode.
20819         * convert.c (convert_to_integer): Likewise.
20820         (convert_to_vector): Likewise.
20821         * fold-const.c (fold_convert): Likewise.
20822         * varasm.c (output_constant): Likewise.
20823         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
20824         Allow a VECTOR_TYPE initializer to be made of several vectors.
20825         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
20826         of cleared and need_to_clear, and use fold_convert.
20827         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
20828         integer vectors.
20829
20830 2004-07-20  Richard Henderson  <rth@redhat.com>
20831
20832         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
20833         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
20834
20835 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
20836
20837         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
20838         enormous cost if not TARGET_HARD_MUL.
20839
20840 2004-07-20  Andrew Pinski  <apinski@apple.com>
20841
20842         PR target/16557
20843         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
20844         (ASM_SPEC): here.
20845
20846 2004-07-21  Paul brook  <paul@codesourcery.com>
20847
20848         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
20849
20850 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20851
20852         * fold-const.c (operand_equal_p): Temporarily support NULL args.
20853         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
20854         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
20855
20856 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
20857
20858         * rtl.h (plus_constant): Delete.
20859         (plus_constant_wide): Rename to plus_constant.
20860         (plus_constant_for_output_wide): Delete vestigial prototype.
20861         (GEN_INT): Remove unnecessary cast.
20862         * tree.h (build_int_2, size_int_type): Delete.
20863         (build_int_2_wide): Rename to build_int_2.
20864         (size_int_wide): Rename to size_int_kind.
20865         (size_int_type_wide): Rename to size_int_type.
20866         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
20867         Remove unnecessary cast.
20868         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
20869         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
20870         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
20871         (size_int_type_wide): Rename size_int_type.
20872         (int_const_binop): Use size_int_type.
20873         * c-lex.c (interpret_integer): Use build_int_2.
20874         * final.c (split_double): Remove unnecessary casts.
20875         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
20876
20877 2004-07-20  Richard Henderson  <rth@redhat.com>
20878
20879         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
20880         (gimplify_compound_lval): Use is_gimple_tmp_reg.
20881         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
20882         (is_gimple_tmp_reg): New.
20883         * tree-gimple.h (is_gimple_tmp_reg): Declare.
20884
20885 2004-07-20  Richard Henderson  <rth@redhat.com>
20886
20887         * tree-pretty-print.c (dump_generic_node): Dump
20888         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
20889
20890 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
20891
20892         * tree-mudflap.c (mf_set_options_fndecl): New tree.
20893         (mudflap_init): Set it.
20894         (mudflap_register_call): Remove __mf_init call.
20895         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
20896         to pass "-ignore-reads" option to libmudflap if needed.
20897
20898 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
20899
20900         PR c++/14607
20901         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
20902         (MAKE_DECL_ONE_ONLY): Undefine.
20903         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
20904         readonly_data, one_only_data_section, forget_section): New prototypes.
20905         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
20906         functions.
20907         (pa_select_section): Add one-only (COMDAT) support.
20908         * pa.h (struct machine_function): Define.
20909         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
20910         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
20911         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
20912         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
20913         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
20914         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
20915         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
20916         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
20917         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
20918         for EXTRA_SECTION_FUNCTIONS.
20919         * doc/install.texi: Update binutils requirements.
20920
20921 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20922
20923         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
20924         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
20925         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
20926         size_t.
20927         (struct VEC): Use unsigned for num and alloc.
20928         * vec.c (struct vec_prefix): Likewise.
20929         (vec_o_reserve): Adjust.
20930
20931         * dbxout.c (dbxout_type): Fix printf format.
20932
20933         * tree.h (binfo_member): Remove.
20934         * tree.c (binfo_member): Remove.
20935
20936 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20937
20938         * tree.h: Include vec.h
20939         (DEF_VEC_P(tree)): New type.
20940         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
20941         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
20942         (BINFO_LANG_SLOT): Remove.
20943         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
20944         (struct tree_binfo): Turn base_binfos into a trailing
20945         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
20946         (binfo_lang_slots): Remove.
20947         * tree.c (binfo_lang_slots): Remove.
20948         (make_tree_binfo_stat): Take a base binfo count, not a
20949         lang slot count.  Adjust.
20950         * Makefile.in (TREE_H): Add vec.h
20951         * alias.c (record_component_aliases): Adjust BINFO access.
20952         * dbxout.c (dbxout_type): Likewise.
20953         * dwarf2out.c (gen_member_die): Likewise.
20954         * sdbout.c (sdbout_one_type): Likewise.
20955         * tree-dump.c (deque_and_dump): Likewise.
20956         * config/i386/i386.c (classify_argument,
20957         contains_128bit_aligned_vector_p): Likewise.
20958         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
20959         * doc/c-tree.texi (Classes): Update BINFO documentation.
20960
20961 2004-07-20  Steven Bosscher  <stevenb@suse.de>
20962
20963         * c-common.h (check_case_value): Remove prototype.
20964         (c_add_case_label): Adjust prototype.
20965         * c-common.c (check_case_value): Make static.
20966         (check_case_bounds): New function.
20967         (c_add_case_label): Use it.  Take new argument orig_type.
20968         * c-typeck.c (struct c_switch): New orig_type field.
20969         (c_start_case): Set it.
20970         (do_case): Pass it to c_add_case_label.
20971         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
20972         cases from here.  Add the labels in reverse order.
20973         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
20974         (add_case_node): Return nothing, don't check for duplicate cases.
20975         Insert new case nodes in a list, not in an AVL tree.
20976         (expand_end_case_type): Don't turn a case tree into a case list.
20977         (case_tree2list): Remove.
20978         * tree.h (add_case_node): Adjust prototype.
20979
20980 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
20981
20982         * genattr.c (struct range, struct function_unit,
20983         write_units, extend_range, init_range): Remove them.
20984         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
20985         Output "#define INSN_SCHEDULING" here.
20986         * genattrtab.c (struct range, struct function_unit_op,
20987         struct function_unit, struct dimension, enum operator,
20988         operate_exp, expand_units, simplify_knowing,
20989         encode_units_mask, simplify_by_exploding,
20990         find_and_mark_used_attributes, unmark_used_attributes,
20991         add_values_to_cover, increment_current_value,
20992         test_for_current_value, simplify_with_current_value,
20993         simplify_with_current_value_aux, gen_unit,
20994         write_unit_name, write_function_unit_info,
20995         write_complex_function, write_toplevel_expr,
20996         find_single_value, extend_range): Remove.
20997         (write_attr_get): Do not handle common_av->value
20998         being an FFS.
20999         (struct attr_desc): Remove func_units_p and blockage_p.
21000         (write_attr_valueq): Do not handle them.
21001         (find_attr): Do not clear them.
21002         (make_internal_attr): Do not initialize them.
21003         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
21004         * sched-vis.c (init_target_units, insn_print_units,
21005         init_block_visualization, print_block_visualization,
21006         visualize_scheduled_insns, visualize_no_unit,
21007         visualize_stall_cycles, visualize_alloc,
21008         visualize_free, target_units, get_visual_tbl_length,
21009         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
21010         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
21011         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
21012         * haifa-sched.c (blockage_range, clear_units,
21013         schedule_unit, actual_hazard, potential_hazard,
21014         insn_unit, unit_last_insn, unit_tick,
21015         actual_hazard_this_instance, potential_hazard,
21016         schedule_unit, max_insn_queue_index_value): Remove.
21017         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
21018         max_insn_queue_index.
21019         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
21020         * doc/md.texi (Processor pipeline description): Remove
21021         references to old pipeline descriptions.
21022         (Automaton pipeline description): Merge with the above.
21023         (Old pipeline description, Comparison of the two descriptions):
21024         Remove.
21025
21026         * bt-load.c (migrate_btr_def): Remove references to
21027         use_pipeline_interface.
21028         * haifa-sched.c (insn_cost, schedule_insn,
21029         schedule_block, advance_one_cycle, sched_init,
21030         queue_to_ready, sched_finish): Likewise.
21031         * modulo-sched.c (sms_schedule, advance_one_cycle,
21032         ps_has_conflicts): Likewise.
21033         * sched-rgn.c (init_ready): Likewise.
21034         (debug_dependencies): Likewise, and remove an "if (1)".
21035         * target.h (use_dfa_pipeline_interface): Remove.
21036         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21037         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21038         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21039         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21040         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21041         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21042         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21043         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21044         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21045         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21046         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21047         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21048         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21049         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21050         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21051         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21052         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21053         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21054         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21055
21056 2004-07-19  Roger Sayle  <roger@eyesopen.com>
21057
21058         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
21059
21060 2004-07-19  Jeff Law  <law@redhat.com>
21061
21062         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
21063         (get_eq_expr_value): Use it.  Simplify slightly.
21064
21065 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
21066
21067         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
21068         (umulsidi3_32bit_r4000): Likewise.
21069
21070 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
21071
21072         * vec.h: Propagate location information properly.
21073         (VEC_T_iterate): Add result pointer parameter.
21074         (VEC_T_space): New.
21075         (VEC_T_reserve): Use it.
21076
21077 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
21078
21079         * Makefile.in (c-format.o): Depend on c-format.h.
21080         * c-format.h: New file.
21081         (struct format_char_info): Add CHAIN member.
21082         * c-format.c: Move some types and constants to c-format.h.
21083         (format_type_error): Set to -1.
21084         (struct function_format_info): Use an int for format_type.
21085         (decode_format_type): Return an int.  Return format_type_error
21086         on error.
21087         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
21088         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
21089         (scan_char_table, time_char_table, monetary_char_table): Initialize
21090         CHAIN to NULL.
21091         (n_format_types): New variable.
21092         (check_format_info_main): Handle CHAIN in format_char_info.
21093         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
21094         TARGET_N_FORMAT_TYPES.
21095         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
21096         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
21097         * config/sol2-c.c: New file.
21098         * config/t-sol2: New file.
21099         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
21100         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
21101         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
21102
21103         * doc/extend.texi (Target Format Checks): New section.
21104         (Function Attributes): Mention it.
21105         * doc/invoke.texi: Mention target format checks.
21106         * doc/sourcebuild.texi: Mention target format checks.
21107         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
21108         TARGET_FORMAT_TYPES.
21109
21110 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
21111
21112         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
21113         added.
21114         * config/s390/s390.c (regclass_map initializer): Register 35 added to
21115         ADDR_REGS.
21116         (load_multiple_operation, store_multiple_operation): Removed
21117         pointless sanity check.
21118         (s390_decompose_address): Added check for return_address_pointer_rtx.
21119         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
21120         (s390_return_address_offset): New function.
21121         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
21122         (FRAME_REGNO_P): Added check for register 35.
21123         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
21124         REG_ALLOC_ORDER): Appended entry for register 35.
21125         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
21126         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
21127         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
21128         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
21129         is eliminable using stack pointer or hard frame pointer.
21130         (REGISTER_NAMES): Added name for register 35.
21131         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
21132         pointless sanity check.
21133
21134 2004-07-19  Roger Sayle  <roger@eyesopen.com>
21135
21136         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
21137         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
21138         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
21139         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
21140         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
21141         (fold_relational_const): Tidy up handling of floating point
21142         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
21143         transformation; fold_relational_const assumes constant operands.
21144
21145 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
21146
21147         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
21148         directory.
21149
21150 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
21151
21152         * c-tree.h (struct c_expr): Define.
21153         (C_SET_EXP_ORIGINAL_CODE): Remove.
21154         (parser_build_binary_op, build_compound_expr): Update prototypes.
21155         * c-parse.in (%union): Add exprtype.
21156         (FUNC_NAME): Mark as ttype.
21157         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
21158         exprtype.
21159         (expr): Update.  Define directly in terms of expr_no_commas
21160         instead of using nonnull_exprlist.
21161         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
21162         offsetof_member_designator, typespec_nonreserved_nonattr, init,
21163         initval, designator, component_declarator,
21164         component_notype_declarator, enumerator, array_declarator,
21165         condition, exexpr, switch_statement, stmt_nocomp, stmt,
21166         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
21167         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
21168         where appropriate.
21169         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
21170         * c-common.c (c_common_truthvalue_conversion): Don't check
21171         C_EXP_ORIGINAL_CODE.
21172         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
21173         Don't use C_EXP_ORIGINAL_CODE.
21174         (default_conversion, default_function_array_conversion): Don't use
21175         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
21176         (internal_build_compound_expr): Merge into build_compound_expr.
21177         (build_compound_expr): Take two operands instead of a TREE_LIST.
21178         * objc/objc-act.c (get_super_receiver): Update calls to
21179         build_compound_expr.
21180
21181 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
21182
21183         * config/sh/sh.c (sh_use_dfa_interface): Remove.
21184         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
21185         hook_int_void_1.
21186         * config/sh/sh.md: Extract pipeline descriptions
21187         into separate files.
21188         * config/sh/sh1.md: New file, extracted from sh.md.
21189         * config/sh/sh4.md: New file, extracted from sh.md.
21190         * config/sh/shmedia.md: New file, extracted from sh.md
21191         and rewritten using new-style pipeline description.
21192
21193 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
21194
21195         * config/pa/pa.md: Delete the two remaining define_peephole
21196         patterns.
21197
21198 2004-07-18  Steven Bosscher  <stevenb@suse.de>
21199             Joseph S. Myers  <jsm@polyomino.org.uk>
21200
21201         * c-common.c (c_common_truthvalue_conversion): Don't warn if
21202         TREE_NO_WARNING is set.
21203
21204 2004-07-18  Roger Sayle  <roger@eyesopen.com>
21205
21206         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
21207         simplify_builtin_strncmp): Delete.
21208         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
21209         Change argument to accept an arglist instead of an "exp".  Assume
21210         that the return type is always integer_type_node.  Copy missing
21211         transformations from their now obsolete simplify_builtin_*
21212         equivalents.
21213         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
21214         fold_builtin_strcmp and fold_builtin_strncmp.
21215         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
21216         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
21217         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
21218
21219 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
21220
21221         * Makefile.in (tree-alias-common.o): Update dependencies.
21222
21223 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
21224
21225         * cfgloop.c (flow_loop_nested_p): Fix comment.
21226
21227 2004-07-17  Jason Merrill  <jason@redhat.com>
21228
21229         PR c++/16115
21230         * stor-layout.c (relayout_decl): New fn.
21231         * tree.h: Declare it.
21232         (DECL_BY_REFERENCE): New macro.
21233
21234 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
21235
21236         * libgcc2.c (__enable_execute_stack): New symbol.
21237         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
21238         and declare __enable_execute_stack.
21239         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
21240         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
21241         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21242         ENABLE_EXECUTE_STACK.
21243         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
21244         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21245         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21246         ENABLE_EXECUTE_STACK.
21247         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21248         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
21249         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21250         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21251         ENABLE_EXECUTE_STACK.
21252         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21253         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21254         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21255         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21256         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
21257         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21258         (sparc64_initialize_trampoline): Likewise.
21259         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
21260
21261 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
21262
21263         * langhooks.h (builtin_function): New langhook.
21264         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
21265         (LANG_HOOKS_INITIALIZER): Update.
21266         * tree.h (builtin_function): Remove.
21267         * doc/tm.texi: Update.
21268         * c-tree.h (builtin_function): Declare.
21269         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
21270         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
21271         config/ia64/ia64.c, config/iq2000/iq2000.c,
21272         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
21273         config/stormy16/stormy16.c: All callers of builtin_function
21274         changed.
21275
21276 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
21277
21278         PR target/16556
21279         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
21280         Remove white space after the backslash.
21281
21282 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
21283
21284         PR rtl-optimization/16294
21285         * resource.c (return_insn_p): New predicate.
21286         (mark_target_live_regs): Use it.  Special-case return insns.
21287         (init_resource_info): Use it.  Don't scan the epilogue past
21288         a return.
21289
21290 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21291
21292         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
21293         destroy dominance information.
21294         * passes.c (rest_of_handle_loop2):  Free dominance information.
21295         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
21296         jump threading.
21297         (thread_jumps): Update dominance information and remove unreachable
21298         blocks.
21299         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
21300         information and remove the unreachable block.
21301
21302 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
21303
21304         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
21305
21306 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
21307
21308         * doc/sourcebuild.texi: Remove libf2c entry.
21309
21310 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
21311
21312         * config/i386/i386.md (movv16qi_internal): Fix typo.
21313
21314 2004-07-17  Steven Bosscher  <stevenb@suse.de>
21315
21316         * final.c (final_scan_insn): Fix broken commit from previous
21317         patch.
21318
21319 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
21320
21321         * c-typeck.c (parser_build_binary_op): Condition warnings for
21322         X<=Y<=Z on -Wparentheses instead of -Wextra.
21323         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
21324         supported for C only.
21325
21326 2004-07-17  Steven Bosscher  <stevenb@suse.de>
21327
21328         * cfgcleanup.c (try_simplify_condjump): Don't remove line
21329         notes to avoid unreachable code warnings.
21330         * toplev.c (backend_init): Don't emit line notes for
21331         unreachable code warnings.
21332
21333         * combine.c (distribute_notes): Don't distribute a
21334         REG_VTABLE_REF note.
21335         * final.c (final_scan_insn): Don't handle it.
21336         * rtl.c (reg_note_name): Remove it.
21337         * rtl.h (enum reg_node): Dito.
21338
21339         * emit-rtl.c (force_line_numbers, restore_line_number_status):
21340         Remove.
21341         * rtl.h (force_line_numbers, restore_line_number_status):
21342         Remove prototypes.
21343
21344         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
21345         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
21346         (using_eh_for_cleanups): Also moved here.
21347
21348         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
21349         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
21350         to expand_start_case and add_case_node.
21351         * stmt.c (struct nesting): Cleanup unused fields condition_code,
21352         last_unconditional_cleanup, nominal_type, printname, and
21353         line_number_status.
21354         (struct fixup_goto): Remove.
21355         (struct stmt_status): Remove x_goto_fixup_chain field.
21356         (goto_fixup_chain): Remove.
21357         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
21358         pushcase, pushcase_range): Remove.
21359         (expand_start_bindings_and_block): Don't set unused fields in
21360         the nesting stack.
21361         (expand_start_case, add_case_node): Cleanup unused formal arguments.
21362         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
21363         instead of emit_jump_if_reachable.
21364         (emit_case_nodes): Likewise.
21365         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
21366         static.
21367         (update_eh_label): Work around left-over exception handing regions.
21368         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
21369         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
21370         (pass_cleanup_cfg_post_optimizing): New pass.
21371         (init_tree_optimization_passes): Run the new pass after all
21372         optimizations.
21373         * tree.h (pushcase, pushcase_range): Remove prototypes.
21374         (expand_start_case, add_case_node): Update prototypes.
21375
21376 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
21377
21378         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
21379
21380 2004-07-16  Richard Henderson  <rth@redhat.com>
21381
21382         * builtins.c (std_expand_builtin_va_arg): Remove.
21383         (expand_builtin_va_arg): Remove.
21384         * expr.h: Don't declare them.
21385         * gimplify.c (mark_decls_volatile_r): Remove.
21386         (copy_if_shared_r): Don't call it.
21387         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
21388         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
21389         * gimple-low.c (lower_stmt): Likewise.
21390         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
21391         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
21392         * tree-ssa-operands.c (get_expr_operands): Likewise.
21393         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
21394         EXPAND_BUILTIN_VA_ARG.
21395         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
21396         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
21397         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
21398         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
21399
21400 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
21401
21402         * tree-ssa-pre.c (insert_aux): Break out if we hit
21403         a critical edge.
21404
21405 2004-07-16  Richard Henderson  <rth@redhat.com>
21406
21407         * basic-block.h (remove_fake_exit_edges): Declare.
21408         * cfganal.c (remove_fake_predecessors): Rename from
21409         remove_fake_successors; iterate over predecessors.
21410         (remove_fake_exit_edges): New.
21411         * cfgcleanup.c (try_optimize_cfg): Use it.
21412         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
21413         * predict.c (estimate_probability): Likewise.
21414         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
21415         * tree-cfg.c (make_edges): Likewise.
21416         * tree-ssa-pre.c (fini_pre): Likewise.
21417         * profile.c (instrument_edges): Don't remove_fake_edges.
21418         (branch_prob): Do it earlier here.
21419
21420 2004-07-16  Richard Henderson  <rth@redhat.com>
21421
21422         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
21423         switchification wrt CONSTRUCTOR.  Document the reason.
21424
21425 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
21426
21427         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
21428         that prevented descriptive __mf_check source location strings.
21429
21430 2004-07-16  Richard Henderson  <rth@redhat.com>
21431
21432         * tree-def (WITH_SIZE_EXPR): New.
21433         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
21434         * expr.c (expand_expr_real_1): Likewise.
21435         * gimplify.c (maybe_with_size_expr): New.
21436         (gimplify_arg, gimplify_modify_expr): Use it.
21437         (gimplify_modify_expr_to_memcpy): Take size parameter.
21438         (gimplify_modify_expr_to_memset): Likewise.
21439         (gimplify_expr): Handle WITH_SIZE_EXPR.
21440         * tree-alias-common.c (find_func_aliases): Likewise.
21441         * tree-eh.c (tree_could_trap_p): Likewise.
21442         (tree_could_throw_p): Likewise.
21443         * tree-gimple.c (is_gimple_lvalue): Likewise.
21444         (get_call_expr_in): Likewise.
21445         * tree-inline.c (estimate_num_insns_1): Likewise.
21446         (expand_calls_inline): Likewise.
21447         * tree-nested.c (convert_call_expr): Likewise.
21448         * tree-pretty-print.c (dump_generic_node): Likewise.
21449         * tree-sra.c (sra_walk_expr): Likewise.
21450         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
21451         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
21452         * tree-ssa-operands.c (get_expr_operands): Likewise.
21453         * tree-tailcall.c (find_tail_calls): Likewise.
21454
21455         * calls.c (expand_call): Reset old_stack_allocated after
21456         calling emit_stack_restore.
21457
21458 2004-07-16  Richard Henderson  <rth@redhat.com>
21459
21460         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
21461         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
21462         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
21463         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
21464         copy_res_decl_for_inlining.
21465
21466         * tree-inline.c (declare_return_variable): New modify_dest argument.
21467         Use it as the return value, when possible or manditory.  Handle
21468         TREE_ADDRESSABLE types.
21469         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
21470         replacement of CALL_EXPR.
21471
21472 2004-07-16  Richard Henderson  <rth@redhat.com>
21473
21474         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
21475         * gimple-low.c (expand_var_p): Don't check it.
21476         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
21477         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
21478         * tree-ssa-operands.c (add_stmt_operand): Likewise.
21479         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
21480         (find_referenced_vars): Don't call them.
21481         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
21482
21483 2004-07-16  Richard Henderson  <rth@redhat.com>
21484
21485         * function.c (pass_by_reference): True for all variable sized types.
21486
21487 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
21488
21489         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
21490         * tree-pretty-print.c: Include tree-chrec.h.
21491         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
21492         and POLYNOMIAL_CHREC nodes.
21493
21494 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
21495
21496         * builtins.c (expand_builtin_stpcpy): Do not create temporary
21497         reg with VOIDmode.
21498
21499 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21500
21501         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
21502
21503 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
21504
21505         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
21506         to BASE_REGNUM.
21507         * config/s390/s390.c: Likewise.
21508         * config/s390/s390.h: Likewise.
21509
21510 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21511
21512         * config/mips/mips.md (addsi3, adddi3): Remove special handling
21513         of $sp adds.  Remove REGNO checks from mips16 patterns.
21514
21515 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21516
21517         * config/mips/mips.md: Delete outdated comment.
21518
21519 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21520
21521         * config/mips/mips.c (get_float_compare_codes): Delete.
21522         (mips_emit_compare): New function, mostly extracted from
21523         get_float_compare_codes and gen_conditional_branch.
21524         (gen_conditional_branch, gen_conditional_move): Use it.
21525
21526 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21527
21528         * genautomata.c (add_vect): Speedup by using integers as
21529         bit-vectors for walking through the comb_vect and finding
21530         a match.
21531
21532 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21533
21534         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
21535         operand is an uns_arith_operand; use subtraction otherwise.
21536         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
21537         not just arith_operands.
21538
21539 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21540
21541         * config/mips/mips-protos.h (gen_int_relational): Delete.
21542         (mips_emit_scc): Declare.
21543         * config/mips/mips.c (internal_test): Delete.
21544         (sle_operand, sleu_operand): New functions.
21545         (map_test_to_internal_test, gen_int_relational): Delete.
21546         (mips_emit_binary, mips_relational_operand_ok_p)
21547         (mips_emit_int_relational, mips_zero_if_equal)
21548         (mips_emit_scc): New functions.
21549         (gen_conditional_branch): Rework to use mips_emit_int_relational.
21550         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
21551         sleu_operand.
21552         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
21553         (sltu, sleu): Use mips_emit_scc.
21554         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
21555         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
21556         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
21557
21558 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21559
21560         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
21561
21562 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21563
21564         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
21565         (*sne_[sd]i): Likewise sne_[sd]i_zero.
21566         (*sgt_[sd]i): ...and sgt_[sd]i.
21567         (*slt_[sd]i): ...and slt_[sd]i.
21568         (*sgtu_[sd]i): ...and sgtu_[sd]i.
21569         (*sltu_[sd]i): ...and sltu_[sd]i.
21570         (*sleu_[sd]i): ...and sleu_[sd]i_const.
21571         Name previously unnamed mips16 patterns.  Formatting fixes.
21572
21573 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21574
21575         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
21576         (branch_type): Delete.
21577         (gen_conditional_branch, gen_conditional_move)
21578         (mips_gen_conditional_trap): Update after name change.  Get the
21579         comparison mode from cmp_operands[0].
21580         * config/mips/mips.h (cmp_type, branch_type): Delete.
21581         (cmp_operands): Renamed from branch_cmp.
21582         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
21583         name change.  Don't set branch_type.
21584         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
21585         mode class of cmp_operands[0] rather than branch_type.  Update after
21586         name change.
21587
21588 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21589
21590         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
21591         of 0...255 to 0 when inside a SET.
21592
21593 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21594
21595         * config/mips/mips.md: Remove mips16 define_peepholes.
21596
21597 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
21598
21599         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
21600         (fini_pre): Remove fake edges.
21601
21602 2004-07-15  Richard Henderson  <rth@redhat.com>
21603
21604         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
21605         (get_indirect_ref_operands, get_call_expr_operands): ... these.
21606
21607 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21608
21609         * vec.h (VEC_address): New function.
21610
21611 2004-07-14  Jason Merrill  <jason@redhat.com>
21612
21613         PR middle-end/15885
21614         * gimplify.c (gimplify_arg): New fn, split out from...
21615         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
21616
21617 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21618
21619         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
21620         generate code which is generated by pushqi1 now
21621         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
21622
21623 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21624
21625         * combine.c (simplify_set): match the mode of the constant 0 with
21626         the tested operand to match the compare behaviour and the
21627         simplify_relational_operation() expectation.
21628
21629 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21630
21631         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
21632         ("bordered"): Same.
21633
21634 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21635
21636         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
21637         unconditionally.
21638         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
21639
21640 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21641
21642         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
21643         calls in mips16 code.
21644
21645 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21646
21647         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
21648         the destination of the li as well as for the neg.
21649
21650 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
21651
21652         g++/15861
21653         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
21654         * cgraph.h: Update declaration.
21655         * c-decl.c (build_cdtor): Update call with default priority.
21656         * coverage.c (create_coverage): Ditto.
21657         * tree-mudflap.c (mf_init_fndecl): New tree.
21658         (mudflap_init): Set it.
21659         (mudflap_register_call): Arrange to call __mf_init before the first
21660         __mf_register call.
21661         (mudflap_finish_file): Mark the mudflap static initializer as extra
21662         high priority, to beat all C++ static constructors.
21663
21664 2004-07-15  Jeff Law  <law@redhat.com>
21665
21666         * loop.c (check_insn_for_givs): Restore check for code labels that was
21667         accidentally deleted by a recent checkin.
21668
21669 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21670
21671         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
21672         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
21673
21674 2004-07-14  Richard Henderson  <rth@redhat.com>
21675
21676         * print-tree.c (print_node): Fix casts last change.
21677
21678 2004-07-15  Paul Brook  <paul@codesourcery.com>
21679
21680         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
21681         to TARGET_UNWIND_INFO.
21682         * except.c (output_function_exception_table): Ditto.
21683         * except.h: Ditto.
21684         * opts.c (decode_options): Ditto.
21685         * passes.c (rest_of_handle_final): Ditto.
21686         * final.c (final_start_function): Ditto.
21687         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
21688         target hook.
21689         * targhooks.h (default_unwind_emit): Declare.
21690         * targhooks.c (default_unwind_emit): New function.
21691         * target-def.h: Define and use TARGET_UNWIND_EMIT.
21692         * target.h (struct gcc_target): Add unwind_emit.
21693         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
21694         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
21695         Remove IA64_UNWIND_EMIT.
21696         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
21697
21698 2004-07-14  Richard Henderson  <rth@redhat.com>
21699
21700         * print-tree.c (print_node): Handle SSA_NAME.
21701
21702 2004-07-14  James E Wilson  <wilson@specifixinc.com>
21703
21704         PR target/16325
21705         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
21706         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
21707
21708 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
21709
21710         * expr.c (expand_assignment): Reenable bitfield += optimizations.
21711         Use alias set 0 for memory, do proper mode calculations and adjust
21712         address for memories.
21713
21714 2004-07-14  Per Bothner  <per@bothner.com>
21715
21716         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
21717         structure with extra column field.
21718         * tree.c (expand_location):  Also fill in column field.
21719         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
21720         gets confused by the two conditionally-compiled definitions.
21721
21722 2004-07-14  Eric Christopher  <echristo@redhat.com>
21723
21724         * calls.c (expand_call): Fix typo in comment.
21725
21726 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
21727
21728         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
21729         comparision of TFmode.
21730
21731 2004-07-14  Richard Henderson  <rth@redhat.com>
21732
21733         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
21734         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
21735         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
21736         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
21737         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
21738         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
21739         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
21740         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
21741         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
21742
21743 2004-07-14  Mike Stump  <mrs@apple.com>
21744
21745         * config/darwin.h (WINT_TYPE): Define to be int to match
21746         system header files.
21747
21748 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
21749
21750         * config/xtensa/xtensa.c (function_arg_advance): Check for args
21751         that must be passed in the stack.
21752         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
21753         arguments if the size is not a constant.
21754
21755 2004-07-14  Per Bothner  <per@bothner.com>
21756
21757         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
21758         instead of EXPR_LOCUS in a boolean context, which is always true
21759         if --enable-mapped-location.
21760         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
21761
21762 2004-07-14  Richard Henderson  <rth@redhat.com>
21763
21764         * dominance.c (struct dom_info): Add fake_exit_edge.
21765         (init_dom_info): Allocate it.
21766         (free_dom_info): Free it.
21767         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
21768         in two passes.
21769         (calc_idoms): Honor fake_exit_edge.
21770
21771 2004-07-13  Jason Merrill  <jason@redhat.com>
21772
21773         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
21774         (rhs_test_for): New fn.
21775         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
21776         * tree-gimple.h: Declare them.
21777         * gimplify.c (gimplify_modify_expr): Use the new fns.
21778
21779 2004-07-14  Richard Henderson  <rth@redhat.com>
21780
21781         * config/arm/arm-protos.h (arm_va_arg): Remove.
21782         * config/arm/arm.c (arm_va_arg): Remove.
21783         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
21784         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
21785
21786 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21787
21788         * pa.c (fix_range): New function to mark a range(s) of registers as
21789         fixed registers.
21790         (override_options): Call fix_range if the -mfixed-range option string
21791         is not empty.
21792         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
21793         * doc/invoke.texi (-mfixed-range): Document new option.
21794
21795 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
21796
21797         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
21798         for TARGET_64BIT.
21799         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
21800
21801 2004-07-14  Roger Sayle  <roger@eyesopen.com>
21802
21803         * expmed.c (expand_sdiv_pow2): New function to expand signed division
21804         by a positive power of two, split out from expand_divmod.  Provide
21805         an alternate implementation when shifts are expensive.  Lower the
21806         threshold for using a branchless implementation to BRANCH_COST >= 2.
21807         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
21808
21809 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21810
21811         * tree-dfa.c (make_rename_temp): *Really* work just
21812         like create_tmp_var if called while outside SSA form.
21813
21814 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
21815
21816         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
21817         for division by zero.
21818         ("umodsi3"): Likewise.
21819
21820 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21821
21822         * config/mips/mips.c (mips_output_move): When generating mips16 code,
21823         force loads of negative constants to be split.
21824         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
21825         Generalize SImode li/neg splitter to cope with other modes.
21826
21827 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21828
21829         * expmed.c: Remove more references to QUEUED in the comments.
21830         * expr.c: Likewise.
21831
21832 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21833
21834         Revert:
21835         2004-07-13  Richard Henderson  <rth@redhat.com>
21836         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
21837         correctly.
21838
21839 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21840
21841         * tree-dfa.c (make_rename_temp): Work just like
21842         create_tmp_var if called while outside SSA form.
21843
21844 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21845
21846         * expr.c (enqueue_insn, finish_expr_for_function,
21847         protect_from_queue, queued_subexp_p, mark_queue,
21848         emit_insns_enqueued_after_mark, emit_queue,
21849         expand_increment): Remove.
21850         (store_constructor): Expand increment as an assignment.
21851         (expand_expr_real_1 <case PREINCREMENT_EXPR,
21852         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
21853         case POSTDECREMENT_EXPR>): Abort.
21854         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
21855         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
21856         protect_from_queue, emit_queue, queued_subexp_p): Remove.
21857         * function.h (pending_chain, x_pending_chain): Remove.
21858         * rtl.def (QUEUED): Remove.
21859
21860         * emit-rtl.c (copy_insn_1, copy_most_rtx,
21861         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
21862         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
21863         encode_units_mask): Likewise.
21864         * local-alloc.c (equiv_init_varies_p): Likewise.
21865         * rtl.c (copy_rtx): Likewise.
21866         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
21867         * simplify-rtx.c (simplify_gen_subreg): Likewise.
21868         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
21869
21870         * builtins.c (expand_builtin, expand_builtin_apply,
21871         expand_builtin_mathfn, expand_builtin_mathfn_2,
21872         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
21873         Remove calls to emit_queue and protect_from_queue.
21874         * calls.c (expand_call, precompute_arguments,
21875         precompute_register_parameters, rtx_for_function_call,
21876         store_one_arg): Likewise.
21877         * dojump.c (do_compare_and_jump, do_jump): Likewise.
21878         * explow.c (memory_address): Likewise.
21879         * expmed.c (clear_by_pieces_1, clear_storage,
21880         clear_storage_via_libcall, emit_group_load,
21881         emit_group_store, emit_store_flag,
21882         expand_expr_real_1, store_by_pieces,
21883         store_constructor, store_expr, try_casesi,
21884         try_tablejump): Likewise.
21885         * function.c (expand_pending_sizes): Likewise.
21886         * optabs.c (emit_cmp_and_jump_insns,
21887         emit_conditional_add, emit_conditional_move,
21888         expand_fix, expand_float, prepare_cmp_insn): Likewise.
21889         * stmt.c (emit_case_bit_tests,
21890         expand_asm_expr, expand_computed_goto,
21891         expand_decl_init, expand_end_case_type,
21892         expand_end_stmt_expr, expand_expr_stmt_value,
21893         expand_return, expand_start_case,
21894         optimize_tail_recursion): Likewise.
21895         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
21896         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
21897
21898 2004-07-14  Ben Elliston  <bje@au.ibm.com>
21899
21900         * vec.h: Comment fix.
21901
21902 2004-07-13  Richard Henderson  <rth@redhat.com>
21903
21904         * target.h (struct gcc_target): Add calls.pass_by_reference.
21905         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
21906         * function.c (pass_by_reference): Use the hook.
21907         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
21908         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
21909         (hook_pass_by_reference_must_pass_in_stack): New.
21910         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
21911         (alpha_pass_by_reference): New.
21912         (TARGET_PASS_BY_REFERENCE): New.
21913         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21914         * config/arc/arc.c (arc_pass_by_reference): New.
21915         (TARGET_PASS_BY_REFERENCE): New.
21916         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21917         (FUNCTION_ARG_CALLEE_COPIES): True.
21918         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
21919         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
21920         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
21921         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21922         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21923         * config/cris/cris.c (cris_pass_by_reference): New.
21924         (TARGET_PASS_BY_REFERENCE): New.
21925         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
21926         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
21927         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21928         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
21929         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21930         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
21931         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
21932         (frv_function_arg_pass_by_reference): Remove.
21933         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21934         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
21935         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
21936         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
21937         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21938         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
21939         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
21940         (ia64_pass_by_reference): Rename from
21941         ia64_function_arg_pass_by_reference.
21942         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21943         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21944         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
21945         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
21946         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
21947         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21948         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21949         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
21950         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
21951         (m32r_pass_by_reference): Adjust prototype.  Make static.
21952         Handle mode sizes correctly.
21953         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21954         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
21955         (m68hc11_function_arg_pass_by_reference): Remove.
21956         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21957         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21958         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
21959         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21960         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
21961         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
21962         (mips_va_arg): Use pass_by_reference.
21963         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
21964         Handle mode sizes correctly.
21965         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21966         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21967         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
21968         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
21969         (mmix_pass_by_reference): Rename from
21970         mmix_function_arg_pass_by_reference.
21971         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21972         (FUNCTION_ARG_CALLEE_COPIES): True.
21973         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
21974         (mn10300_pass_by_reference): New.
21975         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21976         (FUNCTION_ARG_CALLEE_COPIES): True.
21977         * config/pa/pa.c (pa_pass_by_reference): New.
21978         (TARGET_PASS_BY_REFERENCE): New.
21979         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21980         (FUNCTION_ARG_CALLEE_COPIES): True.
21981         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
21982         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
21983         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
21984         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21985         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
21986         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
21987         (s390_pass_by_reference): Rename from
21988         s390_function_arg_pass_by_reference.
21989         (s390_function_arg_advance): Don't query pass-by-ref.
21990         (s390_function_arg): Likewise.
21991         (s390_gimplify_va_arg): Use pass_by_reference.
21992         (s390_call_saved_register_used): Likewise.
21993         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21994         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
21995         (shcompact_byref, sh_pass_by_reference): New.
21996         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21997         (SHCOMPACT_BYREF): Remove.
21998         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
21999         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
22000         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
22001         (sparc_gimplify_va_arg): Use pass_by_reference.
22002         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22003         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22004         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
22005         (v850_pass_by_reference): New.
22006         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22007         (FUNCTION_ARG_CALLEE_COPIES): True.
22008         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
22009         FUNCTION_ARG_PASS_BY_REFERENCE docs.
22010
22011 2004-07-14  Richard Henderson  <rth@redhat.com>
22012             Richard Sandiford  <rsandifo@redhat.com>
22013
22014         * config/mips/mips-protos.h (mips_va_arg): Delete.
22015         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
22016         * config/mips/mips.c: Include tree-gimple.h.
22017         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
22018         (mips_arg_info): Remove special handling of must_pass_in_stck args.
22019         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
22020         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
22021
22022 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
22023
22024         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
22025         arguments for COND_EXPR in big-endian adjustment code.
22026
22027 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22028
22029         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
22030         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
22031         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
22032         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
22033
22034 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
22035
22036         PR tree-optimization/16443
22037         * tree-ssa-alias.c: Add more description for
22038         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
22039         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
22040         clobbering of call-clobbered and addressable variables.  If
22041         there are any before aliases have been computed, add them.
22042
22043 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
22044
22045         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
22046         verification.
22047
22048 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
22049
22050         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
22051         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
22052         to the same type.
22053
22054 2004-07-13  Per Bothner  <per@bothner.com>
22055
22056         * collect2.c (main):  Handle --no-demangle and --demangle flags.
22057
22058 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
22059
22060         * Makefile.in (OBJS-common): Add tree-data-ref.o.
22061         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
22062         (tree-data-ref.o): New rule.
22063         * lambda.h: New file.
22064         * tree-data-ref.c: New file.
22065         * tree-data-ref.h: New file.
22066         * tree.c (int_cst_value, tree_fold_gcd): New functions.
22067         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
22068
22069 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22070
22071         PR target/13926
22072         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
22073         * config/sparc/sparc.c (output_ubranch): New function.
22074         * config/sparc/sparc.md (jump pattern): Use it.
22075
22076 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22077
22078         PR target/16494
22079         * config/sparc/sparc.c (output_cbranch): Properly guard
22080         the code handling far branches with TARGET_V9.
22081         * config/sparc/sparc.md (length attribute): Document the
22082         side-effect of having a length greater or equal to 3.
22083
22084 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22085             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
22086
22087         PR target/15186
22088         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
22089         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
22090
22091 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22092             Martin Sebor  <sebor@roguewave.com>
22093
22094         PR target/12602
22095         * doc/invoke.texi (SPARC options): Document -threads
22096         and -pthreads on Solaris.
22097
22098 2004-07-13  Richard Henderson  <rth@redhat.com>
22099
22100         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
22101         by reference.
22102         (ind_gimplify_va_arg_expr): Remove.
22103         * tree.h (ind_gimplify_va_arg_expr): Remove.
22104         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
22105         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
22106         argsp to be null.
22107
22108         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
22109         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
22110         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
22111         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
22112         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
22113
22114 2004-07-13  Richard Henderson  <rth@redhat.com>
22115
22116         * function.c (pass_by_reference): New.
22117         (assign_parm_find_data_types): Use it.
22118         * calls.c (initialize_argument_information): Likewise.
22119         (emit_library_call_value_1): Likewise.
22120         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22121         * function.h (pass_by_reference): Declare.
22122
22123 2004-07-13  Richard Henderson  <rth@redhat.com>
22124
22125         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
22126         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
22127         * expr.h (MUST_PASS_IN_STACK): Remove.
22128         * system.h (MUST_PASS_IN_STACK): Poison.
22129         * tree.h (must_pass_in_stack_var_size): Declare.
22130         (must_pass_in_stack_var_size_or_pad): Declare.
22131         * calls.c (must_pass_in_stack_var_size): New.
22132         (must_pass_in_stack_var_size_or_pad): Rename from
22133         default_must_pass_in_stack.
22134         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
22135         (TARGET_MUST_PASS_IN_STACK): New.
22136         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
22137         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
22138         (TARGET_MUST_PASS_IN_STACK): New.
22139         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
22140         * config/frv/frv.c (frv_must_pass_in_stack): New.
22141         (TARGET_MUST_PASS_IN_STACK): New.
22142         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
22143         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
22144         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
22145         (ix86_must_pass_in_stack): Make static.
22146         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
22147         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
22148         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
22149         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
22150         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
22151         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
22152         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
22153         (mcore_must_pass_on_stack): Remove.
22154         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
22155         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
22156         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
22157         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
22158         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
22159         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
22160         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
22161         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
22162         (TARGET_MUST_PASS_IN_STACK): New.
22163         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
22164         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
22165         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
22166         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
22167         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
22168         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
22169         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
22170         MUST_PASS_IN_STACK.
22171
22172         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
22173         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
22174         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
22175         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
22176         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
22177         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
22178         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
22179         config/xtensa/xtensa.c: Use target hook.
22180
22181 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
22182
22183         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
22184         * configure: Rebuilt.
22185
22186 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
22187
22188         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
22189         * config/mips/mips.h (mips_reg_names): Don't declare.
22190         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
22191         (TARGET_NAME_REGS): Delete.
22192         (TARGET_SWITCHES): Remove -mrnames.
22193         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
22194         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
22195         in REGISTER_NAMES.
22196         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
22197         (override_options): Remove handling of TARGET_NAME_REGS.
22198
22199 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
22200
22201         * config/mips/mips.h (TARGET_*): Boolify.
22202
22203 2004-07-12  Nick Clifton  <nickc@redhat.com>
22204
22205         * config.gcc: Add sh-*-symbianelf target.
22206         * config/sh/sh.c: Add new target macros:
22207         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
22208         TARGET_CXX_IMPORT_EXPORT_CLASS.
22209         (sh_file_start): Create a definition of the .directive section.
22210         (sh_attribute): Add dllimport and dllexport attributes.
22211         * config/sh/symbian-pre.h: New file.
22212         * config/sh/symbian-post.h: New file.
22213         * config/sh/symbian.c: New file. Contains Symbian specific
22214         functions.
22215         * config/sh/sh-protos.h: Add prototypes for new functions
22216         provided by symbian.c.
22217         * config/sh/t-symbian: New file.
22218         * doc/extend.texi: Document support for dllimport and dllexport
22219         attributes by the sh-symbianelf target.
22220
22221 2004-07-12  James E Wilson  <wilson@specifixinc.com>
22222
22223         * Makefile.in (AR): Use @AR@ not ar.
22224         (NM): New.
22225         (AR_FOR_TARGET): Use $(AR) not ar for native.
22226         (NM_FOR_TARGET): Use $(NM) not nm for native.
22227         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
22228         * configure: Regenerate.
22229
22230 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
22231
22232         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
22233         special case.
22234         (ashldi3_sp64): Likewise.
22235
22236 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22237
22238         PR target/16477
22239         * pa.c (function_arg): Update comment.
22240         * pa.h (BLOCK_REG_PADDING): Define.
22241
22242 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22243
22244         PR tree-optimization/16461
22245         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
22246         arguments of phi nodes.
22247
22248 2004-07-12  Devang Patel  <dpatel@apple.com>
22249
22250         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
22251
22252 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
22253
22254         * function.c (expand_function_start): Ensure r_save is in Pmode.
22255         * calls.c (prepare_call_address): Ensure static_chain_value is
22256         in Pmode.
22257         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
22258         r_save_area are in Pmode.
22259         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
22260         fnaddr, and static_chain are in Pmode.
22261
22262 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
22263
22264         PR target/16445
22265         * config/ia64/ia64.c (bundling): Don't count ignored insns.
22266
22267 2004-07-12  Richard Henderson  <rth@redhat.com>
22268
22269         * target.h (struct gcc_target): Move gimplify_va_arg_expr
22270         next to build_builtin_va_list.
22271         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
22272         * builtins.c (gimplify_va_arg_expr): Likewise.
22273         * gimplify.c (copy_if_shared_r): Likewise.
22274
22275 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
22276
22277         * passes.c (rest_of_decl_compilation): Don't defer call of
22278         assemble_variable if its DECL_RTL is already set.
22279
22280 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
22281
22282         * cfgloop.h (struct loop): Add nb_iterations field.
22283         (current_loops): Declare.
22284         * tree-chrec.c (chrec_not_analyzed_yet,
22285         chrec_dont_know, chrec_known, count_ev_in_wider_type,
22286         chrec_contains_symbols_defined_in_loop): Remove the temporary
22287         hooks.
22288         * tree-flow-inline.h (loop_containing_stmt): New function.
22289         * tree-scalar-evolution.c: Add implementation.
22290         * tree-scalar-evolution.h: Add declarations.
22291
22292 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
22293
22294         PR rtl-optimization/15921
22295         * Makefile.in (global.o): Add recog.h.
22296
22297         * global.c (recog.h): Add the include-clause.
22298         (bb_info): New member earlyclobber.
22299         (allocate_bb_info, free_bb_info): Initialize/finish the new
22300         member.
22301         (earlyclobber_regclass, earlyclobber_regclass_length): The new
22302         global variables.
22303         (check_earlyclobber, regclass_intersect,
22304         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
22305         New functions.
22306         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
22307         (make_accurate_live_analysis): Modify pavin.
22308
22309 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
22310
22311         * tree-cfg.c (find_taken_edge): Statically compute the truth
22312         value of a predicate comparing an SSA_NAME to itself.
22313
22314 2004-07-12  Roger Sayle  <roger@eyesopen.com>
22315
22316         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
22317         rs6000 doesn't have shift-and-add or shift-and-sub instructions
22318         by returning the cost of a multiplication plus an addition.
22319
22320 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
22321
22322         PR tree-optimization/14107
22323         * gimplify.c (gimplify_return_expr): Accept a
22324         RETURN_EXPR with an error argument.
22325         * tree-optimize.c (init_tree_optimization_passes):
22326         Run pass_warn_function_return at -O0.
22327
22328 2004-07-12  Roger Sayle  <roger@eyesopen.com>
22329
22330         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
22331         index entry.
22332
22333 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
22334
22335         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
22336         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
22337         * config/mips/3000.md: Add copyright notice.  Remove automota and
22338         function units; use generic ones instead.  Only define reservations
22339         for things that are different from generic.md.  Extend each clause
22340         to include r3900.
22341         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
22342         * config/mips/mips.md: Include them. Remove define_function_units.
22343         (alu, imuldiv): New automata and units.
22344
22345 2004-07-12  Ben Elliston  <bje@au.ibm.com>
22346
22347         * doc/invoke.texi (Optimize Options): Document -frename-registers
22348         not being enabled by default at -O3.
22349
22350 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22351
22352         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
22353         floating point additions, to keep real immediate constant positive.
22354         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
22355         into X + C, and leave positive real constants as X - C.
22356
22357 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22358
22359         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
22360
22361 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22362
22363         PR tree-optimization/15654
22364         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
22365
22366 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22367
22368         * builtins.c (fold_builtin_fputs): Don't bother converting the
22369         return type to integer_type_node, as we've already checked that
22370         the result will be ignored.
22371
22372         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
22373         that signed addition, subtraction, multiplication, division,
22374         remainder, negation and absolute value may potentially trap.
22375
22376         * fold-const.c (fold_ignored_result): New function to strip
22377         non-side-effecting tree nodes from an expression whose result
22378         is ignored.
22379         (fold_convert): Call fold_ignored_result when casting a value
22380         to VOID_TYPE.
22381         (omit_one_operand):  Call fold_ignored_result on the "omitted"
22382         operand when building a COMPOUND_EXPR.
22383         (pedantic_omit_one_operand): Likewise.
22384         * tree.h (fold_ignored_result): Prototype here.
22385         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
22386         when we're going to ignore the result.
22387
22388 2004-07-11  Richard Henderson  <rth@redhat.com>
22389
22390         PR tree-opt/16383
22391         * tree-ssa-ccp.c (fold_stmt_r): Split out...
22392         * tree.c (fields_compatible_p, find_compatible_field): ... new.
22393         * tree.h (fields_compatible_p, find_compatible_field): Declare.
22394         * tree-sra.c (sra_hash_tree): Hash fields by offset.
22395         (sra_elt_eq): Use fields_compatible_p.
22396         (generate_one_element_ref): Use find_compatible_field.
22397
22398 2004-07-11  Richard Henderson  <rth@redhat.com>
22399
22400         PR tree-opt/16422
22401         * tree-sra.c (generate_one_element_init): New.
22402         (generate_element_init): Use it.
22403         (scalarize_init): Push/pop gimplify context around it.
22404         (find_new_referenced_vars_1, find_new_referenced_vars): New.
22405         * gimplify.c (gimplify_expr): Allow SSA_NAME.
22406
22407 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22408
22409         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
22410         combine.c's combine_insn_cost.
22411         * rtl.h (insn_rtx_cost): Prototype here.
22412         * combine.c (combine_insn_cost): Delete function.
22413         (combine_validate_cost): Update callers of combine_insn_cost to
22414         call insn_rtx_cost instead.
22415         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
22416         requesting the rtx_cost of call and/or jump instructions.
22417
22418         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
22419         rtx_cost directly.  Don't request/use the cost of call or jump
22420         instructions.  Return -1 if the cost of any instruction can't be
22421         determined (or the BB contains a function call).
22422         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
22423         -1 (i.e. can't determine the cost of any instruction or the basic
22424         block contains a subroutine call).
22425         (find_if_case_2): Likewise.
22426
22427 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22428
22429         * rs6000.c (struct processor_costs): Change semantics of fields to
22430         include the COST_N_INSNS scaling, and update all initializers.
22431         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
22432         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
22433         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
22434         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
22435
22436 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22437
22438         * LANGUAGES: Remove obsolete information.
22439
22440 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
22441
22442         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
22443         SIGBUS signal frames, the PSW address points *to* the faulting
22444         instruction, not after it.
22445
22446 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
22447
22448         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
22449         added to TLS symbol addresses.
22450
22451 2004-07-11  Richard Henderson  <rth@redhat.com>
22452
22453         * expmed.c (init_expmed): Use stack-local structures for
22454         temporary rtl.  Don't recognize shifts.
22455
22456 2004-07-11  Richard Henderson  <rth@redhat.com>
22457
22458         * expr.c (store_expr): Don't fiddle subreg promotion for types
22459         with precision smaller than the mode.
22460
22461 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22462
22463         * tree.h (all_types_permanent): Remove.
22464
22465 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22466
22467         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
22468         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
22469         * langhooks.c (lhd_clear_binding_stack): Remove.
22470         * langhooks-def.h (lhd_clear_binding_stack,
22471         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
22472         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
22473         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
22474         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22475         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
22476         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
22477         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
22478         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
22479         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
22480         * tree.h (poplevel): Don't declare.
22481         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
22482         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22483         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
22484         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
22485         Remove.
22486
22487 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22488
22489         PR tree-optimization/16437
22490         * c-common.c (shorten_compare): Don't mark result of conversion to
22491         narrower signed type as overflowing.
22492         * fold-const.c (decode_field_reference): Determine whether
22493         signedness comes from outer type using precision rather than size.
22494
22495 2004-07-11  Phil Edwards  <phil@codesourcery.com>
22496
22497         * configure.ac:  Alphabetize --enable-checking list, add
22498         missing valgrind entry.
22499         * configure:  Regenerate.
22500
22501 2004-07-11  Phil Edwards  <phil@codesourcery.com>
22502
22503         * doc/install.texi (Testing):  Fix syntax in "make check" example.
22504
22505 2004-07-10  James E Wilson  <wilson@specifixinc.com>
22506
22507         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
22508
22509 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22510
22511         PR rtl-optimization/16001
22512         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
22513         niter_expr.
22514
22515 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
22516
22517         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
22518
22519 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
22520             James Morrison  <phython@gcc.gnu.org>
22521
22522         * doc/contrib.texi (Contributors): Add gfortran contributors and
22523         fix a couple of typos.
22524
22525 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22526
22527         PR rtl-optimization/15387
22528         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
22529         to incoming args space correctly.
22530
22531 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22532
22533         * pa.c (output_indirect_call): Only use %r2 as the link register in
22534         indirect calls with the long PA 2.0 pc-relative branch.
22535
22536 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
22537
22538         * config/i386/i386.c (override_options): Pick a 64-bit CPU
22539         for the default tuning if TARGET_64BIT.
22540
22541 2004-07-10  Richard Henderson  <rth@redhat.com>
22542
22543         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
22544         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
22545
22546 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
22547
22548         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
22549         * expmed.c (store_bit_field, extract_bit_field): Remove last
22550         argument.
22551         * builtins.c (expand_builtin_signbit): Adjust callers.
22552         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
22553         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
22554         * ifcvt.c (noce_emit_move_insn): Likewise.
22555         * stmt.c (expand_return): Likewise.
22556         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
22557         store_field, expand_expr_real_1): Likewise.
22558
22559 2004-07-10  Richard Henderson  <rth@redhat.com>
22560
22561         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
22562
22563 2004-07-09  Mike Stump  <mrs@apple.com>
22564
22565         * config/darwin.c (no_dead_strip): Add.
22566         (HAVE_DEAD_STRIP): Add.
22567         (darwin_emit_unwind_label): Ensure that we don't dead code strip
22568         the .eh label.
22569
22570 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22571
22572         * tree-ssa-loop-im.c: New file.
22573         * Makefile.in (tree-ssa-loop-im.o): Add.
22574         * cfgloop.c (superloop_at_depth): New function.
22575         * cfgloop.h (superloop_at_depth): Declare.
22576         * common.opt (ftree-lim): New flag.
22577         * expr.c (array_ref_up_bound): New function.
22578         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
22579         * timevar.def (TV_LIM): New timevar.
22580         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
22581         computing immediate uses of a phi node.
22582         * tree-flow.h (struct tree_ann_common_d): Add aux field.
22583         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
22584         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
22585         * tree-pass.h (pass_lim): Declare.
22586         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
22587         functions.
22588         (pass_lim): New pass structure.
22589         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
22590         * tree.c (in_array_bounds_p): New function.
22591         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
22592         (in_array_bounds_p, array_ref_up_bound): Declare.
22593         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
22594         * doc/passes.texi (tree-ssa-loop-im.c): Document.
22595
22596 2004-07-09  Richard Henderson  <rth@redhat.com>
22597
22598         * builtins.c (expand_builtin_stpcpy): Don't modify len.
22599
22600         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
22601         with prejudice.
22602
22603 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
22604
22605         * flags.h: Delete redundant prototypes that are being generated
22606         in options.h from common.opt.
22607         * common.opt: Add in the expository comments formerly in flags.h.
22608
22609 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22610
22611         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
22612         available for use only when TARGET_MMX/_SSE is set, and check for
22613         variable argument function if any register count is non-zero.
22614         (function_arg): Correctly suppress repeated warnings for passing SSE
22615         vectors are arguments without SSE enabled.
22616         (ix86_function_arg_boundary): Without SSE enabled, the use of what
22617         would be SSE register modes does no longer influence the alignment.
22618
22619 2004-07-09  Richard Henderson  <rth@redhat.com>
22620
22621         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
22622         Always align upward to arg boundary.  Use size_in_bytes/round_up.
22623         Maintain type-correctness of constants.
22624         * stor-layout.c (round_up, round_down): Special-case powers of 2.
22625
22626 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22627
22628         * config/sparc/sparc.c (*_costs): Scale instruction costs
22629         by COSTS_N_INSNS.
22630         (sparc_rtx_costs): Adjust as appropriate.
22631
22632 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22633
22634         * config/i386/mm3dnow.h: New.
22635         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
22636
22637 2004-07-09  Richard Henderson  <rth@redhat.com>
22638
22639         * simplify-rtx.c (simplify_const_relational_operation): Only
22640         look at bounds of scalar integers.
22641
22642 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22643
22644         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
22645
22646 2004-07-09  Andrew Pinski  <apinski@apple.com>
22647
22648         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
22649         always referenced.
22650         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
22651         UOBJC_METACLASS_decl.
22652
22653 2004-07-09  James E Wilson  <wilson@specifixinc.com>
22654
22655         PR target/16364
22656         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
22657         do return a parallel if hfa_mode == XFmode and mode == TImode.
22658
22659 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22660
22661         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
22662         permissible for unary plus.
22663
22664 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22665
22666         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
22667         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
22668         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
22669         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
22670         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
22671         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
22672         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
22673         (BUILTIN_xxxIMAX): New.
22674         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
22675         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
22676         BUILT_IN_PARITYIMAX.
22677
22678 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22679
22680         * config/sparc/sparc.h (processor_costs): Define.
22681         (sparc_costs): Declare.
22682         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
22683         hypersparc_costs, sparclet_costs, ultrasparc_costs,
22684         ultrasparc3_costs): New.
22685         (sparc_override_options): Set sparc_costs as appropriate.
22686         (sparc_rtx_costs): Use sparc_costs instead of messy
22687         conditionals.
22688
22689 2004-07-09  Steven Bosscher  <stevenb@suse.de>
22690
22691         * doc/md.texi (Processor pipeline description): Mention that
22692         the old pipeline description is deprecated.
22693
22694         * config/rs6000/7450.md (automaton ppc7450): Split up, move
22695         mciu_7450 function unit to...
22696         (automaton ppc7450mciu): ...new automaton.
22697
22698         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
22699         (schedule_block): Don't consider inserting bubbles.
22700         (sched_init): Don't initialize DFA bubbles.
22701         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
22702         TARGET_SCHED_DFA_BUBBLE): Remove.
22703         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
22704         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
22705         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
22706
22707         * stmt.c (conditional_context): Remove prototype.
22708         * tree.h (conditional_context): Remove.
22709         * tree-cfg.c (pre_insert_on_edge): Remove.
22710
22711         * c-common.h (c_expand_asm_operands): Remove prototype.
22712         * c-typeck.c (c_expand_asm_operands): Remove.
22713
22714 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22715
22716         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
22717         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
22718         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
22719         and V8QI are class SSE. All sufficiently small remaining vector modes
22720         must be passed in one or two integer registers.
22721         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
22722         returned in memory.
22723         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
22724         __builtin_ia32_pmuludq128 have non-uniform argument and return types
22725         and must thus be handled explicitly.
22726         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
22727         MMX and XMM regs.
22728         (movv8qi_internal, movv4hi_internal, movv2si_internal,
22729         movv2sf_internal): Permit moving between MMX and XMM registers (since
22730         MMX areguments and return values are passed in XMM registers).
22731         (sse2_umulsidi3): Correct type and mode.
22732
22733 2004-07-09  Richard Henderson  <rth@redhat.com>
22734
22735         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
22736
22737 2004-07-09  Eric Christopher  <echristo@redhat.com>
22738
22739         * config/rs6000/40x.md: Split into two automatons.
22740
22741 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22742             Andrew Pinski  <apinski@apple.com>
22743
22744         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
22745         on when we have more than one input file.
22746         (c_common_parse_file): Restore loop over all input files.
22747         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
22748
22749         * c-decl.c (set_type_context): New function.
22750         (pop_scope): Use it to set context of types.  When we
22751         encounter a TYPE_DECL, set the context of the attached type too.
22752         (pop_file_scope): Don't call cpp_undef_all here.
22753         (diagnose_mismatched_decls): Do not complain about a second
22754         definition of an 'extern inline' function if it's not in the
22755         same translation unit.  Do not complain about inline
22756         declaration after use if the use was in a different
22757         translation unit.
22758         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
22759         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
22760         the external scope.
22761         (pushdecl_top_level): Likewise.
22762         (grokdeclarator): Clarify what is going on with setting
22763         DECL_EXTERNAL on function types, a little.
22764         (c_write_global_declarations): Don't do anything if
22765         -fsyntax-only or errors have been encountered.
22766
22767 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22768
22769         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
22770
22771 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22772
22773         PR target/16459
22774         * pa.c (output_indirect_call): Use %r2 as the link register when
22775         calling $$dyncall with a pc-relative branch.
22776
22777 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
22778
22779         * doc/install.texi (Binaries): Mention OpenPKG.
22780
22781 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
22782
22783         Fix PR tree-optimization/15555
22784         * tree-dfa.c (dump_variable): If the variable is a pointer
22785         SSA_NAME, also dump its points-to information.
22786         * tree-flow.h (struct ptr_info_def): Add field
22787         is_dereferenced.
22788         (dump_points_to_info_for): Declare.
22789         (debug_points_to_info_for): Declare.
22790         * tree-optimize.c (init_tree_optimization_passes): Add a
22791         second alias analysis pass after DOM2.
22792         Move pass_del_pta to a later spot.
22793         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
22794         create a name tags when we find a dereferenced pointer.  Just
22795         mark the pointer dereferenced.
22796         (collect_points_to_info_for): Move code to clear points-to
22797         information to create_name_tags.
22798         (create_name_tags): New function.
22799         (compute_flow_sensitive_aliasing): Call it.
22800         (setup_pointers_and_addressables): Mark type tags for renaming
22801         here instead of ...
22802         (create_memory_tag): ... here.
22803         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
22804         (dump_points_to_info_for): Declare extern.
22805         (debug_points_to_info_for): New function.
22806
22807 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
22808
22809         * config/arc/arc.md: Switch to DFA-based scheduler description.
22810         * config/arc/arc.c: Switch to DFA-based scheduler description.
22811
22812 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22813
22814         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
22815         pointer.
22816
22817 2004-07-09  Richard Henderson  <rth@redhat.com>
22818
22819         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
22820         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22821         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
22822         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22823
22824         * config/v850/v850-protos.h (v850_va_arg): Remove.
22825         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22826         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
22827         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
22828         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
22829         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
22830
22831 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22832
22833         PR target/12133
22834         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
22835         and DImode to use +/-4k offset.
22836
22837 2004-07-09  Richard Henderson  <rth@redhat.com>
22838
22839         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
22840         Remove.
22841         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22842         (xstormy16_gimplify_va_arg_expr): Rewrite from
22843         xstormy16_expand_builtin_va_arg.
22844         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
22845
22846         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
22847         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
22848
22849         * config/sh/sh-protos.h (sh_va_arg): Remove.
22850         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22851         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
22852         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
22853
22854         * config/pa/pa-protos.h (hppa_va_arg): Remove.
22855         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22856         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
22857         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22858
22859         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
22860         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22861         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
22862         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
22863
22864 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22865
22866         * config/sparc/sparc.md (return): Rewrite length formula.
22867         * config/sparc/sparc.c (output_return): Pass 1 as 5th
22868         argument to final_scan_insn when in a delay slot.
22869         (output_sibcall): Likewise.
22870
22871 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22872
22873         * arm.c (arm_cpp_interwork): New variable.
22874         (arm_override_options): Set it if TARGET_INTERWORK was on the command
22875         line.
22876         * arm.h (arm_cpp_interwork): Declare it.
22877         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
22878         __THUMB_INTERWORK__ in the preprocessor.
22879
22880 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
22881
22882         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
22883
22884 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22885
22886         PR target/16416
22887         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
22888         Override default settings to account for -m32 and -m64.
22889
22890 2004-07-08  Randolph Chung  <tausq@debian.org>
22891
22892         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
22893
22894 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
22895
22896         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
22897         before comparing it as such.
22898
22899 2004-07-08  Richard Henderson  <rth@redhat.com>
22900
22901         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
22902         temporary.  Use bit arithmetic to align.
22903
22904 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
22905
22906         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
22907         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
22908         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
22909         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
22910         add_labels_and_missing_jumps, find_jump_block,
22911         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
22912         Likewise.
22913         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
22914         link_btr_uses, move_btr_def): Likewise.
22915         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
22916         expand_builtin_expect_jump): Likewise.
22917         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
22918         * calls.c (expand_call, emit_library_call_value_1): Likewise.
22919         * cfganal.c (forwarder_block_p): Likewise.
22920         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
22921         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
22922         find_bb_boundaries): Likewise.
22923         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
22924         merge_blocks_move_predecessor_nojumps,
22925         merge_blocks_move_successor_nojumps, insns_match_p,
22926         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
22927         try_optimize_cfg): Likewise.
22928         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
22929         * cfglayout.c (skip_insns_after_block, label_for_bb,
22930         record_effective_endpoints, insn_locators_initialize,
22931         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
22932         * cfgmainloop.c (create_loop_notes): Likewise.
22933         * cfgrtl.c (delete_insn, delete_insn_chain,
22934         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
22935         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
22936         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
22937         redirect_branch_edge, force_nonfallthru_and_redirect,
22938         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
22939         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
22940         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
22941         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
22942         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
22943         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
22944         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
22945         * combine.c (combine_instructions, can_combine_p, try_combine,
22946         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
22947         distribute_notes, distribute_links, insn_cuid): Likewise.
22948         * cse.c (fold_rtx, cse_insn, cse_around_loop,
22949         invalidate_skipped_block, cse_set_around_loop,
22950         cse_end_of_basic_block, cse_main, cse_basic_block,
22951         cse_condition_code_reg): Likewise.
22952         * cselib.c (cselib_process_insn): Likewise.
22953         * ddg.c (create_ddg): Likewise.
22954         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
22955         Likewise.
22956         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
22957         gen_label_die, dwarf2out_var_location): Likewise.
22958         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
22959         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
22960         last_call_insn, active_insn_p, next_label, prev_label,
22961         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
22962         add_insn_before, remove_insn, add_function_usage_to,
22963         reorder_insns, find_line_note, remove_unnecessary_notes,
22964         emit_insn_after_1, classify_insn): Likewise.
22965         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
22966         connect_post_landing_pads, sjlj_mark_call_sites,
22967         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
22968         can_throw_internal, can_throw_external, set_nothrow_function_flags,
22969         convert_to_eh_region_ranges): Likewise.
22970         * explow.c (optimize_save_area_alloca): Likewise.
22971         * expr.c (expand_expr_real): Likewise.
22972         * final.c (insn_current_reference_address, compute_alignments,
22973         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
22974         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
22975         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
22976         propagate_block_delete_insn, propagate_one_insn,
22977         init_propagate_block_info, propagate_block, libcall_dead_p,
22978         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
22979         Likewise.
22980         * function.c (instantiate_virtual_regs, reorder_blocks_1,
22981         expand_function_start, expand_function_end, contains,
22982         thread_prologue_and_epilogue_insns,
22983         reposition_prologue_and_epilogue_notes): Likewise.
22984         * gcse.c (constprop_register, bypass_conditional_jumps,
22985         insert_insn_end_bb, gcse_after_reload): Likewise.
22986         * genemit.c (gen_expand, gen_split): Likewise.
22987         * genpeep.c (gen_peephole, main): Likewise.
22988         * global.c (build_insn_chain): Likewise.
22989         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
22990         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
22991         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
22992         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
22993         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
22994         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
22995         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
22996         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
22997         dead_or_predicable): Likewise.
22998         * integrate.c (try_constants): Likewise.
22999         * jump.c (rebuild_jump_labels, cleanup_barriers,
23000         purge_line_number_notes, init_label_info, mark_all_labels,
23001         squeeze_notes, get_label_before, get_label_after,
23002         reversed_comparison_code_parts, simplejump_p, pc_set,
23003         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
23004         delete_barrier, delete_prior_computation, delete_computation,
23005         delete_related_insns, delete_for_peephole, redirect_jump):
23006         Likewise.
23007         * lcm.c (optimize_mode_switching): Likewise.
23008         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
23009         Likewise.
23010         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
23011         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
23012         * loop-iv.c (simplify_using_assignment): Likewise.
23013         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
23014         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
23015         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
23016         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
23017         check_insn_for_givs, check_final_value, update_giv_derive,
23018         basic_induction_var, product_cheap_p, check_dbra_loop,
23019         loop_insn_first_p, last_use_this_basic_block,
23020         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
23021         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
23022         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
23023         sms_schedule_by_order): Likewise.
23024         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
23025         * postreload.c (reload_cse_simplify_operands, reload_combine,
23026         reload_cse_move2add): Likewise.
23027         * predict.c (can_predict_insn_p, estimate_probability,
23028         expected_value_to_br_prob, process_note_predictions): Likewise.
23029         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
23030         * profile.c (branch_prob): Likewise.
23031         * ra-build.c (live_out_1, livethrough_conflicts_bb,
23032         detect_webs_set_in_cond_jump): Likewise.
23033         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
23034         ra_print_rtl_with_bb): Likewise.
23035         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
23036         * recog.c (next_insn_tests_no_inequality, find_single_use,
23037         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
23038         * reg-stack.c (next_flags_user, record_label_references,
23039         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
23040         compensate_edge, convert_regs_1): Likewise.
23041         * regclass.c (scan_one_insn): Likewise.
23042         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
23043         regmove_optimize, fixup_match_1, single_set_for_csa,
23044         combine_stack_adjustments_for_block): Likewise.
23045         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
23046         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
23047         find_equiv_reg): Likewise.
23048         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
23049         reload_as_needed, emit_input_reload_insns, do_output_reload,
23050         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
23051         Likewise.
23052         * reorg.c (find_end_label, emit_delay_sequence,
23053         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
23054         get_jump_flags, rare_destination, mostly_true_jump,
23055         try_merge_delay_insns, redundant_insn, own_thread_p,
23056         fill_simple_delay_slots, fill_slots_from_thread,
23057         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
23058         dbr_schedule): Likewise.
23059         * resource.c (find_basic_block, next_insn_no_annul,
23060         find_dead_or_set_registers, mark_target_live_regs): Likewise.
23061         * rtl.h (RTX_PREV): Likewise.
23062         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
23063         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
23064         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
23065         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
23066         tablejump_p, computed_jump_p, insns_safe_to_move_p,
23067         find_first_parameter_load, can_hoist_insn_p): Likewise.
23068         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
23069         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
23070         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
23071         schedule_ebbs): Likewise.
23072         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
23073         is_conditionally_protected, can_schedule_ready_p,
23074         add_branch_dependences, debug_dependencies): Likewise.
23075         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
23076         Likewise.
23077         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
23078         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
23079         set_dominates_use, ujump_to_loop_cont): Likewise.
23080         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
23081         * varasm.c (output_constant_pool_1): Likewise.
23082
23083 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23084
23085         * tree-scalar-evolution.c: New file.
23086         * tree-scalar-evolution.h: New file.
23087         * tree-ssa-loop-niter.c: New file.
23088         * Makefile.in (SCEV_H): New.
23089         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
23090         * cfgloop.h (struct loop): Add bounds field.
23091         * tree-flow.h (struct tree_niter_desc): New type.
23092         (number_of_iterations_cond, number_of_iterations_exit,
23093         loop_niter_by_eval, find_loop_niter_by_eval,
23094         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
23095         free_numbers_of_iterations_estimates): Declare.
23096         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
23097         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
23098         * doc/invoke.texi (max-iterations-to-track): Document.
23099
23100 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
23101
23102         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
23103         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
23104         (MODE_AFTER): Add cast appropriately.
23105         * config/sh/sh.md (movdi splitter): Likewise.
23106         (casesi_worker_2): Add const qualifier appropriately.
23107         (eh_return): Remove unused variable.
23108         (insv): Initialize v;
23109
23110 2004-07-08  Richard Henderson  <rth@redhat.com>
23111
23112         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
23113         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23114         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
23115         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
23116         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
23117
23118         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
23119         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23120         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
23121         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
23122
23123         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
23124         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23125         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
23126         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
23127
23128         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
23129         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23130         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
23131         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
23132
23133         * config/i860/i860-protos.h (i860_va_arg): Remove.
23134         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23135         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
23136         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
23137
23138 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
23139
23140         * system.h: Prototype getpagesize if missing.
23141         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
23142         * configure: Regenerate.
23143         * config.in: Regenerate.
23144
23145 2004-07-08  Richard Henderson  <rth@redhat.com>
23146
23147         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
23148         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23149         (fr30_gimplify_va_arg_expr): New.
23150         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
23151         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
23152
23153 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
23154
23155         PR target/16414
23156         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
23157         of asm_noperands result.
23158
23159 2004-07-08  Richard Henderson  <rth@redhat.com>
23160
23161         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
23162         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23163         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
23164         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
23165
23166 2004-07-08  Richard Henderson  <rth@redhat.com>
23167
23168         * builtins.c (ind_gimplify_va_arg_expr): New.
23169         * tree.h (ind_gimplify_va_arg_expr): Declare.
23170         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
23171
23172 2004-07-08  Jan Beulich  <jbeulich@novell.com>
23173
23174         * expmed.c (extract_bit_field): Correct condition to use vec_extract
23175         patterns also on vector elements other than the first one.
23176         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
23177         break statements.
23178
23179 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
23180
23181         * config/rs6000/darwin-ldouble.c: Correct reference
23182         to the Linnainmaa paper.
23183
23184 2004-07-08  Richard Henderson  <rth@redhat.com>
23185
23186         * config/arc/arc-protos.h (arc_va_arg): Remove.
23187         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23188         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
23189         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
23190
23191         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
23192         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23193         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
23194         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
23195
23196 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23197
23198         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
23199
23200 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
23201
23202         * c-decl.c (static_ctors, static_dtors): Make static.
23203         (pop_file_scope): Call c_common_write_pch and
23204         cgraph_finalize_compilation_unit here.
23205         (build_cdtor): Moved here from c-objc-common.c; simplify.
23206         (c_write_global_declarations_1): Clarify comment.
23207         (c_write_global_declarations): Close the external scope before
23208         doing anything else.  Call build_cdtor, cgraph_optimize, and
23209         mudflap_finish_file here.
23210         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
23211         Clarify comment.
23212         * c-objc-common.c: No need to include cgraph.h.
23213         (build_cdtor): Moved to c-decl.c.
23214         (c_objc_common_finish_file): Delete.
23215         * c-tree.h: Update to match.
23216         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
23217         (generate_static_references): Set TREE_USED before calling finish_decl.
23218         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
23219         on the static_instances_decl.
23220
23221 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
23222
23223         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
23224         decls when there is only one input translation unit.
23225         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
23226         change of 2004-07-05; do not treat declarations with
23227         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
23228         * opts.c (cur_in_fname): Delete.
23229         * opts.h: Likewise.
23230         * tree.c: Revert changes of 2004-07-05; no special treatment
23231         for TRANSLATION_UNIT_DECLs.
23232         * Makefile.in (tree.o): Update dependencies.
23233
23234 2004-07-08  Roger Sayle  <roger@eyesopen.com>
23235
23236         * builtins.c (fold_builtin_strcpy): Merge functionality from
23237         simplify_builtin_strcpy.  Add additional len argument.  No longer
23238         static.  Remove function prototype.
23239         (fold_builtin_strncpy): Likewise integrate functionality from
23240         simplify_builtin_strncpy.  Add additional slen argument.  No
23241         longer static.  Remove function prototype.
23242         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
23243         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
23244         types of "ignore" and "unlocked" parameters to bool.
23245         (fold_builtin_1):  Add additional ignore argument.  Call renamed
23246         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
23247         builtins.  Update arguments to fold_builtin_strncpy and
23248         fold_builtin_strcpy.  Add function prototype.
23249         (fold_builtin): Add additional Boolean ignore argument to pass
23250         to fold_builtin_1.
23251         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
23252         and fold_builtin_strncpy instead of simplify_builtin_fputs,
23253         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
23254
23255         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
23256         simplify_builtin_strncpy): Delete function prototypes.
23257         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
23258         fold_builtin_strncpy): Add function prototypes here.
23259         (fold_builtin): Update function prototype with new "bool ignore".
23260
23261         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
23262         (ccp_fold_builtin):  Update call to fold_builtin.  Call
23263         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
23264         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
23265         simplify_builtin_strncpy respectively.
23266         * fold-const.c (fold): Update call to fold_builtin.
23267
23268 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
23269
23270         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
23271         to strcpy.
23272
23273         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
23274         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
23275         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
23276         * calls.c: Remove ifdefs of macros above.
23277         * functions.c: Likewise.
23278         * expr.c: Likewise.
23279
23280 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23281
23282         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
23283         (arch attribute): Delete.
23284         (current_function_calls_alloca attribute): Rename into calls_alloca.
23285         (calls_eh_return): New attribute.
23286         (leaf_function): Likewise.
23287         (length attribute): Fix formula for sibcalls.
23288         (return insn): Correctly compute the 'length' attribute.
23289         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
23290
23291 2004-07-08  Richard Henderson  <rth@redhat.com>
23292
23293         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
23294         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
23295         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
23296         * tree-eh.c (lower_eh_constructs_1): Likewise.
23297         * tree-sra.c (sra_walk_modify_expr): Likewise.
23298         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23299         (eliminate_unnecessary_stmts): Likewise.
23300         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
23301         * tree-tailcall.c (optimize_tail_call): Likewise.
23302         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
23303
23304 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23305             Jakub Jelinek  <jakub@redhat.com>
23306
23307         * config/i386/i386.c (override_options): Enable
23308         SSE prefetches with -mtune, as long as we are
23309         compiling for i686 or higher.  All i686 processors
23310         accept SSE prefetches as NOPS, some i586's don't.
23311
23312 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23313
23314         PR target/10567
23315         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
23316
23317 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
23318
23319         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
23320         the handling of clobbering ASM_EXPRs.
23321
23322 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23323
23324         PR target/16430
23325         * config/sparc/sparc.c (function_value): In 64-bit mode,
23326         return the aggregates larger than 16 bytes like unions.
23327
23328 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23329
23330         PR target/16199
23331         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
23332         'temp' is zero, generate new pseudos as needed and emit the
23333         sequence of insns in single-assignment form.  Resync comments
23334         with code.
23335         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
23336         function before reload.
23337
23338 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
23339
23340         * vec.c (vec_assert_fail): Remove duplicate 'function'.
23341
23342         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
23343
23344         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
23345         Allocation is signed.
23346         (VEC_reserve): Return flag, allocation is signed.
23347
23348 2004-07-08  Richard Henderson  <rth@redhat.com>
23349
23350         * tree-ssa-ccp.c (fold_stmt): Get type directly from
23351         OBJ_TYPE_REF_OBJECT.
23352
23353 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
23354             Neil Booth  <neil@daikokuya.co.uk>
23355
23356         PR c/2511
23357         PR c/3325
23358         * c-decl.c (finish_struct): Ensure bit-fields are given the
23359         correct type.
23360         * c-common.c (c_common_signed_or_unsigned_type): For C, require
23361         the precision to match as well as the mode.
23362         * expr.c (reduce_to_bit_field_precision): New function.
23363         (expand_expr_real_1): Reduce expressions of bit-field type to
23364         proper precision.
23365         * langhooks.h (reduce_bit_field_operations): New hook.
23366         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
23367         Define.
23368         * c-lang.c, objc/objc-lang.c
23369         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
23370         * objc/objc-act.c (check_ivars): Convert types to bit-field types
23371         before checking.
23372         * tree.c (build_nonstandard_integer_type): New function.
23373         * tree.h (build_nonstandard_integer_type): New prototype.
23374         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
23375         conversions between integer and boolean types as useless.
23376
23377 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23378
23379         * c-common.c (c_common_nodes_and_builtins): Do not
23380         create __builtin_ptrdiff_t and __builtin_size_t.
23381
23382 2004-07-08  Andrew Pinski  <apinski@apple.com>
23383
23384         * Makefile.in (libbackend.o): Add -combine to the gcc
23385         command line.
23386
23387 2004-07-08  Nick Clifton  <nickc@redhat.com>
23388
23389         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
23390         Set to -Os.
23391
23392 2004-07-08  Richard Henderson  <rth@redhat.com>
23393
23394         * except.c (expand_eh_region_start, expand_eh_region_end,
23395         expand_eh_handler, expand_eh_region_end_cleanup,
23396         expand_start_all_catch, expand_start_catch, expand_end_catch,
23397         expand_end_all_catch, expand_eh_region_end_allowed,
23398         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
23399         expand_eh_region_end_fixup): Remove.
23400         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
23401         cleanups, outer_cleanups, label_chain, exception_region.
23402         (struct goto_fixup): Remove stack_level, cleanup_list_list.
23403         (struct label_chain): Remove.
23404         (struct stmt_status): Remove x_stack_block_stack.
23405         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
23406         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
23407         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
23408         end_cleanup_deferral, last_cleanup_this_contour,
23409         containing_blocks_have_cleanups_or_stack_level,
23410         any_pending_cleanups): Remove.
23411         (expand_null_return_1): Take no arguments.
23412         (expand_label, expand_naked_return, expand_return,
23413         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
23414         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
23415         expand_end_case_type): Don't use any of them.
23416         * calls.c (expand_call): Likewise.
23417         * dojump.c (do_jump): Likewise.
23418         * function.c (expand_function_end): Likewise.
23419         * expr.c (store_expr, expand_expr_real_1): Likewise.
23420         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
23421         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
23422         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
23423         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
23424         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
23425         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
23426         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
23427         for WITH_CLEANUP_EXPR.
23428         (gimple_push_cleanup): Likewise.
23429         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
23430         * print-tree.c (print_node): Likewise.
23431         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
23432         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
23433         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
23434         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
23435         (GOTO_SUBROUTINE_EXPR): Remove.
23436         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
23437         (DECL_TOO_LATE): Remove.
23438         * except.h, tree.h: Update decls.
23439
23440 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23441
23442         * explow.c (optimize_save_area_alloca): Do not accept parameters.
23443         * passes.c (rest_of_handle_final): Handle symout.
23444         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
23445         Push timevar here.
23446         (rest_of_handle_sched): Break out SMS.  Remove ifs for
23447         flag_schedule_insns and flag_modulo_sched.
23448         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
23449         collect at the end.
23450         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
23451         (rest_of_handle_partition_blocks, rest_of_handle_sms,
23452         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
23453         rest_of_handle_mode_switching, rest_of_handle_jump,
23454         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
23455         rest_of_handle_jump2, rest_of_handle_postreload,
23456         rest_of_handle_flow2, rest_of_clean_state,
23457         rest_of_handle_shorten_branches,
23458         rest_of_handle_prologue_epilogue,
23459         rest_of_handle_branch_target_load_optimize): New.
23460         (rest_of_compilation): Call the above.  Remove ggc_collect
23461         calls moved to rest_of_handle_*.
23462         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
23463
23464         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
23465         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
23466         * except.h (set_nothrow_function_flags): Update comment.
23467         * function.c (current_function_nothrow): Remove.
23468         * output.h (current_function_nothrow): Remove.
23469         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
23470         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
23471
23472 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23473
23474         PR bootstrap/16326
23475         * reorg.c: Revert 2004-06-30 change.
23476         (find_end_label): If HAVE_epilogue and !HAVE_return,
23477         return 0 instead of creating a label at the end of the insn chain.
23478         (optimize_skip): Account for the failure mode of find_end_label.
23479         (fill_simple_delay_slots): Likewise.
23480         (fill_slots_from_thread): Likewise.
23481         (relax_delay_slots): Likewise.
23482
23483 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
23484
23485         * tree-flow.h (addressable_vars): Declare.
23486         * tree-ssa-alias.c (addressable_vars): Define.
23487         (setup_pointers_and_addressables): Add addressable variables
23488         to addressable_vars.
23489         * tree-ssa-operands.c (get_stmt_operands): Move
23490         handling of ASM_EXPRs ...
23491         (get_asm_expr_operands): ... here.
23492         When the ASM_EXPR clobbers memory, also clobber addressable
23493         variables.
23494         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
23495         (delete_tree_ssa): Reset addressable_vars.
23496
23497 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23498             Richard Henderson  <rth@redhat.com>
23499
23500         * varasm.c (assemble_variable): Use assemble_zeros for
23501         zero-initialized variables.
23502         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
23503         for SECCAT_BSS and SECCAT_TBSS.
23504
23505 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23506
23507         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
23508
23509         * expmed.c (emit_store_flag): Also special-case double-word
23510         (in-)equality comparison against -1.
23511
23512         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
23513         passing arguments the containers for which are registers.
23514
23515         * calls.c (emit_library_call_value_1): Use mode of function parameter
23516         rather than that of argument since constants have none.
23517
23518 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
23519
23520         Introduce H8SX support.
23521         * expr.c (expand_strcpy): Renamed and moved to...
23522         * builtins.c (expand_movstr): ... here.  Tweak.
23523         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
23524         computed or has side effects.
23525         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
23526         unused, or if mempcpy fails.  Adjust the return value in the
23527         latter case.  Use movstr if everything else fails.
23528         * doc/md.texi (movstr): Document.
23529         (movmemM, clrmemM): Fix explanation of memory block operands.
23530         * config/h8300/h8300.md (stpcpy): Renamed to...
23531         (movstr): ... this.  Adjust.
23532         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23533         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
23534         movmem* and clrstr* to clrmem*.
23535         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
23536         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
23537         GENERAL_REGS, always.
23538         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
23539         getting the stack pointer as addr.
23540         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
23541         from general_operand_dst.
23542         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
23543         variant of...
23544         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
23545         instead of requiring it to match only before reload.
23546         (stpcpy_internal_normal): New, normal-mode variant of...
23547         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
23548         `D' instead of requiring it to match only before reload.
23549         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
23550         mode argument.
23551         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
23552         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
23553         h8300_get_index.
23554         * config/h8300/h8300.md (attr type): Add call.
23555         (attr can_delay): If type is call, set it no.
23556         (call, call_value): Set type to call.
23557         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
23558         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
23559         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
23560         * tree.c (get_narrower): Don't narrow integral types into
23561         non-integral types.
23562         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
23563         frame_size *before* the first use.
23564         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
23565         on input.
23566         (peephole2): Don't widen instructions that push SP.  Move
23567         decrement of SP to the end of all stm-generating peepholes.
23568         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23569         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
23570         and OR to set it to all ones.
23571         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23572         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
23573         (call, call_value): Set can_delay to "no".
23574         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
23575         * config/h8300/h8300.md (extzv): Make subreg check more robust.
23576         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23577         * config/h8300/h8300.md (*brabit): Remove.
23578         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
23579         zero_extract.  Use bit_memory_operand as the predicate for
23580         operand 1 and 'WU' as the constraint.  Check the difference
23581         between the base length and the final one when deciding which
23582         type of branch to use.
23583         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23584         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
23585         Use convert_move to extend the result for TARGET_H8300SX.  Check
23586         for QImode memory references.  Optimize the case where the
23587         destination is a paradoxical subreg.
23588         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23589         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
23590         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
23591         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23592         * config/h8300/h8300.md: Include mova.md
23593         (length_table): Add mova and mova_zero.
23594         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
23595         after all constant addresses for '%R', '%X', '%T' and '%S'.
23596         (h8300_mova_length): New function.
23597         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
23598         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
23599         dependencies for s-config, etc.
23600         * config/h8300/gemova.sh: New file.
23601         * config/h8300/mova.md: Generated.
23602         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
23603         * config/h8300/h8300.c (h8300_bitfield_length): New.
23604         (nibble_operand): Adjust.
23605         (h8300_binary_length): Handle conditional binary op.
23606         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
23607         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
23608         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
23609         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
23610         constraints.  WU is introduced as a variant of U that requires a
23611         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
23612         * config/h8300/h8300.md (attr type): Added bitbranch.
23613         (attr length_table): Added bitfield and bitbranch.
23614         (attr length): Compute bitbranch length.
23615         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
23616         least-significant bit of a byte.
23617         (brabit, brabc, brabs): New.
23618         (insv, extzv): Emit bfst and bfld on H8300SX.
23619         (bfld, bfst, seq, sne): New.
23620         (bstzhireg, cmpstz, bstz, bistz): New.
23621         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
23622         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
23623         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
23624         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
23625         (h8sx_unary_memory_operator): New function.
23626         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
23627         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
23628         * config/h8300/h8300.md: Add peepholes to combine reloads and
23629         arithmetic insns.
23630         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23631         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
23632         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
23633         (and?i, ior?i, xor?i): Likewise.
23634         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23635         * config/h8300/h8300.c: Move enums and prototypes to head of file.
23636         Various whitespace fixes.
23637         (h8300_constant_length): New function, split out from...
23638         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
23639         (h8300_classify_operand): Use IN_RANGE.
23640         (h8300_classify_operand): Use h8300_constant_length.
23641         (h8300_short_move_mem_p): Tighten size check.
23642         (h8sx_mergeable_memrefs_p): Tighten equality check.
23643         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
23644         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
23645         for -msx.
23646         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
23647         * config/h8300/crtn.asm: Likewise.
23648         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
23649         if __H8300SX__ is defined.
23650         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
23651         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
23652         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
23653         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
23654         addresses as mode-dependent.
23655         * config/h8300/h8300.c (print_operand_address): Update call to
23656         h8300_get_index.
23657         (h8300_get_index): Take a mode argument.  Rework to fix an
23658         earlier misunderstanding.
23659         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
23660         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
23661         into a register if TARGET_H8300SX.
23662         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
23663         TARGET_H8300SX.  Also disable related define_splits.
23664         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
23665         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
23666         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
23667         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23668         * config/h8300/h8300.h (OK_FOR_Z): New macro.
23669         (EXTRA_CONSTRAINT_STR): Check it.
23670         * config/h8300/h8300.c (h8300_classify_operand): Accept null
23671         class arguments.
23672         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
23673         * config/h8300/h8300.md (length_table): Add mov_imm4.
23674         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
23675         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23676         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
23677         be a label.
23678         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
23679         * config/h8300/h8300.c (h8300_reorg): New function.
23680         (TARGET_MACHINE_DEPENDENT_REORG): Define.
23681         * config/h8300/h8300.md (length): Subtract the length of the
23682         delay slot from (pc) when checking the range of forward branches.
23683         (delay_slot, can_delay): New attributes.
23684         (define_delay): Add bra/s handling.
23685         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
23686         (jump): Add delayed-branch handling.
23687         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
23688         * expr.c (expand_strcpy): New function.
23689         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
23690         (expand_builtin_stpcpy): Likewise.
23691         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
23692         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
23693         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
23694         handling to improve register allocation for -fno-omit-frame-pointer.
23695         (h8sx_split_movmd): Delete, moving er6 handling into...
23696         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
23697         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
23698         (movmd): Add calls to copy_rtx.
23699         (movmd_internal): In the second alternative, allow the initial and
23700         final destination registers to be different .  Update the splitter
23701         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
23702         instead of h8sx_split_movmd.
23703         (stpcpy, movsd): New expanders.
23704         (movsd_internal): New define_insn.
23705         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
23706         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
23707         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
23708         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
23709         and DESTINATION_REGS.
23710         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
23711         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
23712         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
23713         (h8300_move_ratio): Declare.
23714         (MOVE_RATIO): Use it.
23715         * config/h8300/h8300.c (h8300_move_ratio): New variable.
23716         (h8300_init_once): Initialize it.
23717         (h8300_reg_class_from_letter): New function.
23718         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
23719         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
23720         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
23721         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
23722         (movstrsi, movmd): New expanders.
23723         (movmd_internal): New insn.
23724         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
23725         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
23726         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
23727         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
23728         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
23729         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23730         * config/h8300/h8300.c (nibble_operand): Fix warning.
23731         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
23732         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
23733         (movsf_h8300h): Disable for TARGET_H8300SX.
23734         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23735         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
23736         h8300_stm_parallel and h8300_return_parallel.
23737         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
23738         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
23739         h8300_stm_parallel, h8300_return_parallel): New functions.
23740         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
23741         if TARGET_H8300SX.  Use h8300_push_pop.
23742         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
23743         and final pop when generating h8sx code.  Always emit some form
23744         of return insn.
23745         * config/h8300/h8300.md: Don't enforce register alignment in
23746         stm peepholes if TARGET_H8300SX.
23747         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
23748         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
23749         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
23750         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23751         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
23752         (MULTILIB_DIRNAMES): Add a directory for it.
23753         (MULTILIB_MATCHES): Delete.
23754         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23755         * final.c (walk_alter_subreg): Handle addresses with subregs
23756         inside a ZERO_EXTEND or AND.
23757         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
23758         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
23759         if TARGET_H8300SX.
23760         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
23761         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
23762         @(dd,Rn.w) and @(dd,ERn.L).
23763         (h8300_displacement_size): Take the whole address as argument.
23764         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
23765         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23766         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
23767         (h8sx_mergeable_memrefs_p): Declare.
23768         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
23769         (HAVE_PRE_INCREMENT): Likewise.
23770         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
23771         addresses for TARGET_H8300SX,
23772         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
23773         and POST_DEC.
23774         (movb_length_table, movl_length_table): New tables.
23775         (movw_length_table): Define to movb_length_table.
23776         (h8300_displacement_size): New, split out from...
23777         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
23778         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
23779         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
23780         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
23781         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
23782         (compute_plussi_length, compute_plussi_cc): Update accordingly.
23783         (h8sx_unary_shift_operator): Get the mode from the operator.
23784         (binary_shift_operator): Likewise.
23785         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
23786         a memory reference, check whether the reference is offsettable.
23787         (length_table): Add movb, movw and movl.
23788         (movqi): Add new h8sx pattern.  Don't force one operand to be a
23789         register when generating h8sx code.
23790         (movhi, movsi, movsf): Likewise.
23791         (movstrictqi): Use the length_table attribute.
23792         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
23793         (addqi3): Split into a define_expand and define_insn.  Don't accept
23794         memory operands in the expander.  Use h8300_operands_match_p to
23795         check for matching operands in the define_insn.
23796         (subqi3, negqi2, one_cmplqi2): Likewise.
23797         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
23798         in any patterns that are unused in h8sx code.  In the h8sx patterns,
23799         use h8300_operands_match_p to check whether operands match.
23800         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
23801         one_cmpl[hs]i3): Likewise.
23802         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
23803         in the expander.
23804         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
23805         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
23806         (h8300_insn_length_from_table): Add a second parameter.
23807         (output_h8sx_shift): Declare.
23808         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
23809         (EXTRA_CONSTRAINT): Replace with...
23810         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
23811         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
23812         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
23813         and h8sx_binary_shift_operator.
23814         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
23815         for TARGET_H8300SX.
23816         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
23817         (bit_memory_operand, fix_bit_operand): Likewise.
23818         (h8300_length_table_for_insn): Remove.
23819         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
23820         instructions.
23821         (h8300_short_immediate_length, h8300_binary_length): New functions.
23822         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
23823         (output_plussi): Use sub to add negative constants.
23824         (compute_plussi_length): Adjust accordingly.
23825         (h8sx_single_shift_type): New enum.
23826         (h8sx_single_shift, h8sx_unary_shift_operator,
23827         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
23828         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
23829         single h8sx instruction.  Return false in this case.
23830         * config/h8300/h8300.md (length_table): Add short_immediate.
23831         (length): Pass the operand array to h8300_insn_length_from_table.
23832         (adjust_length): Assume "no" for insns with a length_table attribute.
23833         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
23834         (*addhi3_h8300hs): Don't use for h8sx.
23835         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
23836         and sub.w #xx:3.
23837         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
23838         1's predicate to nonimmediate_operand.  Only skip default expansion
23839         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
23840         for single h8sx shift instructions.
23841         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
23842         * config/h8300/h8300.c (nibble_operand): Split out of...
23843         (reg_or_nibble_operand): ... this.
23844         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
23845         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
23846         umulhisi3): Introduce expand, and introduce separate insns for
23847         sign- or zero-extended REG and already-extended CONST_INT.
23848         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
23849         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
23850         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
23851         (subhi3): Likewise.  Don't accept immediates for operand 1.
23852         Remove the early clobber from second alternative of the h8300s pattern.
23853         (subsi3): Generalize for h8sx.  Force operand 2 into a register
23854         on plain h8300 targets.
23855         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
23856         (subsi3_h8300h): Generalize for h8sx.
23857         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
23858         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
23859         * config/h8300/h8300.c (reg_or_nibble_operand): New.
23860         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23861         (TARGET_H8300SXMUL): New.
23862         (CONST_OK_FOR_P): New.
23863         (CONST_OK_FOR_LETTER_P): Adjust.
23864         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
23865         umulhisi3): Accept 4-bit immediate on H8SX.
23866         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
23867         (udivsi3, divhi3, udivsi3, divsi3): New.
23868         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
23869         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
23870         * config/h8300/h8300.h (OK_FOR_Q): New macro.
23871         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
23872         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
23873         Add ADDRESSOF to the bit_operand entry.
23874         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
23875         (h8300_src_operand): Likewise.
23876         (bit_operand): Check nonimmediate_operand rather than general_operand.
23877         Accept any nonimmediate_operand in h8sx code.
23878         (h8300_and_costs): Initialize operands[1].
23879         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
23880         (h8300_operand_class): New enum.
23881         (h8300_length_table): New typedef.
23882         (addb_length_table, addw_length_table, addl_length_table,
23883         logicl_length_table): New tables.
23884         (logicb_length_table, logicw_length_table): New macros.
23885         (h8300_classify_operand, h8300_length_from_table,
23886         h8300_length_table_for_insn, h8300_unary_length,
23887         h8300_insn_length_from_table): New functions.
23888         (output_plussi): Only use adds and subs for register destinations.
23889         Disable redundant clause.
23890         (compute_plussi_cc): Likewise.
23891         (compute_plussi_length): Likewise.  Use h8300_length_from_table
23892         to work out the length of an insn.
23893         (output_logical_op): Only use narrower immediate instructions
23894         if the destination is a register.
23895         (compute_logical_op_cc): Likewise.
23896         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
23897         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
23898         * config/h8300/h8300.md (length_table): New attribute.
23899         (length): When an instruction has a length_table attribute, use
23900         h8300_insn_length_from_table to calculate its default length.
23901         (cmpqi): Use h8300_dst_operand for the first operand and
23902         h8300_src_operand for the second.
23903         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
23904         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
23905         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
23906         iorsi3, xorhi3, xorsi3): Likewise.
23907         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
23908         so that it allows any combination of operands for TARGET_H8300SX.
23909         (iorqi3, xorqi3): Likewise.
23910         (cmpqi): Use the length_table attribute.
23911         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
23912         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23913         (cmpqi): Add 'Q' constraint.
23914         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
23915         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23916         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
23917         * config/h8300/h8300.h (MASK_H8300SX): New macro.
23918         (TARGET_H8300S): True for both -ms and -msx.
23919         (TARGET_H8300SX): New macro.
23920         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
23921         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
23922         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
23923         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
23924         [Temporary change.]
23925         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
23926         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
23927         16-bit pointers and 32-bit ints.
23928         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
23929         CONST_DOUBLE with mode no wider than SImode.
23930         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
23931         output operand.
23932         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
23933         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
23934         or SUBREG thereof.
23935         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23936         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
23937         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
23938
23939 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
23940
23941         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
23942
23943 2004-07-07  Per Bothner  <per@bothner.com>
23944
23945         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
23946
23947 2004-07-07  Mike Stump  <mrs@apple.com>
23948
23949         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
23950         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
23951         (machopic_finish): Likewise.
23952
23953 2004-07-07  Richard Henderson  <rth@redhat.com>
23954
23955         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
23956         through any value-preserving cast.
23957
23958 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23959
23960         * function.c (assign_parm_find_data_types): Call
23961         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
23962
23963 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23964
23965         * tree-cfg.c (group_case_labels): Remove case labels that have
23966         the same target as the default case.
23967
23968 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23969
23970         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
23971         regardless of DECL_LANG_SPECIFIC being present or not.
23972         * tree.h (DECL_NUM_STMTS): Purge.
23973
23974 2004-07-07  Andrew Pinski  <apinski@apple.com>
23975
23976         * configure: Regenerate with the right autoconf.
23977
23978 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
23979
23980         * ifcvt.c (total_bb_rtx_cost): New function.
23981         (find_if_case_1): Compare rtx_cost of basic block to cost of
23982         BRANCH_COST insns.
23983         (find_if_case_2): Same.
23984
23985 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
23986
23987         PR target/10567
23988         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
23989         (output_return): Likewise.
23990         (output_sibcall): Abort if !flag_delayed_branch.
23991         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
23992         (emit_and_preserve): New function.
23993         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
23994         indirect jump to the thunked-to function if !flag_delayed_branch.
23995         * config/sparc/sparc.md (delayed_branch): New attribute.
23996         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
23997         attribute to compute the length of the insn.
23998         (goto_handler_and_restore): Likewise.
23999
24000 2004-07-07  Andrew Pinski  <apinski@apple.com>
24001
24002         PR tree-optimization/15777
24003         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
24004
24005         * expr.c (expand_expr_real_1): Fix formating.
24006         BUFFER_REF and IN_EXPR are dead.
24007         * fold-const.c (non_lvalue): BUFFER_REF is dead.
24008         * tree-inline.c (estimate_num_insns_1): Likewise.
24009         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
24010         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
24011         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
24012
24013 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
24014
24015         * collect2.c (dump_file): Don't call cplus_demangle if
24016         HAVE_LD_DEMANGLE is defined.
24017         (main): Pass "--demangle" to ld if no_demangle is not 0 and
24018         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
24019         if HAVE_LD_DEMANGLE is defined.
24020
24021         * configure.ac (--with-demangler-in-ld): Added
24022         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
24023         --with-demangler-in-ld is used.
24024         * config.in: Regenerated.
24025         * configure: Likewise.
24026
24027 2004-07-07  Roger Sayle  <roger@eyesopen.com>
24028
24029         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
24030         for simple floating point operations "fp", double precision
24031         multiplication "dmul", and single and double precision division
24032         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
24033         (ppc630_cost): New table split from ppc620_cost, to distinguish
24034         differences in floating point latencies.
24035         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
24036         (rs6000_rtx_costs): Add support for single and double precision
24037         floating point addition, subtraction, multiplication, division,
24038         fused-multiply-add, fused-multiply-sub, negation, absolute value
24039         and negative absolute value.  Tweak MEM case to use prefered idiom.
24040
24041 2004-07-07  Richard Henderson  <rth@redhat.com>
24042
24043         * tree-flow-inline.h (may_propagate_copy): Move...
24044         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
24045         attempt to copy between types requiring conversion.
24046         * tree-flow.h (may_propagate_copy): Update decl.
24047         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
24048
24049 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
24050
24051         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
24052         from -mtune= option.
24053
24054 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
24055
24056         * builtins.c: Rename movstr*, except for movstrict*, to
24057         movmem* and clrstr* to clrmem*.
24058         * expr.c: Likewise.
24059         * expr.h: Likewise.
24060         * genopinit.c: Likewise.
24061         * integrate.c: Likewise.
24062         * local-alloc.c: Likewise.
24063         * optabs.c: Likewise.
24064         * optabs.h: Likewise.
24065         * config/alpha/alpha.h: Likewise.
24066         * config/alpha/alpha.md: Likewise.
24067         * config/arm/arm-protos.h: Likewise.
24068         * config/arm/arm.c: Likewise.
24069         * config/arm/arm.md: Likewise.
24070         * config/avr/avr.md: Likewise.
24071         * config/c4x/c4x.c: Likewise.
24072         * config/c4x/c4x.md: Likewise.
24073         * config/frv/frv.md: Likewise.
24074         * config/i386/i386-protos.h: Likewise.
24075         * config/i386/i386.c: Likewise.
24076         * config/i386/i386.h: Likewise.
24077         * config/i386/i386.md: Likewise.
24078         * config/i860/i860.c: Likewise.
24079         * config/i860/i860.md: Likewise.
24080         * config/ip2k/ip2k.md: Likewise.
24081         * config/ip2k/libgcc.S: Likewise.
24082         * config/ip2k/t-ip2k: Likewise.
24083         * config/m32r/m32r.c: Likewise.
24084         * config/m32r/m32r.md: Likewise.
24085         * config/mcore/mcore.md: Likewise.
24086         * config/mips/mips.c: Likewise.
24087         * config/mips/mips.md: Likewise.
24088         * config/ns32k/ns32k.c: Likewise.
24089         * config/ns32k/ns32k.h: Likewise.
24090         * config/ns32k/ns32k.md: Likewise.
24091         * config/pa/pa.c: Likewise.
24092         * config/pa/pa.md: Likewise.
24093         * config/pdp11/pdp11.h: Likewise.
24094         * config/pdp11/pdp11.md: Likewise.
24095         * config/rs6000/rs6000.c: Likewise.
24096         * config/rs6000/rs6000.md: Likewise.
24097         * config/s390/s390-protos.h: Likewise.
24098         * config/s390/s390.c: Likewise.
24099         * config/s390/s390.md: Likewise.
24100         * config/sh/lib1funcs.asm: Likewise.
24101         * config/sh/sh.c: Likewise.
24102         * config/sh/sh.md: Likewise.
24103         * config/sh/t-sh: Likewise.
24104         * config/sparc/sparc.h: Likewise.
24105         * config/vax/vax.md: Likewise.
24106         * config/xtensa/xtensa.c: Likewise.
24107         * config/xtensa/xtensa.md: Likewise.
24108         * doc/invoke.texi: Likewise.
24109         * doc/md.texi: Likewise.
24110         * doc/rtl.texi: Likewise.
24111
24112 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
24113
24114         PR target/16407
24115         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
24116         * config/mips/mips.c (mips_declare_common_object): New function,
24117         mostly split out from...
24118         (mips_output_aligned_decl_common): ...here.
24119         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
24120         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
24121         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
24122         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
24123
24124 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24125
24126         PR c/16392
24127         * function.c (assign_parms): Fix typo from previous change.
24128
24129 2004-07-07  Jason Merrill  <jason@redhat.com>
24130
24131         PR c++/15815
24132         * doc/extend.texi (C++ Interface): Correct information and
24133         discourage use.
24134
24135 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
24136
24137         PR target/16130
24138         PR target/16142
24139         PR target/16143
24140         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
24141         insn.
24142
24143 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
24144
24145         PR target/1679.
24146         * config/m32r/m32r.c (m32r_function_symbol): New function:
24147         Generate a symbol name RTX with the correct m32r specific flags
24148         set.
24149         (block_move_call): Use new function to generate correct symbol.
24150         * config/m32r/m32r-protos.h: Add prototype for new funcion.
24151         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
24152         function.
24153
24154 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
24155
24156         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
24157         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
24158         TYPE_BINFO_BASETYPE): Remove.
24159         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
24160         to ...
24161         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
24162         here.
24163         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
24164         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
24165         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
24166         (struct tree_binfo): Rename base_types to base_binfos.
24167         * alias.c (record_component_aliases): Adjust BINFO macros.
24168         * dbxout.c (dbxout_type): Likewise.
24169         * dwarf2out.c (gen_member_die): Likewise.
24170         * sdbout.c (sdbout_one_type): Likewise.
24171         * tree-dump.c (deque_and_dump): Likewise.
24172         * config/i386/i386.c (classify_argument,
24173         contains_128bit_aligned_vector_p): Likewise.
24174
24175 2004-07-07  Nick Clifton  <nickc@redhat.com>
24176
24177         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
24178         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
24179
24180 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
24181
24182         * vec.h: Fix the example use.
24183
24184 2004-07-06  Richard Henderson  <rth@redhat.com>
24185
24186         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
24187         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
24188         * tree-inline.c (copy_body_r, setup_one_parameter,
24189         initialize_inlined_parameters, expand_call_inline,
24190         declare_inline_vars): Don't check it.
24191         (expand_calls_inline): Remove old version, rename new version
24192         from gimple_expand_calls_inline.
24193         * tree-optimize.c (execute_gimple): Remove.
24194         (pass_gimple): Don't run anything.
24195
24196 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
24197
24198         * doc/sourcebuild.texi: Use semicolons instead of commas in
24199         section title.
24200
24201 2004-07-06  Richard Henderson  <rth@redhat.com>
24202
24203         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
24204         (sra_walk_modify_expr, scan_init): Likewise.
24205         (generate_element_zero): Check visited before scanning children.
24206         (generate_element_init): Set visited on error.
24207         (scalarize_init): Handle generate_element_init failure similar
24208         to use_block_copy.
24209
24210 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
24211
24212         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
24213         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
24214
24215 2004-07-06  Richard Henderson  <rth@redhat.com>
24216
24217         * config/i386/i386.c (legitimize_pic_address): Make static.
24218         (legitimize_address): Handle CONST with TLS operand.
24219         (ix86_expand_move): Don't call legitimize_pic_address directly.
24220         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
24221
24222 2004-07-06  Roger Sayle  <roger@eyesopen.com>
24223
24224         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
24225         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
24226         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
24227         is currently executed unconditionally, i.e. not in "else_bb".
24228
24229 2004-07-06  Steven Bosscher  <stevenb@suse.de>
24230
24231         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
24232         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24233         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
24234         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24235         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
24236         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24237         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
24238         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24239         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
24240         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24241         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
24242         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24243         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
24244         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24245         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
24246         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24247
24248 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
24249
24250         * dojump.c (do_jump): REFERENCE_EXPR is dead.
24251         * expr.c (expand_expr_real_1): Ditto.
24252         * tree-inline.c (estimate_num_insns_1): Ditto.
24253         * tree-pretty-print.c (dump_generic_node): Ditto.
24254         (op_symbol): Ditto.
24255         * tree.def: Ditto.
24256
24257 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
24258
24259         * tree-ssa-pre.c (reference_node_pool): New pool.
24260         (find_or_generate_expression): Class 'r' is okay too.
24261         (create_value_expr_from): Ditto.
24262         (add_to_sets): LHS should not include vuses.
24263         (eliminate): Ditto.
24264         (compute_avail): Reverse ordering of tests.
24265         Valuize INDIRECT_REF as well.
24266
24267 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
24268
24269         PR rtl-optimization/16380
24270         * loop.c (check_dbra_loop): Sink comparison instructions if they
24271         do something other than set cc0.
24272
24273 2004-07-06  James E Wilson  <wilson@specifixinc.com>
24274
24275         * doc/interface.texi (longjmp and automatic variables): Delete
24276         paragraph recommending taking the address of a variable.
24277
24278 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
24279
24280         * vec.h (VEC_embedded_alloc): Remove.
24281         (VEC_embedded_size, VEC_embedded_init): New.
24282         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
24283         MEM_STAT_INFO.
24284         (VEC_truncate): New.
24285         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
24286         (vec_embedded_alloc): Remove.
24287         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
24288         (vec_embedded_alloc): Remove.
24289
24290 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
24291
24292         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
24293         (gt-langhooks.h): Remove.
24294
24295 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
24296
24297         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
24298
24299 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
24300
24301         * config/sparc/sparc.c (get_pc_symbol): Rename into
24302         add_pc_to_pic_symbol.
24303         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
24304         (load_pic_register): Account for previous changes.
24305         Use reg_names.  Don't create the label twice.
24306         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
24307         UNSPEC_LOAD_PCREL_SYM.
24308         (get_pc): Rename into load_pcrel_sym.  Add predicate to
24309         operands.  Remove condition.
24310
24311 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
24312
24313         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
24314         RECORD, UNION & QUAL_UNION is actually a binfo.
24315
24316         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
24317         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
24318         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
24319         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
24320         * dwarf2out.c (add_data_member_location_attribute): Likewise.
24321         (gen_inheritance_die): Likewise.
24322         * tree-dump.c (deque_and_dump): Likewise.
24323         * doc/c-tree.texi (Binfos): Add under reconstruction note.
24324
24325 2004-07-06  Steven Bosscher  <stevenb@suse.de>
24326
24327         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
24328         Define.
24329         * config/mcore/mcore.md: Model memory latency with a simple DFA
24330         pipeline description instead of a define_function_unit.
24331
24332 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24333
24334         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
24335         * langhooks.h (var_mod_type_p): Likewise.
24336         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
24337         * expr.c (count_type_elements): Properly handle return from
24338         array_type_nelts and properly test for overflow.
24339         * gimplify.c (gimplify_init_constructor): Properly handle return
24340         from array_type_nelts.
24341         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
24342         * integrate.c (copy_decl_for_inlining): Correct comments.
24343         * tree-inline.c (remap_decl): Update comments, remove dead code,
24344         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
24345         (remap_type): Only remap if variably modified by vars in function
24346         being inlined.
24347         (copy_body_r): Use compatible_type langhooks to see when can fold.
24348         (setup_one_parameter): Don't remap type.
24349         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
24350         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
24351         compute TREE_INVARIANT for decl case.
24352         (find_var_from_fn): New function.
24353         (variably_modified_type_p): Add arg and call new function.
24354         * tree.h (variably_modified_type_p): Add extra arg.
24355
24356 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
24357
24358         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
24359         (goto_handler_and_restore_v9): Delete disabled insn.
24360         (goto_handler_and_restore_v9_sp64): Likewise.
24361
24362 2004-07-05  Roger Sayle  <roger@eyesopen.com>
24363
24364         * calls.c (load_register_parameters): Call expand_shift instead
24365         of expand_binop with ashl_optab (or other shift optab) directly.
24366         * expr.c (emit_group_load, emit_group_store): Likewise.
24367         * function.c (assign_parm_setup_block): Likewise.
24368         * stmt.c (shift_return_value): Likewise.
24369
24370 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
24371
24372         * expr.c (expand_assignment): Disable the bitfield += optimizations.
24373
24374 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24375
24376         * doc/sourcebuild.texi: Revert previous patch.
24377
24378 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24379
24380         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
24381         TARGET_MEM_FUNCTIONS.
24382         * system.h: Poison TARGET_MEM_FUNCTIONS.
24383         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
24384         bcmp_libfunc, bzero_libfunc): Remove.
24385         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
24386         bzero_libfunc.
24387         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
24388         * doc/standards.texi: Don't mention calling BSD string functions.
24389         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
24390         * config/vax/t-memfuncs: New.
24391         * config/memcmp.c, config/memcpy.c, config/memmove.c,
24392         config/memset.c: New.
24393         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
24394         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
24395         vax/t-memfuncs.
24396         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
24397         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
24398         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
24399         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
24400         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
24401         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
24402         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
24403         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
24404         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
24405         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
24406
24407 2004-07-05  Richard Henderson  <rth@redhat.com>
24408
24409         * function.c (assign_parm_setup_reg): Properly rename variables in
24410         FUNCTION_ARG_CALLEE_COPIES section.
24411
24412 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
24413
24414         * tree-mudflap.c: Include cgraph.h.
24415         (mf_init_extern_trees): Rename to mudflap_init.  Export.
24416         Rewrite to create synthetic declarations instead of looking
24417         up declarations from mf-runtime.h.
24418         (mf_make_builtin, mf_make_cache_struct_type): New functions.
24419         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
24420         Correct commentary.
24421         (execute_mudflap_function_decls, mudflap_register_call):
24422         Don't call mf_init_extern_trees.
24423         (mudflap_finish_file): Use cgraph_build_static_cdtor.
24424
24425         * tree-mudflap.h: Update prototypes.
24426         * c-mudflap.c: Delete file.
24427         * c-common.c: Include tree-mudflap.h.
24428         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
24429         * Makefile.in: Remove all references to c-mudflap.o.
24430         Update dependencies.
24431
24432 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24433
24434         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
24435         displacements with the spatial-locality cache-control completer.
24436
24437 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
24438
24439         * langhooks.c: Don't include gt-langhooks.h.
24440         (var_labelno): Delete.
24441         (lhd_set_decl_assembler_name): Do not append a distinguishing
24442         number to file-scope internal-linkage declarations for the first
24443         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
24444         the declaration itself (if at block scope), or its containing
24445         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
24446         number.
24447
24448         * opts.c (cur_in_fname): New global.
24449         * opts.h: Declare it.
24450         * tree.c: Include opts.h.
24451         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
24452         DECL_UID equal to cur_in_fname.
24453         (copy_node_stat): Do not change DECL_UID when copying a
24454         TRANSLATION_UNIT_DECL.
24455         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
24456         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
24457
24458         * c-decl.c (c_static_assembler_name): Delete.
24459         * c-tree.h (c_static_assembler_name): Delete prototype.
24460         * c-lang.c, objc/objc-lang.c: Don't override
24461         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
24462
24463         * Makefile.in (tree.o): Update dependencies.
24464         (GTFILES): Remove langhooks.c.
24465
24466 2004-07-05  Roger Sayle  <roger@eyesopen.com>
24467
24468         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
24469         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
24470         Normalize "X % C" as "X % -C" for signed modulus and negative C.
24471         Optimize "X % -Y" as "X % Y" for signed modulus.
24472         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
24473         into "((unsigned) X % Y) == 0".
24474
24475 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24476
24477         * sourcebuild.texi (Config Fragments): Use @comma{} in
24478         cross-reference to section title.
24479
24480 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24481
24482         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
24483         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
24484         (gimplify_target_expr, gimplify_expr): Likewise.
24485         (copy_if_shared_r): No longer need special case for BIND_EXPR.
24486         (unshare_body, unvisit_body): Only look at nested if BODY_P is
24487         whole function.
24488         (gimplify_compound_lval): See if we can strip any useless conversion.
24489         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
24490         from RHS, not LHS.
24491         (gimplify_modify_expr_to_memset): Likewise.
24492         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
24493         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
24494         (declare_inline_vars): Likewise.
24495         (walk_type_fields): New function.
24496         (walk_tree): Use it.
24497         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
24498
24499         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
24500         (sra_walk_modify_expr): Allow init function to fail.
24501         (scan_init): Now returns bool.
24502         (generate_element_init): If can't understand INIT, return false.
24503         (scalarize_init): Return false if generate_element_init does.
24504
24505         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
24506         print bounds.
24507
24508         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
24509         bounds if bounds aren't constant.
24510
24511         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
24512
24513         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
24514         to type hooks; remove bogus PARAMS.
24515
24516 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
24517
24518         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
24519         * dwarf2out.c (add_data_member_location_attribute): Check for
24520         TREE_BINFO.
24521         * tree.c (tree_node_kinds): Add "binfos".
24522         (binfo_lang_slots): New.
24523         (make_node_stat): Add TREE_BINFO.
24524         (make_tree_binfo_stat): New.
24525         (tree_node_structure): Add TREE_BINFO.
24526         * tree.def (TREE_BINFO): New.
24527         * tree.h (REC_OR_UNION_CHECK): Rename to ...
24528         (RECORD_OR_UNION_CHECK): ... here.
24529         (NOT_RECORD_OR_UNION_CHECK): New.
24530         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
24531         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
24532         RECORD_OR_UNION_CHECK.
24533         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
24534         (TYPE_LANG_SLOT_1): New.
24535         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
24536         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
24537         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
24538         (BINFO_ELTS): Remove.
24539         (BINFO_LANG_SLOT): New.
24540         (struct tree_binfo): New.
24541         (binfo_lang_slots): Declare.
24542         (enum tree_node_structure_enum): Add TS_BINFO.
24543         (union tree_node): Add binfo.
24544         (make_tree_binfo_stat): Declare.
24545         (make_tree_binfo): New.
24546         (enum tree_node_kind): Add binfo_kind.
24547
24548         * objc/objc-act.c (start_class, objc_declare_protocols,
24549         start_protocols): Use TYPE_LANG_SLOT_1.
24550         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
24551         to ...
24552         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
24553         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
24554         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
24555         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
24556
24557 2004-07-05  Steven Bosscher  <stevenb@suse.de>
24558
24559         * rtl.h (struct rtx_def): Remove the integrated flag.
24560         Use the return_val flag for MEM_SCALAR_P.
24561         Reshuffle and update flags in CLEAR_RTX_FLAGS.
24562
24563 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
24564
24565         PR target/16357
24566         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
24567         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
24568         move_by_pieces.
24569
24570 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
24571
24572         * var-tracking.c: Fix some comments.
24573         (frame_stack_adjust): New.
24574         (vt_stack_adjustments): Init stack_adjust of entry block to
24575         minus stack adjustment of function prologue.
24576         (adjust_stack_reference): Do not adjust if adjustment == 0.
24577         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
24578         (emit_notes_in_bb): Likewise.
24579         (vt_add_function_parameters): Do not adjust locations of
24580         function arguments.
24581         (vt_initialize): Compute the stack adjustment of function
24582         prologue and offset the initial "location" of frame_base_decl
24583         from the stack pointer after prologue.
24584
24585 2004-07-04  Richard Henderson  <rth@redhat.com>
24586
24587         * function.c (struct assign_parm_data_all): New.
24588         (struct assign_parm_data_one): New.
24589         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
24590         assign_parm_find_data_types, assign_parms_setup_varargs,
24591         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
24592         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
24593         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
24594         assign_parm_setup_block, assign_parm_setup_reg,
24595         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
24596         (assign_parms): ... here.
24597
24598 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
24599
24600         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
24601         now are bitmap_set_t's.
24602         (bitmap_insert_into_set): No point in inserting the value if
24603         it's invariant.
24604         (bitmap_set_contains): New function.
24605         (bitmap_set_replace_value): Add comment on why we do it
24606         this way.
24607         (set_contains): Removed.
24608         (bitmap_set_subtract_from_value_set): New name of
24609         set_subtract now that it's arguments are two different
24610         types of sets.
24611         Update callers.
24612         (bitmap_find_leader): Change algorithm used.
24613         (find_or_generate_expression): Update use of functions for new
24614         bitmap sets.
24615         (create_expression_by_pieces): Ditto.
24616         (insert_aux): Ditto.
24617         (insert): Ditto.
24618         (add_to_sets): Ditto.
24619         (init_pre): Ditto.
24620         (execute_pre): Ditto.
24621         (compute_avail): Ditto.
24622         Also ignore virtual phis.
24623
24624 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24625
24626         * combine.c (simplify_comparison): Fix comment typo.
24627
24628 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
24629
24630         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
24631         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
24632         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
24633         (output_restore): Change parameter from 'insn' to 'pat'.
24634         (output_return): Adjust call to output_restore.
24635         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
24636         Adjust call to output_restore.
24637
24638 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24639
24640         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
24641         and assert system is bsd.
24642
24643 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24644
24645         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
24646         (TARGET_SWITCHES): Remove -mdebugc.
24647         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
24648         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
24649         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
24650         (sle_[sd]i_reg): Delete.
24651
24652 2004-07-04  Steven Bosscher  <stevenb@suse.de>
24653
24654         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
24655         Define.
24656         * config/iq2000/iq2000.md: Translate old pipeline description to an
24657         equivalent new one.
24658
24659 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24660
24661         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
24662         Ensure the replacement rhs is valid gimple before performing
24663         the substitution.  Return false if these sanity checks fail.
24664         (fold_stmt): Only set changed to true, if set_rhs returns true.
24665         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
24666         succeeds.
24667
24668 2004-07-04  Richard Henderson  <rth@redhat.com>
24669
24670         PR c/16348
24671         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
24672
24673 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
24674
24675         * configure.ac (ranlib_flags): New variable.
24676         * Makefile.in (RANLIB_FLAGS): New variable.
24677         (libbackend.a): Use it.
24678         * configure: Regenerated.
24679
24680 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24681
24682         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
24683         a "sign mask" instead of using ashr_optab directly.
24684
24685 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24686
24687         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
24688         * doc/cppopts.texi: Clarify processing of command-line defines.
24689
24690 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
24691
24692         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
24693
24694 2004-07-04  Richard Henderson  <rth@redhat.com>
24695
24696         * rtl.def (ADDRESSOF): Remove.
24697         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
24698         (find_base_term, memrefs_conflict_p): Likewise.
24699         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
24700         (fold_rtx, cse_insn, set_live_p): Likewise.
24701         * dwarf2out.c (mem_loc_descriptor): Likewise.
24702         (add_location_or_const_value_attribute): Likewise.
24703         * emit-rtl.c (copy_insn_1): Likewise.
24704         * explow.c (memory_address): Likewise.
24705         * expmed.c (store_split_bit_field): Likewise.
24706         * expr.c (expand_expr_real_1): Likewise.
24707         * function.c (instantiate_decl
24708         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
24709         * genrecog.c (preds, validate_pattern): Likewise.
24710         * integrate.c (copy_rtx_and_substitute): Likewise.
24711         * recog.c (general_operand, register_operand): Likewise.
24712         (memory_address_p): Likwise.
24713         * reload1.c (eliminate_regs, elimination_effects): Likewise.
24714         * rtl.c (copy_rtx): Likewise.
24715         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
24716         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
24717         * rtlhooks.c (gen_lowpart_general): Likewise.
24718         * stmt.c (expand_asm_operands): Likewise.
24719         * web.c (entry_register, replace_ref, web_main): Likewise.
24720         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
24721         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
24722         * config/arm/arm.c (thumb_rtx_costs): Likewise.
24723         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
24724         * config/frv/frv.c (move_destination_operand, move_source_operand,
24725         condexec_dest_operand, condexec_source_operand,
24726         condexec_memory_operand): Likewise.
24727         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
24728         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
24729         (destination_xfmode_operand): Likewise.
24730         * config/mips/mips.h (PREDICATE_CODES): Likewise.
24731         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
24732         * config/s390/s390.c (general_s_operand): Likewise.
24733         * config/s390/s390.md (mov*): Likewise.
24734         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
24735
24736         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
24737         * expr.c (expand_expr_real_1): Likewise.
24738         * stmt.c (expand_decl): Likewise.
24739         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
24740
24741         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
24742         postponed_insns, put_var_into_stack, put_reg_into_stack,
24743         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
24744         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
24745         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
24746         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
24747         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
24748         purge_bitfield_addressof_replacements, purge_addressof_replacements,
24749         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
24750         struct insns_for_mem_walk_info, insns_for_mem_walk,
24751         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
24752         setjmp_protect_args): Remove.
24753         (push_function_context_to): Don't handle var_refs_queue.
24754         (pop_function_context_from, free_after_compilation): Likewise.
24755         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
24756         (assign_parms, allocate_struct_function): Likewise.
24757         (use_register_for_decl): New.
24758         (expand_function_end): Don't setjmp_protect.
24759         * function.h (struct emit_status): Update commentary.
24760         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
24761         (max_parm_reg, parm_reg_stack_loc): Remove.
24762         * passes.c (DFI_addressof): Remove.
24763         (dump_file_info): Remove addressof.
24764         (rest_of_handle_addressof): Remove.
24765         (rest_of_compilation): Don't call it.
24766         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
24767         * stmt.c (expand_decl): Use use_register_for_decl.
24768         * tree.h: Update decls.
24769         * web.c (mark_addressof): Remove.
24770         * doc/invoke.texi (-dF): Remove.
24771
24772 2004-07-03  Richard Henderson  <rth@redhat.com>
24773
24774         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
24775         instead of gen_mem_addressof.
24776         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
24777         TImode output register.
24778
24779 2004-07-03  Richard Henderson  <rth@redhat.com>
24780
24781         PR tree-optimization/16341
24782         * tree-sra.c (sra_walk_function): Increment to next stmt before
24783         processing the current stmt.
24784         (sra_insert_after): Always use BSI_SAME_STMT.
24785
24786 2004-07-03  Richard Henderson  <rth@redhat.com>
24787
24788         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
24789         fp plus with minus.
24790
24791 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24792
24793         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
24794         with tree_int_cst_equal.
24795
24796 2004-07-03  Andreas Schwab  <schwab@suse.de>
24797
24798         * config/ia64/ia64.md: Define new attribute "empty".
24799         (prologue_use, nop_x, insn_group_barrier): Set it.
24800
24801         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
24802         skip over "empty" insns.
24803
24804 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24805
24806         * tree-inline.c (initialize_inlined_parameters): Pass proper function
24807         context to gimplify_body.
24808         (walk_tree): Don't walk into types twice.
24809         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
24810
24811         * tree-sra.c (generate_element_init): Remove any useless conversions.
24812
24813         * gimplify.c (gimplify_conversion): Remove stripping useless
24814         conversions from here.
24815         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
24816         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
24817         Unshare before substituting PLACEHOLDER_EXPR.
24818         (gimplify_modify_expr_to_memset): Likewise.
24819         Pass address of TO to memset, not TO itself.
24820         (gimplify_init_constructor): Make copy of OBJECT so we have it each
24821         time we make an expression (to match a PLACEHOLDER_EXPR).
24822
24823         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
24824         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
24825         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
24826         * tree-ssa-dom.c (local_fold): Likewise.
24827
24828         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
24829         * langhooks.h (strct lang_hooks): New field type_max_size.
24830         * function.c (assign_temp): Call it.
24831
24832 2004-07-03  Steven Bosscher  <stevenb@suse.de>
24833
24834         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
24835         * config/sh/sh.md: Convert the SH1 pipeline description to
24836         a DFA model.
24837
24838 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
24839
24840         * c-decl.c (struct c_binding): Remove contour field; add
24841         depth, invisible, nested fields.
24842         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
24843         (B_IN_EXTERNAL_SCOPE): New convenience macros.
24844         (bind): Add invisible and nested arguments. Initialize
24845         new fields of struct c_binding; adjust loop scanning for
24846         insertion point.
24847         (free_binding_and_advance): Clear structure with memset.
24848         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
24849         in file scope, even if it's in external scope too.
24850         (pushdecl): Adjust to match.  Create invisible file-scope
24851         declarations for block-scope forward declarations of static functions.
24852         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
24853         (undeclared_variable, lookup_label, declare_label, define_label)
24854         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
24855         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
24856         (store_parm_decls_oldstyle): Adjust to match.
24857         (diagnose_mismatched_decls): Correct handling of linkage clashes.
24858         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
24859
24860         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
24861         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
24862
24863 2004-07-02  Richard Henderson  <rth@redhat.com>
24864
24865         * c-decl.c (grokdeclarator): Don't frob current_function_decl
24866         around variable_size.
24867         (set_decl_nonlocal): Remove.
24868         (store_parm_decls): Add stmts for pending sizes.
24869         * calls.c (calls_function, calls_function_1): Remove.
24870         (precompute_arguments): Don't call it.
24871         * cfgexpand.c (set_save_expr_context): Remove.
24872         (tree_expand_cfg): Don't call it.
24873         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
24874         (dwarf2out_finish): Likewise.
24875         * expr.c (emit_block_move): Adjust addresses to BLKmode.
24876         (store_constructor): Don't pre-evaluate SAVE_EXPR.
24877         (safe_from_p): Don't queue SAVE_EXPRs.
24878         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
24879         or build plain VAR_DECLs.
24880         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
24881         (fold): Likewise.
24882         (fold_checksum_tree): Don't special-case SAVE_EXPR.
24883         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
24884         (put_var_into_stack): Don't handle SAVE_EXPR.
24885         (gen_mem_addressof): Likewise.
24886         * function.h (struct function): Remove x_save_expr_regs.
24887         (save_expr_regs): Remove.
24888         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
24889         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
24890         * stor-layout.c (variable_size): Don't set it.
24891         (force_type_save_exprs, force_type_save_exprs_1): Remove.
24892         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
24893         all callers.  Don't set SAVE_EXPR_CONTEXT.
24894         * tree-inline.h (remap_save_expr): Update decl.
24895         * tree.c (save_expr): Update build size.
24896         (first_rtl_op): Don't handle SAVE_EXPR.
24897         (unsave_expr_1, contains_placeholder_p): Likewise.
24898         (decl_function_context): Likewise.
24899         * tree.def (SAVE_EXPR): Remove args 1 and 2.
24900         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
24901         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
24902
24903 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24904
24905         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
24906         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
24907         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
24908         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
24909         some first-person references and patronizing comments.  Based on
24910         printed manual.
24911         * doc/invoke.texi: Don't reference fortran@gnu.org.
24912         * doc/trouble.texi (Warning when a non-void function value is
24913         ignored): Rewrite.  From Russ Allbery and Chris Devers.
24914
24915 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
24916
24917         * tree-ssa-pre.c (bitmap_set_t): New.
24918         (bb_value_sets): avail_out is now a bitmap_set_t.
24919         (bitmap_find_leader): New function.
24920         (bitmap_value_insert_into_set): Ditto.
24921         (bitmap_set_copy): Ditto.
24922         (bitmap_value_replace_in_set): Ditto.
24923         (bitmap_set_contains_value): Ditto.
24924         (bitmap_set_new): Ditto.
24925         (bitmap_set_pool): New pool.
24926         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
24927         (insert_aux): Ditto.
24928         (add_to_sets): Ditto.
24929         (compute_avail): Ditto
24930         (eliminate): Ditto.
24931         (init_pre): Ditto.
24932         (fini_pre): Ditto.
24933         (execute_pre): Ditto.
24934
24935 2004-07-02  Roger Sayle  <roger@eyesopen.com>
24936
24937         * config/rs6000/rs6000.c (struct processor_costs): New structure
24938         used to hold instruction latencies/sizes for processor types.
24939         (rs6000_cost): New global variable pointing to current CPU's costs.
24940         (rs6000_override_options): Initialize rs6000_cost to point to the
24941         appropriate cost table based upon rs6000_cpu and optimize_size.
24942         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
24943         timings inline.
24944
24945 2004-07-02  Richard Henderson  <rth@redhat.com>
24946
24947         * expmed.c (make_tree): Don't use SET_DECL_RTL.
24948
24949 2004-07-02  Steven Bosscher  <stevenb@suse.de>
24950
24951         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
24952
24953 2004-07-01  Richard Henderson  <rth@redhat.com>
24954
24955         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
24956         (alpha_gp_save_rtx): Use assign_stack_local instead of
24957         gen_mem_addressof.
24958
24959 2004-07-01  Richard Henderson  <rth@redhat.com>
24960
24961         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
24962         (alpha_rtx_cost_data): Update to match.
24963         (alpha_rtx_cost_size): New.
24964         (alpha_rtx_costs): Honor optimize_size.
24965
24966 2004-07-01  Richard Henderson  <rth@redhat.com>
24967
24968         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
24969         * cfgexpand.c (tree_expand_cfg): Do it here.
24970         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
24971         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
24972         * config/mips/mips.c (mips_output_mi_thunk): And here.
24973         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
24974         * config/sh/sh.c (sh_output_mi_thunk): And here.
24975         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
24976
24977 2004-07-01  Richard Henderson  <rth@redhat.com>
24978
24979         * tree.def (RTL_EXPR): Remove.
24980         * c-typeck.c (lvalue_p): Don't handle it.
24981         * expr.c (safe_from_p): Likewise.
24982         (expand_expr_real_1): Likewise.
24983         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
24984         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
24985         * gengtype.c (adjust_field_tree_exp): Likewise.
24986         * stmt.c (warn_if_unused_value): Likewise.
24987         * tree-gimple.c (recalculate_side_effects): Likewise.
24988         * tree-pretty-print.c (dump_generic_node): Likewise.
24989         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
24990         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
24991         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
24992
24993         * stmt.c (struct stmt_status): Remove x_last_expr_type,
24994         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
24995         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
24996         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
24997         all the bits that tracked last_expr.
24998         (expand_end_bindings): Don't track last_expr.
24999         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
25000         (clear_last_expr): Remove.
25001         (expand_asm): Don't call it.
25002         (expand_asm_operands, expand_end_cond): Likewise.
25003         (expand_naked_return, expand_null_return_1): Likewise.
25004         * c-typeck.c (c_begin_compound_stmt): Likewise.
25005         * cfgexpand.c (expand_block): Use expand_expr_stmt.
25006         * expr.c (expand_expr_real_1): Likewise.
25007         * tree.h: Update prototypes.
25008
25009         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
25010         (struct emit_status): Remove sequence_rtl_expr.
25011         (struct function): Remove x_rtl_expr_chain.
25012         (seq_rtl_expr, rtl_expr_chain): Remove.
25013         * function.c (struct temp_slot): Remove rtl_expr.
25014         (assign_stack_temp_for_type): Don't set it.
25015         (free_temp_slots, pop_temp_slots): Don't check it.
25016         (free_after_compilation): Don't clear x_rtl_expr_chain.
25017         (fixup_var_refs): Don't search it.
25018         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
25019         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
25020         or seq_rtl_expr.
25021         (push_topmost_sequence): Likewise.
25022         (end_sequence, init_emit): Likewise.
25023         (start_sequence_for_rtl_expr): Remove.
25024         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
25025         * rtl.h (preserve_rtl_expr_result): Remove.
25026
25027 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
25028
25029         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
25030         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
25031         typos.
25032
25033 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
25034
25035         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
25036         (STANDARD_STARTFILE_PREFIX_2): Define.
25037         (standard_startfile_prefix_1): Initialize to
25038         STANDARD_STARTFILE_PREFIX_1.
25039         (standard_startfile_prefix_2): Initialize to
25040         STANDARD_STARTFILE_PREFIX_2.
25041         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
25042         (STANDARD_STARTFILE_PREFIX_1): Define.
25043         (STANDARD_STARTFILE_PREFIX_2): Define.
25044         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
25045         (STANDARD_STARTFILE_PREFIX_2): Document.
25046
25047 2004-07-01  Richard Henderson  <rth@redhat.com>
25048
25049         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
25050         in order to disable scalarization.  Instead set a flag and wait
25051         for a candidate decl.
25052
25053 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
25054
25055         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
25056         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
25057         Use terminology "testsuite" and "enumerated".
25058
25059 2004-07-01  Richard Henderson  <rth@redhat.com>
25060
25061         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
25062         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
25063         (initial_return_save): Likewise.
25064         (flush_queued_reg_saves): Remap register numbers.
25065         (dwarf2out_return_reg): Likewise.
25066
25067 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25068
25069         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
25070
25071         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
25072         access functions for lower bound and element size and only output
25073         if lower bound nonzero or element size not same as that of type.
25074         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
25075
25076 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25077
25078         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
25079
25080 2004-07-01  Per Bothner  <per@bothner.com>
25081
25082         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
25083
25084 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
25085
25086         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
25087         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
25088         first operand.  Don't optimize if the bitfield is volatile.
25089
25090 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25091
25092         * c-pretty-print.c (pp_c_postfix_expression): Handle
25093         floating-point comparison operators.
25094         (pp_c_expression): Pass floating-point comparison
25095         operators to pp_c_postfix_expression.
25096
25097 2004-07-01  Roger Sayle  <roger@eyesopen.com>
25098
25099         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
25100         rtx_cost instead of "had_mult" to determine whether the transformed
25101         expression is cheaper than the original.
25102
25103 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
25104
25105         * alias.c (get_alias_set, canon_rtx, get_addr,
25106         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
25107         Use MEM_P.
25108         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
25109         expand_builtin): Likewise.
25110         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
25111         Likewise.
25112         * combine.c (can_combine_p, combinable_i3pat, try_combine,
25113         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
25114         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
25115         record_dead_and_set_regs_1, get_last_value_validate,
25116         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
25117         * cse.c (check_dependence, canon_hash, equiv_constant,
25118         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
25119         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
25120         count_reg_usage): Likewise.
25121         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
25122         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
25123         cselib_record_sets): Likewise.
25124         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
25125         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
25126         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
25127         * df.c (df_uses_record): Likewise.
25128         * dojump (do_jump): Likewise.
25129         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
25130         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
25131         decl_start_label): Likewise.
25132         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
25133         operand_subword, change_address_1, make_safe_from): Likewise.
25134         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
25135         stabilize, force_not_mem): Likewise.
25136         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
25137         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
25138         * expr.c (convert_move, convert_modes, emit_block_move,
25139         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
25140         emit_move_insn_1, expand_assignment, store_expr,
25141         store_constructor_field, store_constructor, store_field,
25142         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
25143         Likewise.
25144         * final.c (cleanup_subreg_operands, alter_subreg,
25145         get_mem_expr_from_op): Likewise.
25146         * flow.c (notice_stack_pointer_modification_1,
25147         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
25148         Likewise.
25149         * function.c (mark_temp_addr_taken, preserve_temp_slots,
25150         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
25151         optimize_bit_field, flush_addressof, purge_addressof_1,
25152         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
25153         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
25154         keep_stack_depressed): Likewise.
25155         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
25156         noce_process_if_block, find_memory): Likewise.
25157         * integrate.c (subst_constants, allocate_initial_values): Likewise.
25158         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
25159         update_equiv_regs): Likewise.
25160         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
25161         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
25162         * optabs.c (expand_abs, emit_unop_insn): Likewise.
25163         * passes.c (rest_of_handle_final): Likewise.
25164         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
25165         move2add_note_store): Likewise.
25166         * ra-build.c (detect_remat_webs): Likewise.
25167         * ra-debug.c (dump_static_insn_cost): Likewise.
25168         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
25169         * recog.c (validate_change, apply_change_group, cancel_changes,
25170         validate_replace_rtx_1, general_operand, register_operand,
25171         nonmemory_operand, push_operand, pop_operand, memory_operand,
25172         indirect_operand, asm_operand_ok, offsettable_memref_p,
25173         offsettable_nonstrict_memref_p, constrain_operands,
25174         store_data_bypass_p): Likewise.
25175         * reg-stack.c (subst_stack_regs_pat): Likewise.
25176         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
25177         copy_cost, reg_scan_mark_refs): Likewise.
25178         * regmove.c (optimize_reg_copy_3, stack_memref_p,
25179         combine_stack_adjustments_for_block): Likewise.
25180         * regrename.c (copyprop_hardreg_forward_1): Likewise.
25181         * reload.c (can_reload_into, push_reload, decompose, immune_p,
25182         find_reloads, find_reloads_address, find_reloads_address_1,
25183         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
25184         find_equiv_reg): Likewise.
25185         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
25186         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
25187         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
25188         delete_address_reloads): Likewise.
25189         * resource.c (mark_referenced_resources): Likewise.
25190         * rtlanal.c (get_jump_table_offset, count_occurrences,
25191         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
25192         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
25193         num_sign_bit_copies1): Likewise.
25194         * rtlhooks.c (gen_lowpart_general): Likewise.
25195         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
25196         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
25197         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
25198         sdbout_global_decl): Likewise.
25199         * simplify-rtx.c (simplify_subreg): Likewise.
25200         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
25201         expand_anon_union_decl, expand_end_case_type): Likewise.
25202         * unroll.c (calculate_giv_inc): Likewise.
25203         * var-tracking.c (stack_adjust_offset_pre_post,
25204         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
25205         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
25206         vt_add_function_parameters): Likewise.
25207         * varasm.c (make_var_volatile, notice_global_symbol,
25208         assemble_external, decode_addr_const, mark_weak,
25209         default_encode_section_info): Likewise.
25210
25211 2004-07-01  Steven Bosscher  <stevenb@suse.de>
25212
25213         * stmt.c (check_seenlabel): Remove.
25214         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
25215
25216 2004-07-01  Richard Henderson  <rth@redhat.com>
25217
25218         * function.h (struct function): Remove x_function_call_count.
25219         (function_call_count): Remove.
25220         * calls.c (expand_call): Don't set it.
25221         * integrate.c (copy_rtx_and_substitute): Likewise.
25222
25223         * function.h (struct function): Remove x_cleanup_label.
25224         (cleanup_label): Remove.
25225         * stmt.c (expand_value_return): Don't use it.
25226         * function.c (free_after_compilation): Don't set it.
25227         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
25228         * cfgexpand.c (tree_expand_cfg): Update call.
25229         * tree.h (expand_function_start): Update decl.
25230
25231 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
25232
25233         PR c/1027
25234         * c-lang.c (c_initialize_diagnostics): Move from here ...
25235         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
25236         (c_tree_printer): Use pretty-printer to format %T.
25237         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
25238         before '*' if not C++.
25239         (pp_c_direct_abstract_declarator): Don't try to print array upper
25240         bound for flexible array members.
25241         * c-tree.h: Include "diagnostic.h".
25242         (c_initialize_diagnostics): Declare.
25243         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
25244         * c-format.c (format_type_warning): New function.  Improve
25245         diagnostics for incorrect format argument types.
25246         (check_format_types): Use it.  Add two parameters.  Use the
25247         TYPE_MAIN_VARIANT of wanted_type.
25248         (check_format_info_main): Pass new parameters to
25249         check_format_types.
25250         (struct format_wanted_type): Update comment.
25251
25252 2004-07-01  Nick Clifton  <nickc@redhat.com>
25253
25254         * target.h (struct gcc_target): Add new field to struct cxx:
25255         import_export_class.
25256         * target-def.h (TARGET_CXX): Initialise the new field.
25257         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
25258         the new field.
25259         * doc/tm.texi: Document the new target hook.
25260
25261 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25262
25263         * builtins.c (fold_builtin_classify): Fix typo.
25264
25265 2004-07-01  Richard Henderson  <rth@redhat.com>
25266
25267         * function.c (identify_blocks, identify_blocks_1): Remove.
25268         * function.h (identify_blocks): Remove.
25269         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
25270
25271 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25272
25273         * builtins.c (fold_builtin_classify): New.
25274         (fold_builtin_unordered_cmp): Fix commentary.
25275         (fold_builtin): Use it.
25276         * builtins.def: Define builtins for isnan,
25277         isnanf, isnanl, finite, finitef, finitel,
25278         isinf, isinff, isinfl.
25279
25280 2004-07-01  Richard Henderson  <rth@redhat.com>
25281
25282         * function.h (struct function): Remove dont_emit_block_notes.
25283         * gimple-low.c (lower_function_body): Don't set it.
25284         * cfgexpand.c (expand_block): Don't check it.
25285         * cfglayout.c (insn_locators_initialize): Likewise.
25286         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
25287         * passes.c (rest_of_compilation): Likewise.
25288         * stmt.c (expand_start_bindings_and_block): Likewise.
25289         (expand_end_bindings): Likewise.
25290
25291 2004-07-01  Richard Henderson  <rth@redhat.com>
25292
25293         * cgraph.h (cgraph_build_static_cdtor): Declare.
25294         * cgraphunit.c (cgraph_build_static_cdtor): New.
25295         * c-objc-common.c (build_cdtor): Use it.
25296         * coverage.c (create_coverage): Likewise.
25297         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
25298         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
25299
25300 See ChangeLog.11 for earlier changes.