OSDN Git Service

* config.if: Delete.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
2
3         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
4         Set libstdcxx_incdir directly.
5         * configure: Regenerate.
6
7 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
8
9         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
10         "if" whose condition is always true.
11
12         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
13         INSN_P.
14
15 2004-12-02  Stan Shebs  <shebs@apple.com>
16
17         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
18         Darwin default to one-byte bools.
19
20 2004-12-02  Richard Henderson  <rth@redhat.com>
21
22         PR 18774
23         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
24
25 2004-12-03  Ben Elliston  <bje@au.ibm.com>
26
27         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
28         type and its methods.
29
30 2004-12-02  Richard Henderson  <rth@redhat.com>
31
32         * expr.c (write_complex_part): Use simplify_gen_subreg when the
33         submode is at least as large as a word.
34         (read_complex_part): Likewise.
35
36 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
37
38         PR bootstrap/18532
39         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
40         multilib at a time. Don't build the default set. Don't add
41         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
42         filter for shared libunwind and libgcc.
43
44 2004-12-02  Roger Sayle  <roger@eyesopen.com>
45
46         PR target/18759
47         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
48         already been specified, ignore the -momit-leaf-frame-pointer option.
49
50 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
51
52         * varasm.c (make_decl_rtl): Add the missing `;'.
53
54 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
55
56         * tree.c (is_attribute_p): Split out to ..
57         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
58         of strlen and compare the string lengths before calling strcmp.
59         (lookup_attribute): Call is_attribute_with_length_p instead of
60         is_attribute_p.
61
62 2004-12-02  Devang Patel  <dpatel@apple.com>
63
64         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
65         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
66         * config/i386/darwin.h (CC1_SPEC): Same.
67         
68 2004-12-02  Richard Henderson  <rth@redhat.com>
69
70         * optabs.c (lowpart_subreg_maybe_copy): New.
71         (expand_unop, expand_abs_nojump): Use it.
72
73 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
74
75         * sh.md (extv, extzv): Add pattern predicate.
76
77 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
78
79         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
80         is not null.
81
82         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
83         is not null.
84
85         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
86
87 2004-12-02  Jeff Law  <law@redhat.com>
88
89         * tree-eh.c: Revert yesterday's change.
90
91 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
92
93         * varasm.c (decode_reg_name): Revert change to check for zero
94         length strings.
95         (make_decl_rtl): Make sure that we call decode_reg_name only
96         when needed.
97
98 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
99
100         PR tree-opt/18716
101         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
102         then and else labels.
103
104 2004-12-02  Andreas Schwab  <schwab@suse.de>
105
106         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
107         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
108         (STAGE2_FLAGS_TO_PASS): Likewise.
109
110         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
111
112 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
113
114         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
115         now-redundant AC_SUBSTs.
116         * aclocal.m4: Include ../config/gcc-version.m4.
117         * configure: Regenerate.
118
119 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
120
121         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
122         #ifdef RELOCATABLE_NEEDS_FIXUP.
123
124 2004-12-01  Roger Sayle  <roger@eyesopen.com>
125
126         PR target/9908
127         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
128         Intel assembler syntax by using %A1 instead of %*%1.
129
130 2004-12-01  Richard Henderson  <rth@redhat.com>
131
132         * expr.c (expand_assignment): Handle CONCAT both as a final
133         destination and as a middle point.
134
135 2004-12-01  Jeff Law  <law@redhat.com>
136
137         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
138         (honor_protect_cleanup_actions): Only create save_eptr and
139         save_filt if they do not already exist.
140         (lower_eh_constructs): Wipe all knowledge of save_eptr and
141         save_filt before returning.
142
143 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
144
145         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
146
147 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
148
149         PR target/16952
150         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
151         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
152         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
153         of target_flags_explicit.
154         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
155         case.  Define as 0 for non-biarch.
156
157 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
158
159         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
160         Change temporary file tag from a prefix to an infix.
161
162 2004-12-02  Andreas Schwab  <schwab@suse.de>
163
164         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
165
166 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
167
168         PR tree-opt/18763
169         PR tree-opt/18746
170         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
171         the statements if aliases_computed_p is true.
172
173 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
174
175         * Makefile.in (WERROR): New variable.
176         (STRICT2_WARN): Use it.
177         (STAGE2_FLAGS_TO_PASS): Likewise.
178         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
179
180 2004-12-01  Richard Henderson  <rth@redhat.com>
181
182         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
183         offsetting.
184
185 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
186
187         PR tree-optimization/18291
188         * tree-ssa-copy.c (merge_alias_info): Fix merging of
189         flow-sensitive alias information.  If the new pointer has no
190         name tag, copy it from the original pointer.  Otherwise, make
191         sure that the pointed-to sets have a common intersection.
192
193 2004-12-01  Richard Henderson  <rth@redhat.com>
194
195         PR rtl-opt/15289
196         * emit-rtl.c (gen_complex_constant_part): Remove.
197         (gen_realpart, gen_imagpart): Remove.
198         * rtl.h (gen_realpart, gen_imagpart): Remove.
199         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
200         gen_realpart/gen_imagpart.
201         * expr.c (write_complex_part, read_complex_part): New.
202         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
203         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
204         emit_move_multi_word): Split out from ...
205         (emit_move_insn_1): ... here.
206         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
207         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
208         * function.c (assign_parm_setup_reg): Hard-code transformations
209         instead of using gen_realpart/gen_imagpart.
210
211         * expr.c (optimize_bitfield_assignment_op): Split out from ...
212         (expand_assignment): ... here.  Use handled_component_p to gate
213         get_inner_reference code.  Simplify MEM handling.  Special case
214         CONCAT destinations.
215
216         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
217         of gen_rtx_SUBREG directly.
218
219 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
220             Nathan Sidwell  <nathan@codesourcery.com>
221
222         PR target/17107
223         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
224         (sgt): Same.
225         (sle): Same.
226         (slt): Same.
227
228 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
229
230         PR middle-end/18667
231         * params.c (set_param_value): Add range check.
232         * params.def: Add min and max values. Reformat long strings.
233         * params.h (struct param_info): Add min and max fields.
234         (enum compiler_param): Adjust DEFPARAM.
235         * toplev.c (lang_independent_params): Likewise.
236
237 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
238
239         PR target/12817
240         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
241
242 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
243
244         * doc/standards.texi: Update for C99 TC2.
245
246 2004-11-30  Jeff Law  <law@redhat.com>
247
248         * sbitmap.c (sbitmap_any_common_bits): New function.
249         * sbitmap.h (sbitmap_any_common_bits): Prototype.
250         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
251         No longer allocate/free "psp", "pss" sbitmaps.
252         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
253         the "res" sbitmap.
254         (group_aliases): Similarly.
255
256 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
257
258         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
259         uninitialized variable.
260
261 2004-11-30  Eric Christopher  <echristo@redhat.com>
262
263         * fold-const.c (fold_widened_comparison): Make sure that we're
264         passing an INTEGER_TYPE to int_fits_type_p.
265         (fold): Clean up comment.
266
267 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
268
269         * mklibgcc.in: Correct calculation of libgcc_s_soname and
270         libunwind_soname.  Use $out, not $outS, in commands for
271         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
272         library build rules, make $libunwind_so and $libgcc_s_so
273         depend on them in the normal fashion, and filter those objects
274         out of @shlib_objs@.
275
276 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
277
278         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
279
280 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
281
282         PR tree-opt/18298
283         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
284         pass right after fold builtins.
285
286 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
287
288         * config/s390/s390-modes.def: Added cc modes documentation.
289         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
290         s390_expand_addcc): Added cc mode comments.
291         * config/s390/s390.md: Removed old cc mode documentation.
292
293 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
294
295         * config/s390/s390.c (struct processor_costs): New data type.
296         (s390_cost, z900_cost, z990_cost): New global variables.
297         (override_options): Initialize s390_cost.
298         (s390_rtx_costs): Reimplement.
299
300 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
301
302         Fix PR tree-optimization/18673
303
304         * tree-ssa-pre.c: Remove splay-tree.h include.
305         (bitmap_value_replace_in_set): Fix to add if it does not exist.
306         (find_or_generate_expression): Remove now-wrong condition.
307         (create_expression_by_pieces): Fix condition and comment reason
308         for it.
309         (insert_aux): Fix condition and comment reasons for it.
310         Factor insertion code from here.
311         (insert_into_preds_of_block): To here.  Fix conditions in factored
312         function and comment reasons for them.
313
314 2004-11-30  Ira Rosen  <irar@il.ibm.com>
315
316         PR tree-opt/18607
317         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
318         variable for data_reference when looking for memtag.
319
320 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
321
322         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
323         deps_seen.
324
325 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
326
327         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
328         tree_low_cst instead of TREE_INT_CST_LOW.
329
330 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
331
332         PR target/18173
333         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
334         decls that are assembled before vectorization takes place.
335         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
336
337 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
338
339         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
340         if local_alloc modified jumps.
341
342 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
343
344         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
345         on TLS symbols.
346         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
347         check.
348
349 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
350
351         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
352         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
353
354         * mklibgcc.in: Drastic restructure for comprehensibility.
355         Remove the old hidden-directive hack.
356         Eliminate support for .txt files in LIB2ADD etc (never used).
357         Eliminate support for assembly source files in LIB2ADDEH* and
358         LIBUNWIND (also never used).
359         Build up dependency lists for libraries incrementally.
360         If we have SHLIB_LINK, compile each file twice, once for the
361         static and once for the shared library; also probe for
362         -fvisibility=hidden in the generated libgcc.mk.  If found,
363         pass that and -DHIDE_EXPORTS to the compilation of every C
364         source file going into the static library.  If found, generate
365         hidden-directive lists for every assembly source file going
366         into the static library, but incorporate them with -include
367         instead of ld -r.
368         Write comments into generated libgcc.mk to facilitate debugging.
369         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
370         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
371
372         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
373         -Zdynamiclib case.
374
375 2004-11-29  Richard Henderson  <rth@redhat.com>
376
377         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
378         (handled_component_p): Likewise.
379         * alias.c (can_address_p): Reformat and simplify.  Handle
380         REAL/IMAGPART_EXPR.  Do not disable addressability based on
381         alias set zero.
382         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
383         check for REAL/IMAGPART_EXPR.
384         * gimplify.c (gimplify_compound_lval): Likewise.
385         * tree-cfg.c (verify_expr): Likewise.
386         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
387         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
388         (convert_local_reference): Likewise.
389         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
390
391 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
392
393         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
394
395 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
396
397         PR pch/14940
398         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
399         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
400         and host_xmake_file using new host configuration files.
401
402 2004-11-29  Roger Sayle  <roger@eyesopen.com>
403
404         * reg-stack.c (change_stack): Improve algorithm used to pop regs
405         off the stack to maximize ffreep usage and reduce fxch count.
406
407 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
408
409         PR middle-end/18596
410         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
411         on errors.
412
413 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
414
415         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
416         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
417
418 2004-11-30  Ben Elliston  <bje@au.ibm.com>
419
420         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
421
422 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
423
424         PR c/18479
425         * c-common.c (handle_visibility_attribute): When the type decl
426         is really a identifier node, warn about being ignored and return.
427
428 2004-11-29  Richard Henderson  <rth@redhat.com>
429
430         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
431
432 2004-11-29  Steven Bosscher  <stevenb@suse.de>
433
434         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
435         Remove CASE_DROPS_THROUGH checks, it is never defined.
436         * cfglyout.c (fixup_reorder_chain): Likewise.
437         * cfgrtl.c (rtl_verify_flow_info): Likewise.
438         * stmt.c (expand_case): Likewise.
439         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
440         it is now always 0.
441         * system.h (CASE_DROPS_THROUGH): Poison.
442         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
443         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
444
445         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
446
447 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
448
449         PR middle-end/18725
450         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
451         shared always.
452
453 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
454
455         PR tree-optimization/18712
456         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
457         WORK_STACK by reference.
458         Call VEC_safe_push instead of VEC_quick_push.
459         Update all users.
460
461 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
462
463         PR c/7544
464         * Makefile.in (c-lang.o): Update dependencies.
465         * c-lang.c: Include "c-pragma.h".
466         (finish_file): Call maybe_apply_pending_pragma_weaks.
467         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
468         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
469
470 2004-11-29  Richard Henderson  <rth@redhat.com>
471
472         PR target/17224
473         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
474         outside the referenced object.
475
476 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
477
478         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
479         EDGE_PRED instead of PHI_ARG_EDGE.
480         * tree-ssa-live.c: Likewise.
481         * tree-ssa-loop-manip.c: Likewise.
482         * tree-ssa.c: Likewise.
483
484         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
485         simplifying edge manipulation.
486
487         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
488         EDGE_COUNT.
489
490         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
491         only when needed.
492
493         * cfg.c (flow_obstack): Remove.
494         (flow_firstobj): Likewise.
495         (init_flow): Remove all uses of flow_obstack.
496
497 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
498
499         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
500         to named_section.
501
502 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
503
504         * opts.c (decode_options): Do not set max-inline-insns-rtl.
505         (common_handle_option): Likewise.
506         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
507         * params.h (MAX_INLINE_INSNS_RTL): Remove.
508         * doc/invoke.texi (max-inline-insns-rtl): Remove.
509
510 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
511
512         PR target/9571
513         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
514
515 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
516
517         PR middle-end/18164
518         * gimplify.c (gimplify_asm_expr): If the length of an output operand
519         is zero, do not process it, just let it go through.
520
521 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
522             Diego Novillo  <dnovillo@redhat.com>
523
524         PR/18662, also backported from tree-cleanup-branch.
525         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
526         always call maybe_clean_eh_stmt and modify_stmt.
527
528 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
529
530         PR/18664
531         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
532         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
533         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
534         add an inverse VIEW_CONVERT_EXPR to const_val.
535
536         PR/18657
537         * tree-nested.c (check_for_nested_with_variably_modified): New.
538         (create_nesting_tree): Call it.
539
540         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
541         special code for assigning to non-pointer.
542         (is_escape_site): If RHS is a conversion between pointer and integer
543         types,  this is an escape site.
544
545         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
546         (store_motion): Don't move store if any edge we'd want to move it
547         to is abnormal.
548
549         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
550         non-zero lower bound.
551
552         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
553
554 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
555
556         PR diagnostic/17594
557         * opts.c (find_opt): Require that the input match a switch exactly
558         or that the switch take a joined option to be interpreted as a
559         match for another language.
560
561 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
562
563         * timevar.def (TV_TREE_REDPHI): New timevar.
564         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
565
566 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
567
568         PR preprocessor/17651
569         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
570         flag_no_line_commands.
571         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
572         flag_no_output.
573
574 2004-11-28  Theodore A. Roth  <troth@openavr.org>
575
576         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
577         warning if the function name does not begin with "__vector" and the
578         function has either the 'signal' or 'interrupt' attribute.
579
580 2004-11-28  Theodore A. Roth  <troth@openavr.org>
581
582         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
583         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
584         atmega325, atmega3250, atmega645 and atmega6450.
585         * config/avr/avr.h (LINK_SPEC): Ditto.
586         (LIB_SPEC): Ditto.
587         (LIBGCC_SPEC): Ditto.
588         (CRT_BINUTILS_SPECS): Ditto.
589         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
590
591 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
592
593         PR preprocessor/17610
594         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
595
596 2004-11-28  Jeff Law  <law@redhat.com>
597
598         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
599         (pass_maybe_create_global_var): New.
600         * tree-pass.h (pass_maybe_create_global_var): Declare.
601         * tree-optimize.c (init_tree_optimization_passes): Link in
602         pass_maybe_create_global_var.
603
604 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
605
606         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
607
608 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
609
610         PR rtl-optimization/18420
611         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
612
613 2004-11-28  Steven Bosscher  <stevenb@suse.de>
614             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
615
616         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
617         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
618         that the case is in range, to make sure the casesi insn is always
619         in range and never falls through.
620         (casesi1): Add comment to explain why casesi never falls through.
621         Remove the unnamed special case casesi pattern.
622
623 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
624
625         PR target/18331
626         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
627         "*movdicc_real".  Only match reversible comparisons.
628         ("*movdicc_real_nonreversible"): New pattern, split from
629         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
630         reversed alternatives.
631         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
632         Similar.
633
634 2004-11-27  Richard Henderson  <rth@redhat.com>
635
636         * config/ia64/ia64.md: Move all define_predicate's ...
637         * config/ia64/predicates.md: ... here.  New file.
638
639 2004-11-27  Per Bothner  <per@bothner.com>
640
641         PR bootstrap/18142
642         Re-applied following, with two modifications: add a URL for the
643         fixed cctools; only exit if $build = $target.
644
645         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
646         * configure.ac (powerpc-*-darwin*): Require assembler to support
647         .machine directive.
648         * configure: Regenerate.
649
650 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
651
652         PR target/16800
653         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
654         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
655         Distinguish between SImode and DImode CONST_INT.
656
657 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
658             Alan Modra  <amodra@bigpond.net.au>
659
660         PR target/16343
661         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
662         functions, strings and thread-local vars.
663
664 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
665
666         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
667         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
668         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
669         to allow non-darwin ABIs to optimize away code.
670         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
671
672 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
673
674         * tree.c (operand_equal_for_phi_arg_p): New.
675         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
676         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
677         Replace operand_equal_p with operand_for_phi_arg_p
678         appropriately.
679
680         * bb-reorder.c (find_traces_1_round): Speed up by using
681         EDGE_COUNT instead of FOR_EACH_EDGE.
682
683         * fold-const.c, config/i386/linux64.h: Fix comment typos.
684
685 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
686
687         PR pch/14940
688         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
689
690 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
691
692         * config/i386/linux.h: Fix a comment typo.
693         * doc/extend.texi: Fix a typo.
694
695 2004-11-27  Jeff Law  <law@redhat.com>
696
697         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
698         are merged.
699
700 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
701
702         * config/i386/linux64.h (REG_NAME): Define.
703
704 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
705
706         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
707         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
708         and only afterwards convert to ctype.
709
710 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
711
712         * config/mips/mips-protos.h (function_arg_boundary): Declare.
713         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
714         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
715         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
716         * config/mips/mips.c (function_arg_boundary): New function.
717         Impose a maximum alignment of STACK_BOUNDARY.
718
719 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
720
721         PR rtl-optimization/17825
722         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
723         or not.
724
725 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
726
727         PR target/12769
728         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
729         from rs6000_default_long_calls for libcalls.
730
731 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
732
733         * expmed.c (extract_bit_field): When extracting from non-integer mode,
734         force a SUBREG into a register because we may be taking a further
735         SUBREG of it.
736
737 2004-11-27  Di-an Jan  <dianj@freeshell.org>
738
739         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
740
741 2004-11-26  Robert Millan  <robertmh@gnu.org>
742
743         Changes for k*bsd-gnu support.
744         * config/i386/linux.h: Define REG_NAME to allow overriding of
745         register names in sc structure.
746         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
747         of sc->reg.
748         * config.gcc: Detect x86_64-k*bsd-gnu systems.
749
750 2004-11-26  Jeff Law  <law@redhat.com>
751
752         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
753         retrieve annotations or pointer info before it's necessary.
754         Reorder tests for early continue of the loop.  Manually CSE
755         SSA_NAME_VAR.
756
757 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
758
759         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
760         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
761         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
762         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
763         to a fixed reg if the source is the Return Address register.
764         Implement new Rule 15.
765         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
766         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
767         sparc_dwarf_handle_frame_unspec.
768         (gen_save_register_window): New function.
769         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
770         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
771         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
772         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
773         (sparc_asm_function_prologue): Do not emit call frame debugging info.
774         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
775         (sparc_expand_epilogue): Likewise.
776         (sparc_dwarf_handle_frame_unspec): New function.
777         * config/sparc/sparc.md (save_register_window): Remove.
778         (save_register_windowdi): Rewrite modelled on the callframe debug info.
779         (save_register_windowsi): Likewise.
780
781 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
782
783         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
784         BB_HEAD, not BLOCK_HEAD.
785
786 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
787
788         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
789         scratch insns that set a register live at the join point.
790
791 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
792
793         * cse.c, tree-ssa-operands.c: Fix comment typos.
794
795         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
796
797 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
798
799         PR target/18510
800         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
801
802 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
803
804         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
805         check that tests if all edges go to the same destination.
806
807         * bitmap.c (bitmap_find_bit): Speed up by traversing from
808         head->first if that seems profitable.
809
810 2004-11-25  Jeff Law  <law@redhat.com>
811
812         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
813         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
814         (pass_loop_done): Use TV_TREE_LOOP_FINI.
815
816 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
817
818         PR rtl-optimization/16356
819         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
820         separate output register and one less jump.  Enable for powerpc64.
821         (floatdisf2): Adjust for above.
822
823 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
824
825         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
826         (GCC_DRIVER_HOST_INITIALIZATION): Define.
827
828 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
829
830         PR middle-end/17957
831         * tree-complex.c (vector_inner_type): New variable moved from
832         build_word_mode_vector_type.
833         (vector_last_type): Likewise.
834         (vector_last_nunits): Likewise.
835         (build_word_mode_vector_type): Use the new variables.
836         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
837         (GTFILES): Add tree-complex.c.
838         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
839
840 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
841
842         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
843         __XTENSA_WINDOWED_ABI__.
844
845 2004-11-25  Richard Henderson  <rth@redhat.com>
846
847         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
848         args_size adjustments for calls even with cfa as stack pointer.
849         Search calls for stack adjustments after the insn is issued.
850         (dwarf2out_frame_debug): Add after_p argument; pass it on.
851         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
852         * final.c (final_start_function, final_scan_insn): Likewise.
853
854 2004-11-25  Richard Henderson  <rth@redhat.com>
855
856         PR c++/6764
857         * reload1.c (set_initial_eh_label_offset): New.
858         (set_initial_label_offsets): Use it.
859
860 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
861
862         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
863         before calling life_analysis and release them after.
864
865 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
866
867         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
868         duplicate code.
869
870 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
871
872         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
873         BITMAP_OBSTACK_ALLOC.
874         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
875
876 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
877
878         parts of PR rtl-opt/18463, rtl-opt/17647
879         * cse.c (canon_for_address): New function.
880         (find_best_addr): Call canon_for_address before getting the
881         address's cost when checking if we should take that address.
882
883 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
884
885         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
886         "tree *" as the first argument.
887         * tree-flow.h: Update the prototype of add_phi_arg.
888         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
889         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
890         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
891         tree-vectorizer.c: Update all call sites of add_phi_arg.
892
893 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
894
895         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
896         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
897         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
898         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
899
900 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
901
902         PR tree-optimization/18587
903         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
904         call clobbered caches as invalid.
905         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
906         indicating whether the call clobbered operand cache is valid.
907         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
908         pure/const call operand cache is valid.
909         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
910         list of operands for cached call virtual operands.
911         (clobbered_aliased_loads, clobbered_aliased_stores,
912         ro_call_aliased_load): New.  flags caching whether alias bits are
913         to be set in call stmt's.
914         (fini_ssa_operands): Remove call operand caches if present.
915         (get_expr_operands, get_asm_expr_operands,
916         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
917         (get_call_expr_operands): Add call clobbered variables first.
918         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
919         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
920         if it is valid, otherise fill the cache.
921         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
922         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
923         in_v_may_def_list bits.
924         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
925         in_list bits for the v_may_def elements and empty the operand
926         build array
927         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
928         VUSES by checking the in_v_may_def_list bit.
929         (append_v_may_def, append_vuse): Use the in_list bit rather than
930         scanning the array for duplicates.
931
932 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
933
934         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
935         displacements are not short.
936
937 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
938
939         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
940         to load addresses.
941
942 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
943
944         PR c++/18001
945         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
946         (lvalue_or_else): Declare.
947         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
948         * c-typeck.c (lvalue_use): Remove.
949         (lvalue_or_else): Remove.
950
951         PR c++/18556
952         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
953         unemitted variables with static storage duration.
954
955 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
956
957         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
958         message with \n.
959
960 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
961
962         * config/rs6000/altivec.md (VIshort): New mode macro.
963         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
964         with ...
965         (altivec_vaddu<VI_char>s): ... this.
966         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
967         with ...
968         (altivec_vadds<VI_char>s): ... this.
969         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
970         with ...
971         (altivec_vsubu<VI_char>s): ... this.
972         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
973         with ...
974         (altivec_vsubs<VI_char>s): ... this.
975         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
976         with ...
977         (altivec_vavgu<VI_char>): ... this.
978         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
979         with ...
980         (altivec_vavgs<VI_char>): ... this.
981         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
982         (altivec_vmsumu<VI_char>m): ... this.
983         (altivec_vmsummbm, altivec_vmsummhm): Replace
984         with ...
985         (altivec_vmsumm<VI_char>m): ... this.
986         (altivec_vandc): Remove.
987         (*andc<mode>3): Renamed to ...
988         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
989         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
990         with ...
991         (altivec_vrl<VI_char>): ... this.
992         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
993         with ...
994         (altivec_vsl<VI_char>): ... this.
995         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
996         with ...
997         (altivec_vsr<VI_char>): ... this.
998         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
999         with ...
1000         (altivec_vsra<VI_char>): ... this.
1001         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
1002         (altivec_vsum4s<VI_char>s): ... this.
1003         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
1004         with ...
1005         (altivec_vperm_<mode>): ... this.
1006         (altivec_vsel_4sf): Rename to ...
1007         (altivec_vsel_v4sf): ... here.
1008         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
1009         with ...
1010         (altivec_vsel_<mode>): ... this.
1011         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
1012         altivec_vsldoi_16qi): Rename to ...
1013         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
1014         altivec_vsldoi_v16qi): ... here.
1015         (altivec_vsldoi_4sf): Rename to ...
1016         (altivec_vsldoi_v4sf): ... here.
1017         (altivec_predicate_v4si, altivec_predicate_v8hi,
1018         altivec_predicate_v16qi): Replace with ...
1019         (altivec_predicate_<mode>): ... this.
1020         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
1021         with ...
1022         (altivec_lve<VI_char>x): ... this.
1023         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
1024         with ...
1025         (altivec_stve<VI_char>x): ... this.
1026         (absv16qi2, absv8hi2, absv4si2): Replace
1027         with ...
1028         (abs<mode>2): ... this.
1029         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
1030         with ...
1031         (altivec_abss_<mode>): ... this.
1032         (vec_realign_load_v16qi, vec_realign_load_v8hi,
1033         vec_realign_load_v4si): Replace with ...
1034         (vec_realign_load_<mode>): ... this.
1035         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
1036         insn names.
1037         (rs6000_expand_ternop_builtin): Likewise.
1038
1039 2004-11-25  Andrew Haley  <aph@redhat.com>
1040
1041         * gcc.c (process_command): Don't supply -v to linker.
1042
1043 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1044
1045         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
1046         instead of `%s' in diagnostic.
1047
1048 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1049
1050         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
1051         (FREE_REG_SET): Adjust.
1052         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
1053         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
1054         (BITMAP_ALLOC): ... here.
1055         (BITMAP_OBSTACK_FREE): Rename to ...
1056         (BITMAP_FREE): Don't check for NULL bitmap here.
1057         * tree-ssa-pre.c (value_insert_into_set_bitmap,
1058         bitmap_set_new): Use new names.
1059
1060         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
1061         * df.c (df_free): Likewise.
1062         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
1063         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
1064
1065         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
1066         (ALLOC_REG_SET): ... here.
1067         (FREE_REG_SET): Adjust.
1068         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
1069         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
1070         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
1071         * cfgrtl.c (rtl_split_block, rtl_split_edge,
1072         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
1073         * flow.c (update_life_info, calculate_global_regs_live,
1074         allocate_bb_life_data, init_propagate_block_info): Adjust.
1075         * global.c (build_insn_chain): Adjust.
1076         * ifcvt.c (dead_or_predicable): Adjust.
1077         * loop-iv.c (simplify_using_initial_values): Adjust.
1078         * recog.c (peephole2_optimize): Adjust.
1079         * sched-deps.c (init_deps_global): Adjust.
1080
1081 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
1082
1083         * config.gcc (avr-*-rtems*): Fix typo.
1084
1085 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
1086
1087         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
1088
1089 2004-11-24  Jeff Law  <law@redhat.com>
1090
1091         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
1092         the number of queries to random elements in the ai->written_vars
1093         bitmap.
1094
1095 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1096
1097         * config/i386/i386.c (override_options): Disable x87 fancy math
1098         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
1099
1100 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1101
1102         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
1103         system header conflict on AIX 5.2.
1104         * configure: Regenerate.
1105
1106 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1107
1108         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
1109         instead of calling phi_arg_from_edge.
1110
1111         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
1112         with e->dest_idx.
1113
1114 2004-11-24  Ben Elliston  <bje@au.ibm.com>
1115
1116         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
1117         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
1118         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
1119         Likewise.
1120
1121 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1122
1123         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
1124
1125         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
1126         type will be remapped.
1127
1128 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1129
1130         * c-opts.c (c_common_post_options): Don't clear
1131         flag_inline_functions.
1132         * dojump.c (clear_pending_stack_adjust): Remove check on
1133         flag_inline_functions, it's always true.
1134         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
1135         that can never trigger.
1136         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
1137         flag_inline_trees, now that flag_inline_functions is never
1138         cleared.
1139         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
1140         flag_inline_functions at optimization levels greater than
1141         or equal to 3.  This is already done by default.
1142
1143 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1144
1145         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
1146         instead to find the PHI argument.  Do not take I as an
1147         argument.
1148         (eliminate_phi): Adjust the call to eliminate_build.  Do not
1149         take I as an argument.
1150         (rewrite_trees): Adjust the call to eliminate_phi.
1151
1152 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
1153
1154         * optabs.h (force_expand_binop): Declare.
1155         * optabs.c (force_expand_binop): Export.
1156         * stmt.c (shift_return_value): Delete.
1157         (expand_return): Don't call it.
1158         * expr.h (shift_return_value): Declare.
1159         * calls.c (shift_returned_value): Delete in favor of...
1160         (shift_return_value): ...this new function.  Leave the caller to check
1161         for non-BLKmode values passed in the msb of a register.  Take said mode
1162         and a shift direction as argument.  Operate on the hard function value,
1163         not a pseudo.
1164         (expand_call): Adjust accordingly.
1165         * function.c (expand_function_start): If a non-BLKmode return value
1166         is padded at the last significant end of the return register, use the
1167         return value's natural mode for the DECL_RESULT, not the mode of the
1168         padded register.
1169         (expand_function_end): Shift the same sort of return values left by
1170         the appropriate amount.
1171
1172 2004-11-24  Matt Austern  <austern@apple.com>
1173
1174         * recog.c (recog_memoized_1): Remove.
1175         * recog.h (recog_memoized_1): Remove declaration.
1176         (recog_memoized): Change from macro to inline function.
1177
1178 2004-11-24  Devang Patel  <dpatel@apple.com>
1179
1180         PR/18555
1181         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
1182         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
1183
1184 2004-11-24  Devang Patel  <dpatel@apple.com>
1185
1186         * gcc.c (process_command): Supply -v to linker.
1187
1188 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
1189             Paolo Bonzini  <bonzini@gnu.org>
1190
1191         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
1192         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
1193         synthetic vector.
1194         (rs6000_pass_by_reference): Split conditional into pieces.  Use
1195         GCC vector instead of synthetic vector.
1196
1197 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
1198
1199         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
1200         thread-local variable is invariant.
1201
1202 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1203
1204         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
1205         Handle TYPE_REF_CAN_ALIAS_ALL.
1206         (print_declaration): Print array dimensions like dump_generic_node.
1207
1208         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
1209         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
1210
1211 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
1212
1213         * bitmap.c (INLINE): Do not define.
1214         (bitmap_elem_to_freelist, bitmap_element_free,
1215         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
1216         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
1217
1218 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1219
1220         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
1221         find the index of a PHI argument.  Use e->dest_idx instead.
1222         Replace hint with index.
1223
1224         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
1225         with indx.
1226
1227 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
1228
1229         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
1230         regarding PT_MALLOC.
1231
1232 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1233
1234         * config/i386/i386.c (optimization_options): Use
1235         SUBTARGET_OPTIMIZATION_OPTIONS.
1236         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
1237         (TARGET_SUBTARGET_DEFAULT): Don't include
1238         MASK_OMIT_LEAF_FRAME_POINTER.
1239
1240 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1241
1242         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
1243         Define to false.
1244
1245 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1246
1247         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
1248         Use amd64 instead of 64.
1249
1250 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1251             Joseph Myers  <joseph@codesourcery.com>
1252
1253         * crtstuff.c (IN_LIBGCC2): Define it.
1254         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
1255         instead of HAVE_LD_RO_RW_SECTION_MIXING.
1256         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
1257         * dwarf2out.c (named_section_eh_frame_section): Check
1258         EH_TABLES_CAN_BE_READ_ONLY.
1259         * except.c (default_exception_section): Likewise.
1260         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
1261         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
1262
1263 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1264
1265         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
1266         index of a PHI argument.
1267
1268         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
1269         find_edge to find the index of a PHI argument.
1270
1271 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1272
1273         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
1274         and LABELED_BLOCK_EXPR.
1275         * gimplify.c (gimplify_labeled_block_expr): Remove.
1276         (gimplify_exit_block_expr): Remove.
1277         (gimplify_expr): Don't call them.
1278         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
1279         and LABELED_BLOCK_EXPR.
1280         (estimate_num_insns_1): Likewise.
1281         (walk_tree): Likewise.
1282         * tree-pretty-print.c (dump_generic_node): Don't handle
1283         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
1284         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
1285         (LABELED_BLOCK_EXPR): Likewise.
1286         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
1287         (LABELED_BLOCK_BODY): Likewise.
1288         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1289         (EXIT_BLOCK_RETURN): Removed.
1290
1291 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1292
1293         * cfgrtl.c (rtl_delete_block): Fix comment.
1294         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
1295         or BLOCK_END insn notes.
1296         * jump.c (squeeze_notes): Likewise.
1297         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
1298         EH_REGION_END notes, we never have them to begin with.
1299         * sched-deps.c (sched_analyze_insn): When updating loop notes,
1300         verify that we have indeed only recorded loop notes.
1301         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
1302         Only record loop notes.
1303
1304         * cfgexpand.c (tree_expand_cfg): Fix comment.
1305
1306         * passes.c (rest_of_compilation): Don't do a second call to
1307         convert_from_eh_region_ranges from here, it's already called
1308         from cfgexpand.c.
1309         * except.c (resolve_fixup_regions): Remove.
1310         (remove_fixup_regions): Remove.
1311         (convert_from_eh_region_ranges_1): Remove.
1312         (convert_from_eh_region_ranges): Remove the case where EH is
1313         not already lowered at the tree level.  We always lower there.
1314
1315 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
1316
1317         PR c++/16882
1318         * tree.c (make_vector_type): Move qualifiers to the vector type,
1319         use the inner type's main variant and build a main variant for
1320         the vector type if necessary.
1321         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
1322
1323 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
1324
1325         * target.h (late_rtl_prologue_epilogue): Remove.
1326         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
1327         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
1328         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
1329         remaining bits to...
1330         (rest_of_handle_flow2): ...here.
1331         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
1332         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
1333
1334 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
1335
1336         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
1337         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
1338         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
1339
1340 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
1341
1342         * config/i386/i386.c (override_options): Move
1343         SUBTARGET_OVERRIDE_OPTIONS before defaulting
1344         flag_omit_frame_pointer.
1345
1346 2004-11-23  Richard Henderson  <rth@redhat.com>
1347
1348         * rtl.h (validate_subreg): Declare.
1349         * emit-rtl.c (validate_subreg): New.
1350         (gen_rtx_SUBREG): Use it.
1351         * simplify-rtx.c (simplify_subreg): Likewise.
1352         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
1353         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
1354         fallback whenever gen_realpart/gen_imagpart would not be able to
1355         create SUBREGs.
1356
1357 2004-11-23  Richard Henderson  <rth@redhat.com>
1358
1359         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
1360         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
1361         modes to CONCAT.
1362
1363 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
1364
1365         PR tree-optimization/18618
1366         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
1367         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
1368         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
1369         Update all users.
1370         (stmts_to_rescan): Likewise.
1371         (const_and_copies_stack): Likewise.
1372         (nonzero_vars_stack): Likewise.
1373         (vrp_variables_stack): Likewise.
1374
1375 2004-11-23  Richard Henderson  <rth@redhat.com>
1376
1377         * cse.c (record_jump_cond_subreg): New.
1378         (record_jump_cond): Use it instead of gen_lowpart.
1379
1380 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
1381             Joseph Myers  <joseph@codesourcery.com>
1382
1383         * config/sol2-c.c (solaris_register_pragmas): Use
1384         c_register_pragma_with_expansion.
1385         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
1386         * c-pragma.c (c_register_pragma): Update call to
1387         cpp_register_pragma.
1388         (c_register_pragma_with_expansion): New function.
1389         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
1390         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
1391         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
1392         #pragma align.
1393         * doc/tm.texi (c_register_pragma_with_expansion,
1394         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
1395
1396 2004-11-23  Richard Henderson  <rth@redhat.com>
1397
1398         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
1399         as mode sizes into local temporaries.  Unify failure path.
1400
1401 2004-11-23  Richard Henderson  <rth@redhat.com>
1402
1403         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
1404         * caller-save.c (mark_set_regs): Use subreg_regno instead.
1405         * final.c (alter_subreg): Likewise.
1406         * local-alloc.c (reg_is_born): Likewise.
1407
1408 2004-11-23  Richard Henderson  <rth@redhat.com>
1409
1410         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
1411         instead of using a SUBREG temporary.
1412
1413 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1414
1415         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
1416         two checks.
1417
1418 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
1419
1420         * function.h (struct function): Remove calls_longjmp.
1421         (current_function_calls_longjmp): Delete.
1422         * tree.h (ECF_LONGJMP): Delete.
1423         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
1424         (ECF_LIBCALL_BLOCK): Everybody slide down one.
1425         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
1426         * builtins.c (expand_builtin_longjmp): Don't set
1427         current_function_calls_longjmp.
1428         * calls.c (special_function_p): Mark longjmp and siglongjmp
1429         with ECF_NORETURN, not ECF_LONGJMP.
1430         (emit_call_1, expand_call, emit_library_call_value_1):
1431         Don't check for ECF_LONGJMP.
1432         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
1433         (need_fake_edge_p): Likewise.
1434
1435         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
1436         * system.h: Poison NON_SAVING_SETJMP.
1437         * function.c (use_register_for_decl)
1438         * gcse.c (compute_hash_table_work, compute_store_table)
1439         * postreload-gcse.c (record_opr_changes)
1440         * reload.c (find_equiv_reg)
1441         * reload1.c (reload)
1442         * config/i386/i386.c (ix86_can_use_return_insn_p):
1443         Remove code conditional on NON_SAVING_SETJMP.
1444         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
1445
1446         * config/i386/sysv3.h: Delete file.
1447         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
1448
1449 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
1450
1451         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
1452         the vectorization factor is greater than the iteration count.
1453         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
1454         iteration count is known.
1455
1456         (vect_build_symbol_bound): Removed. Its functionality moved to
1457         vect_generate_tmps_on_preheader.
1458         (vect_generate_tmps_on_preheader): Moved content of
1459         vect_build_symbol_bound here instead of calling it.  Changed some
1460         variables names.
1461
1462         (vect_build_loop_niters): We don't expect a new_bb to be generated -
1463         use gcc_assert.
1464         (vect_gen_niters_for_prolog_loop): Likewise.
1465         (vect_gen_niters_for_prolog_loo): Likewise.
1466
1467         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
1468         (slpeel_add_loop_guard): Likewise.
1469         (slpeel_tree_peel_loop_to_edge): Likewise.
1470         (vect_do_peeling_for_alignment): Likewise.
1471
1472         (vect_get_first_index): Missing space.
1473
1474 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
1475
1476         * config/s390/s390.md ("*iordi3"): Mark commutative.
1477         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
1478
1479 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1480
1481         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
1482         greater than PHI_ARG_CAPACITY.
1483         (reserve_phi_args_for_new_edge): Initialize the new PHI
1484         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
1485         (add_phi_arg): Add a PHI argument to the slot given by
1486         E->dest_idx.
1487         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
1488         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
1489         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
1490         argument by looking at PHI_ARG_DEF.
1491         (verify_phi_args): Check for a missing PHI argument.  Remove
1492         the check for duplicate PHI arguments.
1493         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
1494         (phi_arg_d): Remove e.
1495
1496         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
1497         by restricting to the case with two outgoing edges.
1498
1499 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
1500
1501         * config/s390/s390.c (s390_backchain_string): Removed.
1502         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
1503         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
1504         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
1505         TARGET_KERNEL_BACKCHAIN to reflect the new options.
1506         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
1507         (TARGET_KERNEL_BACKCHAIN): Removed.
1508         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
1509         (TARGET_PACKED_STACK): New macro.
1510         (TARGET_SWITCHES): New switches added.
1511         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
1512         removed.
1513         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
1514         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
1515         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
1516         the change in target switch semantics.
1517         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
1518         (TARGET_DEFAULT): MASK_BACKCHAIN added.
1519         * doc/invoke.texi: Added documentation for the new/changed options.
1520
1521 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
1522
1523         PR rtl-optimization/18614
1524         * simplify-rtx.c (simplify_binary_operation): Do not
1525         simplify inner elements of constant arguments of
1526         VEC_CONCAT insn.
1527
1528 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1529
1530         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
1531         0 instead of NULL.
1532
1533 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1534
1535         * tree-phinode.c (make_phi_node): Use a new variable,
1536         capacity, to receive the return value of ideal_phi_node_len.
1537
1538 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1539
1540         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
1541         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
1542         __gthread_recursive_mutex_init_function.
1543         (__gthread_key_create): Properly cast -1.
1544         (__gthread_recursive_mutex_init_function): New function.
1545         (__gthread_recursive_mutex_lock): Rewrite.
1546         (__gthread_recursive_mutex_trylock): Likewise.
1547         (__gthread_recursive_mutex_unlock): Likewise.
1548
1549 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1550
1551         * config/c4x/t-rtems: New.
1552         * config.gcc: Reflect having added c4x/t-rtems.
1553
1554 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
1555
1556         PR tree-opt/18403
1557         PR tree-opt/18505
1558         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
1559         lang_hooks.types.type_for_size instead of integer_type_node for the
1560         type of ptr_update.
1561
1562 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1563
1564         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
1565
1566 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1567
1568         * config/arm/t-rtems: New.
1569         * config.gcc: Reflect having added arm/t-rtems.
1570
1571 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1572
1573         * tree-cfg.c (tree_execute_on_growing_pred): New.
1574         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
1575         * tree-flow.h: Add a prototype for
1576         reserve_phi_args_for_new_edge.
1577         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
1578         (add_phi_arg): Don't resize a PHI array.
1579
1580 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1581
1582         * config.gcc: Add avr-*-rtems*.
1583         * config/avr/t-rtems: New.
1584         * config/avr/rtems.h: New.
1585
1586 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
1587
1588         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
1589         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
1590         Add comment to function.
1591
1592 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1593
1594         PR pch/14940
1595         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
1596
1597         PR rtl-optimization/14838
1598         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
1599         note.
1600         (get_last_nonnote_insn): Don't assume last insn is a note.
1601
1602 2004-11-22  Roger Sayle  <roger@eyesopen.com>
1603
1604         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
1605         to fold_binary_to_constant.
1606         (nondestructive_fold_unary_to_constant): Likewise, rename to
1607         fold_unary_to_constant.
1608         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
1609         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
1610         (nondestructive_fold_unary_to_constant): Likewise.
1611         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
1612         and fold_binary_to_constant.
1613         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
1614         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
1615         and EXEC_UNARY with calls to fold_*nary_to_constant.
1616         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
1617         (idx_find_step): Replace uses of EXEC_BINARY with calls to
1618         fold_binary_to_constant.
1619
1620 2004-11-22  Nick Clifton  <nickc@redhat.com>
1621
1622         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
1623         initialisation of 'e'.
1624
1625 2004-11-22  Roger Sayle  <roger@eyesopen.com>
1626
1627         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
1628         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
1629         automatically for targets without TARGET_80387.
1630         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
1631         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
1632         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
1633         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
1634         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
1635         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
1636         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
1637         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
1638         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
1639         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
1640         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
1641         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
1642         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
1643         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
1644         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
1645         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
1646         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
1647         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
1648         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
1649         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
1650
1651 2004-11-22  Dale Johannesen  <dalej@apple.com>
1652
1653         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
1654         properly and comment.
1655
1656 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
1657
1658         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
1659         (sparc_init_builtins): New function.
1660         (sparc_init_vis_builtins): Create builtin functions for VIS
1661         instructions.
1662         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
1663         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
1664         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
1665         (def_builtin): New macro for creating builtin functions.
1666         (P): New mode macro for pointer types.
1667         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
1668         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
1669         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
1670         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
1671         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
1672         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
1673         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
1674
1675 2004-11-22  Devang Patel  <dpatel@apple.com>
1676
1677         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
1678
1679 2004-11-22  Devang Patel  <dpatel@apple.com>
1680
1681         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
1682         (if_convertible_phi_p): ... new name.
1683         (if_convertable_modify_expr_p): Rename to ...
1684         (if_convertible_modify_expr_p): ... new name.
1685         (if_convertable_stmt_p): Rename to ...
1686         (if_convertible_stmt_p): ... new name.
1687         (if_convertable_bb_p): Rename to ...
1688         (if_convertible_bb_p): ... new name.
1689         (if_convertable_loop_p): Rename to ...
1690         (if_convertible_loop_p): ... new name.
1691
1692 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1693
1694         PR target/18444
1695         * configure.ac (threading): Accept 'posix95'.
1696         * configure: Regenerate.
1697         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
1698         include sol26.h and default to posix95 threads if have_pthread_h.
1699         (sparc-*-solaris2*): Likewise.
1700         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
1701         * gthr-posix95.h: New file.
1702         * config/sol26.h: New file.
1703         * doc/install.texi (--enable-threads): Document 'posix95'.
1704
1705 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1706
1707         * pointer-set.h (pointer_set_contains): Remove.
1708         * pointer-set.c (pointer_set_contains): Likewise.
1709
1710 2004-11-22  Dale Johannesen  <dalej@apple.com>
1711
1712         * calls.c (expand_call): Do not call preserve_temp_slots.
1713
1714 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
1715
1716         * tree-flow.h: Remove the prototype for remove_phi_arg.
1717         Add a prototype for remove_phi_args.
1718         * tree-phinodes.c (remove_phi_arg): Remove.
1719         (remove_phi_args): New.
1720         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
1721         of remove_phi_arg.
1722
1723         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
1724         after making an edge.
1725         (remove_edge): Call execute_on_shrinking_pred before removing
1726         an edge.
1727         (redirect_edge_succ): Call execute_on_growing_pred and
1728         execute_on_shrinking_pred.
1729         * cfghooks.c (execute_on_growing_pred): New.
1730         (execute_on_shrinking_pred): Likewise.
1731         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
1732         execute_on_shrinking_pred.
1733         Add prototypes for execute_on_growing_pred and
1734         execute_on_shrinking_pred.
1735         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
1736         execute_on_growing_pred and execute_on_shrinking_pred.
1737         (cfg_layout_rtl_cfg_hook): Likewise.
1738         * tree-cfg.c (tree_cfg_hooks): Likewise.
1739
1740         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
1741         (tree_cfg_hooks): Use it.
1742         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
1743         (ssa_redirect_edge): Don't call remove_phi_arg_num.
1744
1745         * tree-phinodes.c (remove_phi_arg_num): Make it static.
1746         * tree-flow.h: Remove the corresponding prototype.
1747
1748         * tree-ssa.c (ssa_remove_edge): Remove.
1749         * tree-flow.h: Remove the corresponding prototype.
1750         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
1751         * basic-block.h: Likewise.
1752         * tree-if-conv.c: Likewise.
1753         * tree-ssa-threadupdate.c: Likewise.
1754
1755 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1756
1757         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
1758         @table to list the BSI methods.  Use individual @findex directives
1759         instead of one with a comma-separated list of index entries.
1760
1761 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
1762
1763         PR tree-optimization/18529
1764         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
1765         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
1766         (fold): Call fold_to_nonsharp_ineq_using_bound.
1767         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
1768         (number_of_iterations_cond): Fold the expressions before futher
1769         processing.
1770         (tree_simplify_using_condition): Handle case when cond or expr is
1771         an EQ_EXPR specially.
1772
1773 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
1774
1775         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
1776         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
1777
1778 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
1779             Fariborz Jahanian  <fjahanian@apple.com>
1780
1781         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
1782         TARGET_ALTIVEC_ABI.
1783         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
1784         Align 16 byte and larger vectors like Altivec.
1785         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
1786         (function_arg): Same.
1787         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
1788
1789 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
1790
1791         PR tree-opt/18572
1792         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
1793         it.
1794
1795 2004-11-22  Richard Henderson  <rth@redhat.com>
1796
1797         * function.c (assign_parm_setup_block): Revert 11-13 change to
1798         forcably re-mode a (possibly BLKmode) hard register.
1799
1800 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1801
1802         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
1803
1804 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
1805
1806         * config/rs6000/power4.md: Remove delay between dispatch and issue
1807         associated with dispatch group slots 3 and 4.
1808         * config/rs6000/power5.md: Same.
1809
1810 2004-11-21  Jeff Law  <law@redhat.com>
1811
1812         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
1813         variant.
1814         * cfgbuild.c (make_edges): Likewise.
1815         * cfghooks.c (can_duplicate_block_p): Likewise.
1816         * cfgloop.c (loop_latch_edge): Likewise.
1817         * cfgloopmanip.c (force_single_succ_latches): Likewise.
1818         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1819         * predict.c (predict_loops, propagate_freq): Likewise.
1820         * tracer.c (tail_duplicate): Likewise.
1821         * tree-cfg.c (disband_implicit_edges): Likewise.
1822         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
1823
1824 2004-11-22  Nick Clifton  <nickc@redhat.com>
1825
1826         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
1827         initialisation of 'e'.
1828
1829 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
1830
1831         PR rtl-optimization/18599
1832         * regrename.c (copyprop_hardreg_forward): Speed up by putting
1833         BB_VISITED flags on basic blocks as we process them.
1834
1835 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
1836
1837         PR target/18531
1838         * config/rs6000/altivec.md (VI_char): New mode attribute.
1839         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
1840         (add<mode>3): ... this.
1841         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
1842         (sub<mode>3): ... this.
1843         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
1844         (smax<mode>3): ... this.
1845         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
1846         (smin<mode>3): ... this.
1847         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
1848         (umax<mode>3): ... this.
1849         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
1850         (umin<mode>3): ... this.
1851         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
1852         (and<mode>3): ... this.
1853         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
1854         (ior<mode>3): ... this.
1855         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
1856         (xor<mode>3): ... this.
1857         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
1858         (and<mode>3): ... this.
1859         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
1860         (ior<mode>3): ... this.
1861         (altivec_vnor): Replace with ...
1862         (altivec_nor<mode>): ... this.
1863         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
1864         (one_cmpl<mode>2): ... this.
1865         (altivec_vandc): New expander.
1866         (*andc<mode>3): New insn.
1867         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
1868
1869 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
1870
1871         PR tree-opt/18536
1872         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
1873         creating iv instead of integer_type.
1874         (vect_build_loop_niters): Remove redundant code.
1875         (vect_transform_loop_bound): Removed (duplicates functionality of
1876         make_loop_iterate_ntimes.
1877         (vect_gen_niters_for_prolog_loop): Add documentation. Call
1878         lang_hooks.types.type_for_size to create a type of the required size.
1879         Use that type instead of integer_type. Remove redundant code.
1880         (vect_update_niters_after_peeling): Use type of niters instead of
1881         integer_type.
1882         (vect_transform_loop): Unify handling of known and unknown loop bound
1883         cases. Call make_loop_iterate_ntimes instead of
1884         vect_transform_loop_bound.
1885
1886 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
1887
1888         PR target/18217
1889         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
1890         (LIB2ADDEH): Here.
1891
1892 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
1893
1894         PR tree-opt/18544
1895         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
1896
1897 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1898
1899         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
1900         m32r*linux.
1901         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
1902         m32r/libgcc-glibc.ver.
1903         * config/m32r/libgcc-glibc.ver: Add New file.
1904
1905 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
1906
1907         * bitmap.h (struct bitmap_obstack): New obstack type.
1908         (struct bitmap_head_def): Replace using_obstack with obstack
1909         pointer.
1910         (bitmap_default_obstack): New.
1911         (bitmap_initialize): Make inline, does not do allocation.
1912         (bitmap_release_memory): Remove.
1913         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
1914         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
1915         bitmap_obstack_free, bitmap_malloc_free): Declare.
1916         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
1917         (BITMAP_FREE): Replace with ...
1918         (BITMAP_OBSTACK_FREE): ... this.
1919         (BITMAP_XFREE): Adjust.
1920         (BITMAP_INIT_ONCE): Remove.
1921         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
1922         (bitmap_default_obstack): New.
1923         (bitmap_elem_to_freelist): Adjust.
1924         (bitmap_element_allocate): Adjust. Break initialization into ...
1925         (bitmap_obstack_initialize): ... here.
1926         (bitmap_release_memory): Replace with ...
1927         (bitmap_obstack_release): ... this.
1928         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
1929         bitmap_obstack_free, bitmap_malloc_free): New.
1930         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
1931         bitmap_initialize.
1932         (bitmap_initialize): Move to bitmap.h.
1933         * gengtype.c (open_base_files): Add obstack.h to ifiles.
1934         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
1935         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
1936         (INITIALIZE_REG_SET): Remove.
1937         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
1938         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
1939         (flow_obstack): Do not declare.
1940         (reg_obstack): Declare.
1941         * regs.h: Include obstack.h.
1942         * tree-optimize.c (tree_rest_of_compilation): Initialize and
1943         release bitmap obstack here.
1944         * bb-reorder.c: #include regs, not basic-block.
1945         (fix_crossing_conditional_branches): Allocate regsets from
1946         reg_obstack.
1947         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
1948         obstack.h.
1949         * caller-save.c: Include regs.h earlier.
1950         * cfg.c: Do not include basic-block.h or obstack.h.
1951         (reg_obstack): Define.
1952         * cfganal.c: Include obstack.h
1953         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
1954         earlier.
1955         * cfglayout.c: Do not include obstack.h.
1956         (flow_obstack): Remove declaration.
1957         (cfg_layout_duplicate_bb): Use reg_obstack.
1958         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
1959         * cfgrtl.c (rtl_split_block): Use reg_obstack.
1960         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
1961         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
1962         (cfg_layout_split_edge): Use reg_obstack.
1963         * cse.c: Include regs.h earlier.
1964         * ddg.c: Do not include basic-block.h.
1965         * dominance.c: Inlude obstack.h.
1966         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
1967         (calculate_global_regs_live): Likewise.
1968         (allocate_bb_life_data): Use reg_obstack.
1969         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
1970         * global.c: Do not include basic-block.h.
1971         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
1972         * graph.c: Include obstack.h.
1973         * haifa-sched.c: Do not include basic-block.h.
1974         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
1975         * local-alloc.c: Do not include basic-block.h.
1976         * loop-init.c, loop-invariant.c: Include obstack.h.
1977         * loop-iv.c: Likewise.
1978         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
1979         adjust.
1980         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
1981         * modulo-sched.c: Do not include basic-block.h.
1982         * passes.c (rest_of_handle_final): Do not call
1983         regset_release_memory.
1984         * ra-debug.c: Include regs.h earlier. Do not include
1985         basic-block.h.
1986         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
1987         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
1988         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
1989         (regset_release_memory): Remove.
1990         * resource.c: Do not include basic-block.h.
1991         * rtlanal.c: Do not include basic-block.h.
1992         * sbitmap.c: Include obstack.h.
1993         * sched-deps.c: Do not include basic-block.h.
1994         (reg_pending_sets_head, reg_pending_clobbers_head,
1995         reg_pending_uses_head): Remove.
1996         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
1997         * sched-ebb.c: Do not include basic-block.h.
1998         * sched-rgn.c: Likewise.
1999         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
2000         BITMAP_XFREE.
2001         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
2002         * tree-sra.c (decide_instantiations): Adjust bitmap
2003         initialization.
2004         * tree-ssa-dce.c: Include obstack.h.
2005         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
2006         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
2007         (bitmap_set_new): Likewise.
2008         (init_pre): Initialize bitmap obstack.
2009         (fini_pre): Release bitmap obstack.
2010         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
2011         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
2012         (mark_for_rewrite, unmark_for_rewrite): Likewise.
2013         (marked_ssa_names): Likewise.
2014         (init_ssanames): Use BITMAP_XMALLOC.
2015         (fini_ssanames): Use BITMAP_XFREE.
2016         * web.c: Include obstack.h
2017
2018 2004-11-22  Nick Clifton  <nickc@redhat.com>
2019
2020         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
2021         predecessor in the first for-loop.
2022
2023 2004-11-21  Stan Shebs  <shebs@apple.com>
2024
2025         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
2026         UNION_TYPE case.
2027         (function_arg): Move darwin test up, sniff mode first for
2028         efficiency, test for union type.
2029
2030 2004-11-21  Dale Johannesen  <dalej@apple.com>
2031
2032         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
2033
2034 2004-11-21  Jeff Law  <law@redhat.com>
2035
2036         * tree-ssa.c (verify_use): Fix comment.
2037         (verify_phi_args): Check that the number of incoming edges matches
2038         the number of PHI arguments.  Check that each PHI argument is
2039         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
2040         dead or duplicated edges.  Clear e->aux earlier and avoid separate
2041         loop to clear e->aux and test for missed edges.
2042         (verify_ssa): Remove first walk over statements.  Move checking
2043         of PHI args into verify_phi_args.  Move checking of statements
2044         with aliased stores and V_MAY_DEFS into the remaining loop over
2045         the statements.  Register defs by walking through the formal
2046         SSA_NAME table.
2047
2048 2004-11-21  Roger Sayle  <roger@eyesopen.com>
2049
2050         PR middle-end/18520
2051         * dojump.c (compare_from_rtx): Clarify mode argument in function
2052         description.  Correct order of mode/cmp_mode arguments in call to
2053         simplify_relational_operation.  Check "tem" for COMPARISON_P.
2054
2055 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
2056             David Edelsohn  <edelsohn@gnu.org>
2057
2058         PR target/17836
2059         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
2060         synthetic vectors in memory.
2061         (function_arg_boundary): Align large synthetic vectors.
2062         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
2063
2064 2004-11-21  Jeff Law  <law@redhat.com>
2065
2066         * cfg.c (update_bb_profile_for_threading): Do not rescale the
2067         successor probabilities if they are not going to change.  Pull
2068         division out of loop if we do need to rescale successor probabilities.
2069
2070         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
2071         index of the destination block for the hash value rather than
2072         hashing a pointer.
2073
2074 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2075
2076         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
2077         checks for neither argument being an array or pointer (swapping
2078         the arguments if necessary), the array argument being a pointer to
2079         or array of functions and for -Wchar-subscripts warnings upfront.
2080
2081 2004-11-20  Jeff Law  <law@redhat.com>
2082
2083         * regrename.c (copyprop_hardreg_forward): Only search for a
2084         previously processed block if the current block only has one
2085         predecessor.
2086
2087 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
2088
2089         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
2090         typos.
2091         * config/arm/arm.c: Follow spelling conventions.
2092
2093 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
2094
2095         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
2096         a bit in tune_flags.
2097         (const_double_needs_minipool): Likewise.  Split most of the code out
2098         into ...
2099         (arm_const_double_inline_cost): ... new function here.
2100         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
2101         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
2102         word constants of length 2, 3 and 4 insns respectively.
2103         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
2104         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
2105         constraints.  Set insn lenghts accordingly.
2106
2107 2004-11-19  Jeff Law  <law@redhat.com>
2108
2109         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
2110         a hash table.  Extensive modifications throughout to support
2111         that change.
2112         (struct el): New.
2113         (struct local_info): New.
2114         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
2115         fields.
2116         (redirection_data): Now a hashtable.
2117         (redirection_data_hash, redirection_data_eq): New.
2118         (lookup_redirection_data, create_duplicates): New.
2119         (create_edge_and_update_destionation_phis): New.
2120         (fixup_template_block, redirect_edges): New.
2121         (thread_block): Use hash table traversals instead of loops over
2122         varray entries or incoming edge vectors.
2123
2124 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2125
2126         * basic-block.h (edge_def): Add dest_idx.
2127         * cfg.c (unchecked_make_edge): Initialize dest_idx.
2128         (remove_edge): Simplify the disconnection of an edge from its
2129         destination.
2130         (redirect_edge_succ): Likewise.
2131         * cfghooks.c (verify_flow_info): Check the consistency of
2132         dest_idx for each edge.
2133
2134 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
2135
2136         * simplify-rtx.c (simplify_ternary_operation): Use
2137         gen_int_mode.
2138
2139 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2140
2141         * tree-cfg.c (reinstall_phi_args): New.
2142         (tree_split_edge): Use it after redirecting an edge.  Don't
2143         modify PHI_ARG_EDGE.
2144
2145 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
2146
2147         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
2148         if checking is enabled.
2149
2150 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2151
2152         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
2153         too many nested scopes.
2154
2155 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2156
2157         PR tree-opt/18181
2158         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
2159         changed to suppoer uses-after-loop and to void creating flow paths
2160         that shouldn't exist.
2161         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
2162         Modified to fit the new peeling scheme. Avoid quadratic behavior.
2163         (slpeel_add_loop_guard): Takes additional argument.
2164         (slpeel_verify_cfg_after_peeling): New function.
2165         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
2166         documentation. Use 'exit-bb' instead of creating 'new-bb'.
2167         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
2168         the new peeling scheme.
2169         (copy_phi_nodes): Function removed. Its functionality moved to
2170         update_phis_for_duplicate_loop.
2171         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
2172         moved here. Added documentation. Modified to fit the new peeling scheme.
2173         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
2174         needed - done in slpeel_tree_peel_loop_to_edge.
2175         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
2176         (vect_do_peeling_for_loop_bound): Add documentation. Call
2177         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
2178         with additional argument.
2179         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
2180
2181         (vect_finish_stmt_generation): Avoid 80 column oveflow.
2182
2183 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2184
2185         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
2186         arguments removed.
2187         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
2188         without last two arguments. Update single_exit of loops.
2189         (vect_update_niters_after_peeling): Removed. Its functionality was
2190         moved to vect_do_peeling_for_alignment.
2191         (vect_do_peeling_for_loop_bound): New name for function previously
2192         called vect_transform_for_unknown_loop_bound.
2193         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
2194         instead of code that duplicates the same functionality.
2195         (vect_do_peeling_for_alignment): Functionality of
2196         vect_update_niters_after_peeling moved here.
2197         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
2198         previously named vect_transform_for_unknown_loop_bound - for both known
2199         and unknown loop bound cases.
2200
2201 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2202
2203         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
2204         previously called verify_loop_for_duplication. All conditions compacted
2205         into one compound condition. Removed debug dumps.
2206         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
2207         functionality moved to vect_can_advance_ivs_p, and some to
2208         vect_analyze_loop_form.
2209         (vect_can_advance_ivs_p): New function. Contains functionality that was
2210         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
2211         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
2212         (vect_analyze_operations): Call vect_can_advance_ivs_p and
2213         slpeel_can_duplicate_loop_p.
2214         (vect_get_loop_niters): Added documentation.
2215         (vect_analyze_loop_form): Check the loop entry always - not only in case
2216         of unknown loop bound. Create preheader and exit bb if necessary. Apply
2217         a check that used to take place in
2218         vect_analyze_loop_with_symbolic_num_of_iters.
2219         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
2220         Remove redundant call to rewrite_into_loop_closed_ssa.
2221         (vect_compute_data_refs_alignment): Removed obsolete comment.
2222
2223 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2224
2225         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
2226         function previously called tree_duplicate_loop_to_edge.
2227         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
2228         previously called tree_duplicate_loop_to_edge_cfg.
2229         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
2230         function name.
2231         (slpeel_update_phi_nodes_for_guard): Likewise.
2232         (slpeel_make_loop_iterate_ntimes): Likewise.
2233         (slpeel_add_loop_guard): Likewise.
2234         (allocate_new_names, free_new_names): Function declaration moved to top
2235         of file.
2236         (rename_use_op, rename_def_op): Likewise.
2237         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
2238         (vect_generate_tmps_on_preheader): Function declaration moved.
2239         (vect_transform_for_unknown_loop_bound): Added missing function
2240         declaration.
2241
2242 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
2243
2244         PR tree-opt/18507
2245         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
2246         Define a VEC(tree_on_heap) for head.
2247         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2248         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2249         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
2250         the VEC(tree_on_heap) function.  Also free it before returning.
2251         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2252         for block_defs_stack.
2253         (restore_currdefs_to_original_value): Use VEC_length instead of
2254         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2255         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2256         for block_defs_stack.
2257         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2258         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2259         for block_defs_stack.
2260         (ssa_register_new_def): Likewise.
2261         (ssa_rewrite_initialize_block): Likewise.
2262         (rewrite_finalize_block): Use VEC_length instead of
2263         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2264         (ssa_rewrite_finalize_block): Likewise.
2265         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2266         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
2267         (rewrite_blocks): Initialize block_defs_stack with
2268         the VEC(tree_on_heap) function.  Also free it before returning.
2269         (rewrite_ssa_into_ssa): Likewise.
2270
2271 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
2272
2273         * config/darwin.c (machopic_data_defined_p): return 1 for
2274         MACHOPIC_DEFINED_FUNCTION.
2275
2276 2004-11-19  Jeff Law  <law@redhat.com>
2277
2278         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
2279         arguments.
2280
2281 2004-11-19  Paul Brook  <paul@codesourcery.com>
2282
2283         PR target/17735
2284         * varasm.c (default_assemble_integer): Allow pointer-sized values.
2285         Expand comment.
2286
2287 2004-11-19  Nick Clifton  <nickc@redhat.com>
2288
2289         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
2290         zero_extension and lshiftrt insns.
2291         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
2292         where appropriate.
2293         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
2294         to handle bp and bn insn patterns with a zero_extend rtx
2295         inside them.
2296
2297 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
2298
2299         * config/arm/arm.md (generic_sched): Make const.
2300
2301 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2302
2303         * emit-rtl.c (classify_insn): Make it static.
2304         * rtl.h: Remove the corresponding prototype.
2305
2306         * integrate.c (has_func_hard_reg_initial_val,
2307         get_func_hard_reg_initial_val): Make them static.
2308         * integrate.h: Remove the corresponding prototypes.
2309
2310 2004-11-19  Ben Elliston  <bje@au.ibm.com>
2311
2312         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
2313         (dw2_asm_output_delta_sleb128): Likewise.
2314         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
2315         (dw2_asm_output_delta_sleb128): Likewise.
2316
2317 2004-11-19  Adam Nemet  <anemet@lnxw.com>
2318
2319         * tree-ssa-alias.c: Fix comment.
2320
2321 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2322
2323         * tree-outof-ssa.c: Fix a comment typo.
2324
2325 2004-11-19  Ben Elliston  <bje@au.ibm.com>
2326
2327         * predict.h (predict_insn): Remove extern declaration.
2328         * predict.c (predict_insn): Make static.
2329
2330 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
2331
2332         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
2333
2334 2004-11-18  Nicolas Pitre <nico@cam.org>
2335
2336         * config/arm/arm.c (const_double_needs_minipool): New function to
2337         determine if a CONST_DOUBLE should be pushed to the minipool.
2338         (note_invalid_constants): Use it.
2339
2340 2004-11-18  Paul Brook  <paul@codesourcery.com>
2341
2342         * config/arm/arm.c (target_float_switch): New variable..
2343         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
2344         target_float_switch.
2345         * config/arm/arm.h (target_float_switch): Declare.
2346         (ARM_FLAG_SOFT_FLOAT): Remove.
2347         (TARGET_SWITCHES): Remove hard-float and soft-float.
2348         (TARGET_OPTIONS): Add hard-float and soft-float.
2349         (TARGET_DEFAULT_FLOAT_ABI): Define.
2350         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
2351         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
2352         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
2353         * config/arm/netbsd-elf.h: Ditto.
2354         * config/arm/netbsd.h: Ditto.
2355         * config/arm/pe.h: Ditto.
2356         * config/arm/unknown-elf.h: Ditto.
2357         * config/arm/wince-pe.h: Ditto.
2358         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2359         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2360         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2361
2362 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2363
2364         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
2365         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
2366         altivec_lvx_4sf): Rename and replace with ...
2367         (altivec_lvx_<mode>): ... mode macro version.
2368         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
2369         altivec_stvx_4sf): Rename and replace with ...
2370         (altivec_stvx_<mode>): ... mode macro version.
2371         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
2372         (mov<mode>): ... mode macro version.
2373         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
2374         *movv4sf_internal1): Replace with ...
2375         (*mov<mode>_internal): ... mode macro version.
2376         (get_vrsave_internal, *set_vrsave_internal, *save_world,
2377         *restore_world): Unquote output statements.
2378         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
2379         altivec_expand_st_builtin): Adjust insn names.
2380
2381 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
2382
2383         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
2384         previous change.
2385         (rs6000_override_options): Likewise.
2386         (spe_build_register_parallel): Handle complex doubles on e500v2.
2387         (rs6000_spe_function_arg): Likewise.
2388         (function_arg): Likewise.
2389         (rs6000_function_value): Likewise.
2390         (rs6000_libcall_value): Likewise.
2391
2392 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
2393
2394         * ifcvt.c (find_if_block): Move the check for the number of edges
2395         above the loops checking for complex edges.
2396         Remove the counting of edges as we use EDGE_COUNT now.
2397
2398 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
2399
2400         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
2401         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
2402
2403 2004-11-18  Andreas Schwab  <schwab@suse.de>
2404
2405         * config/i386/i386.md (define_peephole2): Revert last change.
2406
2407 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
2408
2409         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
2410         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
2411
2412 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
2413
2414         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
2415         of FOR_EACH_BB.
2416
2417 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
2418
2419         * Makefile.in (macro_list): Depend on s-macro_list.
2420         (s-macro_list): New target.
2421
2422 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2423
2424         PR target/17107
2425         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
2426         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
2427         (fold_range_test): Adjust.
2428         (fold_truthop): Use it.
2429         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
2430         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
2431
2432 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
2433
2434         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
2435         insn split constraint.
2436         (define_peephole2): Remove unneeded "&& 1" from peephole2
2437         constraints.
2438
2439 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2440
2441         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
2442         element for bsi_prev; use @findex instead.
2443
2444 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2445
2446         * opts.h (add_input_filename): Remove extern declaration.
2447         * opts.c (add_input_filename): Make static.
2448
2449 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
2450
2451         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
2452         ATTRIBUTE_UNUSED.
2453
2454 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
2455
2456         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
2457         * system.h: Poison it.
2458         * doc/tm.texi: Delete its documentation.
2459
2460 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2461             Mark Mitchell  <mark@codesourcery.com>
2462
2463         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
2464         * config/i386/i386.c (i386_solaris_elf_named_section): New
2465         function.
2466         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
2467         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
2468         64-bit.
2469         (ASM_QUAD): Don't undefine for biarch targets.
2470         * config/i386/t-sol2: Introduce multilib support.
2471
2472 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2473
2474         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
2475
2476 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2477
2478         * cgraph.h: Replace "it's" with "its" throughout.
2479
2480 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2481
2482         * doc/rtl.texi (Flags): Grammar fix.
2483
2484 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
2485
2486         * expmed.c (alg_code): Add alg_unknown.
2487         (alg_hash_entry): New.
2488         (NUM_ALG_HASH_ENTRIES): Likewise.
2489         (alg_hash): Likewise.
2490         (synth_mult): Cache the result into alg_hash.
2491
2492 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
2493
2494         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
2495         config/rs6000/libgcc-ppc64.ver.
2496
2497 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
2498
2499         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
2500         checking if an unconditional return is followed by a barrier.
2501
2502         * jump.c (condjump_p): Remove unreachable code.
2503
2504         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
2505         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
2506         tree-ssa-live.h, tree.h: Remove unused prototypes.
2507
2508 2004-11-17  Jeff Law  <law@redhat.com>
2509
2510         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
2511         (edge_to_cases_elt): Renamed from edge_to_case_leader.
2512         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
2513         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
2514         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
2515         (get_cases_for_edge): New function.
2516         (start_recording_case_labels, end_recording_case_labels): Similarly.
2517         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
2518         chain equivalent CASE_LABEL_EXPRs together.
2519         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
2520         (make_switch_expr_edges): Do not record edge/cases here.
2521         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
2522         (split_critical_edges): Record cases around the edge splitting code.
2523         (cleanup_dead_labels): Use CASE_LABEL again.
2524         (tree_redirect_edge_and_branch): If we have a mapping from edge
2525         to cases, use it to handle redirections.  Else do it the slow way.
2526         * tree.h (CASE_LEADER_OR_LABEL): Kill.
2527         (CASE_LABEL): Revert to just looking at the tree's second operand.
2528         * tree.c (get_case_label): Kill.
2529
2530 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
2531
2532         PR tree-optimization/18307
2533         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
2534         'orig' are the same node.
2535         (collect_points_to_info_r): Do not call merge_pointed_to_info
2536         when the PHI argument is identical to the LHS.
2537
2538 2004-11-17  Steven Bosscher  <stevenb@suse.de>
2539
2540         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
2541         to insert the exit or entry block.
2542         (ssa_prop_init): Use add_control_edge to seed the algorithm.
2543
2544 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
2545
2546         * mkmap-flat.awk, mkmap-symver.awk: If the last version
2547         assigned to a symbol was '%exclude', do not emit it anywhere.
2548         If leading_underscore is true, prefix all symbols from the
2549         version scripts with a leading underscore before comparing
2550         them with nm output or emitting them.  Remove support for dot
2551         symbols.
2552         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
2553         (SHLIB_MAPFILES): Use libgcc-std.ver.
2554         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
2555         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
2556         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
2557         libgcc-excl.ver and libgcc-glibc.ver.
2558
2559         * config/sh/libgcc-excl.ver: New file.
2560         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
2561
2562 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
2563
2564         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
2565         the test when the edge has the opposite meaning, not when
2566         the first argument is invariant.
2567
2568 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
2569
2570         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
2571         doubles.
2572         (rs6000_complex_function_value): Handle e500 v2 variant.
2573
2574 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
2575
2576         Fix PR tree-optimization/18519
2577
2578         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
2579         * tree-pass.h: Add TODO_cleanup_cfg.
2580         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
2581         (ccp_finalize): Remove call to cleanup_cfg.
2582         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
2583         (pass_cd_dce): Ditto.
2584         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
2585         dump_function_to_file.
2586         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
2587         to cleanup_cfg.
2588         (pass_ch): Add TODO_cleanup_cfg.
2589         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
2590         cleanup_cfg.
2591         (pass_loop_done): Add TODO_cleanup_cfg.
2592         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
2593         (tree_ssa_phiopt): Remove call to cleanup_cfg.
2594
2595 2004-11-16  Devang Patel  <dpatel@apple.com>
2596
2597         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
2598
2599 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
2600
2601         * expmed.c, ra-colorize.c: Fix comment typos.
2602
2603         * doc/tm.texi: Fix typos.
2604
2605 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2606             Mark Mitchell  <mark@codesourcery.com>
2607
2608         PR target/6123
2609         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
2610         __pic__ if PIC.
2611
2612 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
2613
2614         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
2615         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
2616
2617 2004-11-16  Devang Patel  <dpatel@apple.com>
2618
2619         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
2620
2621 2004-11-16  Eric Christopher  <echristo@redhat.com>
2622
2623         * config/mips/mips.c: Use rtl _P predicates.
2624         * config/mips/mips.h: Ditto.
2625         * config/mips/mips.md: Ditto.
2626
2627 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
2628
2629         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
2630         the pattern.
2631
2632 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2633
2634         * config/s390/s390.c (s390_cc_modes_compatible): New function.
2635         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
2636
2637 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2638
2639         PR target/18447
2640         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
2641         before and after the insns for getting GOT address in non-PIC
2642         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
2643         is enabled.
2644
2645 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2646
2647         * gcc/cse.c (struct change_cc_mode_args): New structure.
2648         (cse_change_cc_mode_insn): New function.
2649         (cse_change_cc_mode): Use validate_change to perfom changes.
2650         (cse_change_cc_mode_insns, cse_condition_code_reg):
2651         Call cse_change_cc_mode_insn.
2652
2653 2004-11-16  Steven Bosscher  <stevenb@suse.de>
2654
2655         * stack.h: Remove.
2656
2657 2004-11-16  Steven Bosscher  <stevenb@suse.de>
2658
2659         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
2660
2661 2004-11-15  Dale Johannesen  <dalej@apple.com>
2662
2663         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
2664
2665 2004-11-15  Dale Johannesen  <dalej@apple.com>
2666
2667         * profile.c (compute_branch_probabilities):  Prevent
2668         crash with EH in RTL-based profiling.
2669
2670 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
2671
2672         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
2673         COND_EXPR_COND.
2674         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
2675         * tree-ssa-dom.c (thread_across_edge): Likewise.
2676         * tree-vectorizer.c (vect_transform_loop_bound): Replace
2677         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
2678         COND_EXPR_ELSE.
2679
2680         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
2681         (tree_flow_call_edges_add): Update the call to
2682         bsi_commit_edge_inserts.
2683         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
2684         * profile.c (branch_prob): Likewise.
2685         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
2686         * tree-sra.c (scalarize_function): Likewise.
2687         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
2688         * tree-ssa-pre.c (fini_pre): Likewise.
2689         * tree-flow.h: Update the prototype for
2690         bsi_commit_edge_inserts.
2691
2692 2004-11-15  Eric Christopher  <echristo@redhat.com>
2693
2694         * sched-deps.c (set_sched_group_p): Delete.
2695         (delete_all_dependencies): New function.
2696         (fixup_sched_groups): Use. New function.
2697         (sched_analyze_insn): Use.
2698
2699 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2700
2701         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
2702         RROTATE_EXPR or unknown code.
2703         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
2704         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
2705         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
2706         or unknown code.
2707
2708 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2709
2710         PR c/18498
2711         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
2712         after processing the declarator.
2713
2714 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
2715
2716         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
2717         vec_duplicate.
2718         (altivec_vspltb): Same.
2719         (altivec_vspltw): Same.
2720         (altivec_vspltisb): Same.
2721         (altivec_vspltish): Same.
2722         (altivec_vspltisw): Same.
2723         (altivec_vspltisw_v4sf): Same.
2724         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
2725         UNSPEC_VSPLTISH.
2726         Move "End of vector xor's" comment to the right place.
2727
2728 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
2729
2730         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
2731         instead of nonimmediate_operand.
2732
2733 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2734
2735         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
2736         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
2737         * config/sol2.c (solaris_output_init_fini): Update calls to
2738         ASM_OUTPUT_CALL.  Include "rtl.h".
2739
2740 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2741
2742         * config/sol2-c.c (cmn_err_char_table): Add "p".
2743
2744 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2745
2746         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
2747         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
2748
2749 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2750
2751         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
2752         within the multilib directory.
2753
2754 2004-11-15  Nick Clifton  <nickc@redhat.com>
2755
2756         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
2757         builtin assert of cpu=xstormy16.
2758
2759 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
2760
2761         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
2762         variable.
2763
2764 2004-11-14  Richard Henderson  <rth@redhat.com>
2765
2766         PR 18480
2767         * calls.c (struct arg_data): Add parallel_value.
2768         (precompute_register_parameters): Set it.
2769         (load_register_parameters): Use it.
2770         (store_one_arg): Also set it here.
2771
2772 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
2773
2774         PR tree-optimization/18431
2775         * fold-const.c (associate_trees): Do not produce x + 0.
2776         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
2777         (fold): Use them.
2778         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
2779         Moved ...
2780         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
2781         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
2782
2783 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
2784
2785         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
2786
2787 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
2788
2789         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
2790         value-prof.c: Fix comment typos.
2791
2792 2004-11-14  Stan Shebs  <shebs@apple.com>
2793
2794         Basic ABI changes for passing structs by value in 64-bit Darwin.
2795         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
2796         (rs6000_override_options): Set it for 64-bit Darwin.
2797         (rs6000_parse_abi_options): Add testing options to change it.
2798         (rs6000_return_in_memory): Test whether the type is one
2799         that can be passed in registers.
2800         (darwin64_function_arg_advance): New.
2801         (function_arg_advance): Call it, plus add recursion depth
2802         argument and test when counting off arguments.
2803         (rs6000_darwin64_function_arg): New.
2804         (function_arg): Call it.
2805         (setup_incoming_varargs): Add argument to function_arg_advance.
2806         (rs6000_darwin64_function_value): New.
2807         (rs6000_function_value): Call it.
2808         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
2809         * config/rs6000/rs6000-protos.h: Update decl of
2810         function_arg_advance.
2811
2812 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
2813
2814         PR c/17279
2815         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
2816         support TImode before adding __int128_t and __uint128_t types.
2817
2818 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
2819
2820         PR tree-opt/18400
2821         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
2822         (vect_transform_loop_bound): Set loop->nb_iterations.
2823
2824 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
2825             Andrew Pinski  <pinskia@physics.uc.edu>
2826
2827         PR tree-opt/18425
2828         * tree-vectorize.c (vect_build_loop_niters): Do not insert
2829         NULL into the instruction stream. Initialize new_bb to NULL.
2830         (vect_update_ivs_after_vectorizer): Likewise.
2831         (vect_gen_niters_for_prolog_loop): Likewise.
2832
2833 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
2834
2835         PR tree-optimization/18431
2836         * tree-flow.h (stmt_references_memory_p): Declare.
2837         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
2838         * tree-ssa.c (stmt_references_memory_p): New function.
2839
2840 2004-11-14  Andreas Schwab  <schwab@suse.de>
2841
2842         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
2843         $(EXPR_H).
2844
2845 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
2846
2847         * c-common.c (walk_stmt_tree): Remove.
2848         * c-common.h: Remove the corresponding prototype.
2849
2850         * emit-rtl.c (push_to_full_sequence): Remove.
2851         * rtl.h: Remove the corresponding prototype.
2852
2853         * cselib.c, expr.c: Fix comment typos.
2854
2855 2004-11-13  Richard Henderson  <rth@redhat.com>
2856
2857         * calls.c (precompute_register_parameters): Force all PARALLELs
2858         into pseudo registers.
2859         (load_register_parameters): Copy PARALLELs into hard registers.
2860         * function.c (assign_parm_setup_block): Copy PARALLELS into
2861         pseudo registers.  Do emit_group_store in conversion_insns.
2862         * expr.c (emit_group_load_1): Rename from emit_group_load, take
2863         tmps as an argument.  Move final copy loop ...
2864         (emit_group_load): ... here.  New function.
2865         (emit_group_load_into_temps, emit_group_move_into_temps): New.
2866         * expr.h: Declare them.
2867
2868 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
2869
2870         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
2871         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
2872         with PHI_CHAIN where appropriate.
2873
2874 2004-11-13  Dale Johannesen  <dalej@apple.com>
2875
2876         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
2877         (tree_block_label): Ditto.
2878         (flush_pending_stmts): Ditto.
2879         (insert_edge_copies): Ditto.
2880         (expr_invariant_in_loop_p): Ditto.
2881         (TDF_USE_OPS): Parenthesize definition.
2882         (TDF_USE_VOPS): Ditto.
2883
2884 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
2885
2886         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
2887         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
2888         (atoll): Declare.
2889         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
2890
2891 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
2892
2893         * config/i386/i386.c (override_options): Move loop to set default
2894         tuning to correct place.
2895
2896 2004-11-13  Zak Kipling  <zak@transversal.com>
2897
2898         PR target/18300
2899         * config/i386/i386.c (classify_argument): Fix infinite loop when
2900         passing object with 3 or more base classes by value.
2901
2902 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2903
2904         * doc/md.texi (constraints) <% modifier>: Mention that it is
2905         useless when the two alternatives are strictly identical.
2906
2907 2004-11-13  Richard Henderson  <rth@redhat.com>
2908
2909         * expmed.c (extract_split_bit_field): Temporarily disable call to
2910         extract_force_align_mem_bit_field.
2911
2912 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
2913
2914         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
2915         formatting.
2916
2917         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
2918         lambda-code.c, postreload.c, predict.c, tree-sra.c,
2919         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
2920
2921 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
2922
2923         * doc/install.texi (automake): Correctly document that everything now
2924         will use automake 1.9.3.
2925
2926 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
2927
2928         PR target/18347
2929         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
2930         TImode.  Sorry for other non-complex larger-than-64-bit modes.
2931         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
2932
2933 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
2934
2935         * doc/install.texi (automake): Document that everything now uses 1.9.
2936
2937 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2938
2939         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
2940         previous loads.
2941
2942 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
2943
2944         * tree.h: Fix comment typos.
2945
2946 2004-11-13  Steven Bosscher  <stevenb@suse.de>
2947
2948         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
2949         HARD_REGISTER_NUM_P.
2950
2951         * cselib.c (new_cselib_val): Make comment correct and more detailed.
2952         * flow.c (mark_set_1): Likewise.
2953
2954         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
2955         duplicate_eh_regions): Remove.
2956         * except.h (duplicate_eh_regions): Remove prototype.
2957         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
2958         global_const_equiv_varray): Remove.
2959         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
2960         global_const_equiv_varray, set_label_in_map): Remove prototypes,
2961         extern declaration, and #define.
2962         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
2963         (struct inline_remap): Remove.
2964         * varray.c (struct element): Remove entry for const_equiv_data.
2965         * varray.h (struct const_equiv_data): Remove.
2966         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
2967         (union varray_data_tag) <const_equiv>: Remove.
2968         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
2969         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
2970
2971         * regstack.c (record_label_references): Remove unused function.
2972
2973         * rtl.def (VALUE): Update comment.
2974         (LABEL_REF): Remove unused operand 2.
2975         * rtl.h (struct rtx_def): Update for removed accessor macros.
2976         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
2977         REG_LOOP_TEST_P): Remove.
2978         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
2979         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
2980         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
2981
2982 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
2983             Eric Botcazou  <ebotcazou@libertysurf.fr>
2984
2985         PR target/18230
2986         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
2987         patterns.
2988         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
2989         (V32I): New macro for 32-bit modes.
2990         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
2991         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
2992         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
2993         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
2994         one_cmpldi_sp64): Use V64I instead of DI.
2995         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
2996         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
2997         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
2998         (nandv64i_vis, nandv32i_vis): New patterns.
2999
3000 2004-11-12  Mike Stump  <mrs@apple.com>
3001
3002         * Makefile.in: Add html support.
3003         * java/Make-lang.in: Likewise.
3004         * fortran/Make-lang.in: Likewise.
3005         * treelang/Make-lang.in: Likewise.
3006         * doc/install.texi: Likewise.
3007         * doc/makefile.texi: Likewise.
3008         * doc/sourcebuild.texi: Likewise.
3009
3010 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3011
3012         * tree-ssa-loop-manip.c: Fix a comment typo.
3013
3014 2004-11-12  Mike Stump  <mrs@apple.com>
3015
3016         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
3017         renaming this node to Concept Index.
3018         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
3019         to more closely match gcc.texi.
3020
3021 2004-11-12  Jeff Law  <law@redhat.com>
3022
3023         * tree-cfg.c (hashtab.h): Include.
3024         (struct edge_to_case_leader_elt): New structure.
3025         (edge_to_case_leader): New.
3026         (edge_to_case_leader_hash): New hashtable hasing function.
3027         (edge_to_case_leader_eq): New hashtable equality function.
3028         (record_switch_edge): New function.
3029         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
3030         (make_switch_expr_edges): Build the edge-to-case-leader
3031         hash table.  Tear down the hash table when we're done.
3032         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
3033         CASE_LABEL.
3034         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
3035         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
3036         to use new concept of case leaders to reduce overhead of
3037         redirecting outgoing edges from switch statements.
3038         * tree.c (get_case_label): New function.
3039         * tree.h (CASE_LABEL): Define in terms of get_case_label.
3040         (CASE_LEADER_OR_LABEL): Define.
3041
3042 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3043
3044         * varasm.c (output_addressed_constants): For CONST_DECLs,
3045         output the initializer if present.
3046
3047 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3048
3049         * config/rs6000/darwin.h: Fix confusing typo in comment.
3050
3051 2004-11-12  Devang Patel  <dpatel@apple.com>
3052
3053         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
3054
3055 2004-11-12  Devang Patel  <dpatel@apple.com>
3056
3057         * tree-if-conv.c (clean_predicate_lists): Use loop header
3058         and latch directly.
3059
3060 2004-11-12  Richard Henderson  <rth@redhat.com>
3061
3062         PR 17778
3063         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3064         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3065         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3066         * config/i386/i386-modes.def (XF): Use it.
3067
3068 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
3069
3070         * Makefile.in (macro_list): Use move-if-change to avoid spurious
3071         rebuilds.
3072
3073 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
3074
3075         PR c++/18416
3076         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
3077         when deciding whether to pass a variable to
3078         cgraph_varpool_finalize_decl or assemble_variable.
3079         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
3080
3081 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
3082
3083         * tree-vectorizer.c: Fix a comment typo.
3084
3085 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3086
3087         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
3088
3089 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
3090
3091         * tree-scalar-evolution.c (analyzable_condition): Remove
3092         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
3093
3094 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
3095
3096         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3097         Remove m505/roe multilib variant.
3098
3099 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3100
3101         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
3102         to load from the stack.
3103
3104 2004-11-12  Richard Henderson  <rth@redhat.com>
3105
3106         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
3107         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
3108         * toplev.h (FL2T__): Remove.
3109         (CLZ_HWI): Rename from FL2T_CLZ__.
3110         (CTZ_HWI): New.
3111         (floor_log2): Simplify.
3112         (exact_log2): New.
3113
3114 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3115
3116         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
3117         compute the first overlapping iterations.
3118
3119 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3120
3121         PR middle-end/18005
3122         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
3123         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
3124
3125 2004-11-12  Steven Bosscher  <stevenb@suse.de>
3126
3127         PR tree-optimization/18419
3128         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
3129         pointer set instead of a bitmap.
3130         (walk_use_def_chains): Create, pass and clean up that pointer_set.
3131
3132         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
3133         field an sbitmap.
3134         (init_alias_info): Allocate and zero it here.
3135         (delete_alias_info): Delete it here.
3136         (collect_points_to_info_for): Use it.
3137
3138 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3139
3140         * alias.c (record_alias_subset, addr_side_effect_eval):
3141         Make them static.
3142         * alias.h: Remove the prototype for record_alias_subset.
3143         * expr.h: Remove the commented-out prototype for
3144         record_alias_subset.
3145         * rtl.h: Remove the prototype for addr_side_effect_eval.
3146
3147         * cfglayout.c (choose_inner_scope): Make it static.
3148         * rtl.h: Remove the corresponding prototype.
3149
3150         * cfgloopmanip.c (update_single_exits_after_duplication,
3151         unloop): Make them static.
3152         * cfgloop.h: Remove the corresponding prototypes.
3153
3154         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
3155         Make them static.
3156         * c-tree.h: Remove the corresponding prototypes.
3157
3158         * explow.c (round_push): Make it static.
3159         * expr.h: Remove the corresponding prototype.
3160
3161         * varasm.c (get_named_section_flags, decl_tls_model): Make
3162         them static.
3163         * output.h: Remove the prototype for get_named_section_flags.
3164         * tree.h: Remove the prototype for decl_tls_model.
3165
3166 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3167
3168         * function.c (expand_function_end): Remove an "if" statement
3169         that always triggers.
3170         * stmt.c (expand_null_return_1): Likewise.
3171
3172 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
3173
3174         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
3175         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
3176         CLASS_MAX_NREGS): Likewise.
3177
3178 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
3179
3180         PR tree-optimization/17742
3181         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
3182         MINUS_EXPR correctly.
3183
3184 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
3185
3186         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3187         Give up as soon as the evolution is known not computable.
3188
3189 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3190
3191         PR target/16457
3192         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
3193         mask64_1or2_operand.
3194         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
3195         to spot rlwinm opportunities.
3196         (and64_2_operand): Use mask_1or2_operand.
3197         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
3198
3199 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
3200
3201         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
3202         (vect_update_ivs_after_vectorizer): Update function documentation.
3203         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
3204
3205 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3206
3207         * config/arm/arm.c: Fix a comment typo.
3208
3209 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3210
3211         * bitmap.h (nBITMAP_WORD_BITS): Remove.
3212         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
3213         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
3214         unnecessary casts.
3215         (bitmap_first_set_bit): Return unsigned, use ctzl.
3216         (bitmap_last_set_bit): Remove.
3217         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
3218         unsigned.
3219         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
3220         remove special case code for two word elements.
3221         (bitmap_last_set_bit): Remove.
3222         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
3223         bitmap_first_set_bit with bitmap_empty_p.
3224         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
3225         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
3226         bitmap_last_bit_set.
3227
3228 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3229
3230         PR target/16796
3231         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
3232
3233         PR target/16458
3234         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
3235         unsigned equality compare when we know the operands are unsigned.
3236
3237 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
3238
3239         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
3240         __PIC__ and __pic__ only if TARGET_ABICALLS.
3241         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
3242         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
3243         -KPIC only if not -mno-abicalls.
3244
3245         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
3246         * config/sparc/linux.h, config/sparc/linux64.h
3247         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
3248
3249         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
3250         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
3251         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
3252         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
3253
3254 2004-11-11  Paul Brook  <paul@codesourcery.com>
3255
3256         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
3257         register if current_function_uses_pic_offset_table is set.
3258
3259 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
3260
3261         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
3262         Change multi-instruction sequences to new attribute.
3263         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
3264         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
3265         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
3266
3267 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
3268
3269         * tree-data-ref.c (build_classic_dist_vector): If either loop
3270         is outside of the nest we asked about, the dependence can't
3271         matter.
3272         (build_classic_dir_vector): Ditto.
3273
3274 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
3275
3276         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
3277         right order.
3278         (force_var_cost): Determine cost of addition and multiplication more
3279         precisely.
3280         (get_computation_cost_at): Add cost for computing address elements to
3281         the final cost.
3282
3283         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
3284         one of the arguments of MINUS_EXPR is an address.
3285         (split_address_to_core_and_offset): New function.
3286         (ptr_difference_const): Handle case when one of the operands is a
3287         pointer.
3288         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
3289         (ptr_difference_cost): Pass addresses instead of objects to
3290         ptr_difference_const.
3291
3292 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3293
3294         * tree.c (tree_check_failed): Emit general error if the list of
3295         node types is empty.
3296
3297 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3298
3299         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
3300         argument.  When the union is passed in the 6th slot, build a
3301         PARALLEL with only one element.
3302         (function_arg): Adjust call to function_arg_union_value.
3303         (function_value): Likewise.
3304
3305 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
3306
3307         PR tree-optimization/17892
3308         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
3309         MINUS_EXPR operator.
3310
3311 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
3312
3313         PR target/18230
3314         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
3315         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
3316
3317 2004-11-10  Steven Bosscher  <stevenb@suse.de>
3318
3319         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
3320         (struct basic_block_def): Remove local_set and cond_local_set
3321         fields.  Update comment for global_live_at_start.
3322         * flow.c (calculate_global_regs_live): Allocate local_sets and
3323         cond_local_sets here as arrays of bitmaps previously stored in
3324         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
3325         obstack allocated bitmaps.
3326
3327 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3328
3329         PR target/18380
3330         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
3331         hidden.
3332
3333         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
3334
3335 2004-11-09  Jeff Law  <law@redhat.com>
3336
3337         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
3338         argument holding last unvisited block.  Start search for
3339         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
3340         (connect_infinite_loops_to_exit): Supply last unvisited block
3341         to flow_dfs_compute_reverse_execute.
3342
3343 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
3344
3345         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
3346         doubles.
3347         (floatunssidf2): Same.
3348         (floatsidf2): Same.
3349         ("extendsfdf2"): New expander.
3350         (*extendsfdf2_fpr): Rename.
3351         (*truncdfsf2_fpr): Same.
3352         (*negdf2_fpr): Same.
3353         (*absdf2_fpr): Same.
3354         (*nabsdf2_fpr): Same.
3355         (*adddf3_fpr): Same.
3356         (*subdf3_fpr): Same.
3357         (*muldf3_fpr): Same.
3358         (*divdf3_fpr): Same.
3359
3360         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
3361         ("spe_fix_truncdfsi2"): Same.
3362         (spe_floatunssidf2): Same.
3363         (spe_floatsidf2): Same.
3364
3365 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3366
3367         PR c/18322
3368         * c-common.c (fname_decl): Don't use line number of decl in
3369         diagnostic.
3370
3371 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3372
3373         * config/s390/s390-protos.h (s390_pool_operand): Remove.
3374         * config/s390/s390.c (s390_pool_operand): Likewise.
3375         (s390_extra_constraint_str): Handle 'B' constraints.
3376         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
3377         * config/s390/s390.md: Document 'B' constraints.
3378         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
3379         s390_pool_operand to prevent insns with two literal pool
3380         references.  Make pattern commutative.
3381         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
3382         'B' constraint instead of s390_pool_operand.
3383
3384 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3385
3386         * tree-cfg.c (create_bb): Remove unnecessary memset.
3387
3388 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3389
3390         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
3391         (thread_block): Call flush_pending_stmt instead of
3392         copy_phis_to_block.
3393
3394 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3395
3396         * loop-iv.c (iv_number_of_iterations): Make it static.
3397         * cfgloop.h: Remove the corresponding prototype.
3398
3399 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3400
3401         * function.c (combine_temp_slots, assign_parms,
3402         expand_pending_sizes): Make them static.
3403         * tree.h: Remove the corresponding prototypes.
3404
3405 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3406
3407         * emit-rtl.c (copy_most_rtx): Remove.
3408         * rtl.h: Remove the corresponding prototype.
3409
3410 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3411
3412         * cfgloop.c (flow_loops_update): Remove.
3413         * cfgloop.h: Remove the corresponding prototype.
3414
3415 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3416
3417         * conflict.c (mark_reg, conflict_graph_compute): Remove.
3418         * basic-block.h: Remove the prototype for
3419         conflict_graph_compute.
3420
3421 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3422
3423         * tree-if-conv.c (add_to_dst_predicate_list): Change the
3424         second argument to basic_block.
3425         (tree_if_convert_cond_expr): Update call sites.
3426
3427 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3428
3429         * fold-const.c (pedantic_non_lvalue): Make it static.
3430         * tree.h: Remove the corresponding prototype.
3431
3432 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3433
3434         * optabs.c (prepare_operand): Make it static.
3435         * optabs.h: Remove the corresponding prototype.
3436
3437 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3438
3439         * reload1.c (reloads_conflict, gen_reload): Make them static.
3440         * reload.h: Remove the corresponding prototypes.
3441
3442 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3443
3444         * reload.c (refers_to_mem_for_reload_p,
3445         refers_to_regno_for_reload_p): Make them static.
3446         * reload.h: Remove the corresponding prototypes.
3447
3448 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
3449             Eric Botcazou  <ebotcazou@libertysurf.fr>
3450
3451         PR target/18230
3452         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
3453         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
3454         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
3455         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
3456         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
3457         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
3458         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
3459         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
3460         MODE_VECTOR_INT modes.
3461         (sparc_extra_constraint_check): Add new constraint 'Y'.
3462         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
3463         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
3464         (V64): New mode macro for 64-bit modes.
3465         (movsf): Use V32 for mode instead of SF.
3466         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
3467         alongside 'G' constraint.
3468         (movdf): Use V64 for mode instead of DF.
3469         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
3470         of DF.  Add 'Y' constraint alongside 'G' constraint.
3471         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
3472         instead of DF.
3473
3474 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3475
3476         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
3477         integer NEG and ABS.
3478         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
3479         ("*negdi2_31"): Reimplement using a splitter.
3480         ("*negdi2_cc", "*negdi2_cconly"): New insns.
3481         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
3482         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
3483         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
3484         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
3485         ("*absdi2_cc", "*absdi2_cconly"): New insns.
3486         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
3487         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
3488         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
3489         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
3490         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
3491         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
3492         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
3493         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
3494         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
3495
3496 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3497
3498         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
3499         when eliminating an UNSPEC_CMPINT.
3500         (s390_secondary_input_reload_class): Fix test for CC register reload.
3501         (s390_secondary_output_reload_class): Likewise.
3502         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
3503         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
3504         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
3505         insn patterns with splitters.
3506
3507 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
3508
3509         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
3510         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
3511
3512 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3513
3514         * tree-phinodes.c (phi_reverse): New.
3515         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
3516         Use it.
3517         * tree-flow.h: Add a prototype for phi_reverse.
3518
3519 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3520
3521         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3522
3523 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
3524
3525         PR pch/14940
3526         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
3527         definitions.
3528
3529 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3530
3531         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
3532         instead of "arg" in diagnostics.
3533
3534 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3535
3536         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
3537         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
3538         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
3539         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
3540         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
3541         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
3542         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
3543         config/iq2000/iq2000.c, config/m32r/m32r.c,
3544         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
3545         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
3546         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
3547         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
3548         config/sh/symbian.c, config/stormy16/stormy16.c,
3549         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
3550         and %> as appropriate.  Use %' as apostrophe in diagnostics where
3551         applicable.  Use %< and %> in place of '' quotes where applicable.
3552         Use %qs in place of %<%s%>.  Consistently quote __builtin function
3553         names.
3554
3555 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
3556
3557         * gdbinit.in (pbb, pbm): New macros.
3558
3559 2004-11-08 Jeff Law  <law@redhat.com>
3560
3561         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
3562         implementing it inline.
3563
3564         * cfganal.c (find_edge): Search pred->succs or succ->preds,
3565         whichever is shorter.
3566
3567 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3568
3569         * passes.c (rest_of_handle_jump): Remove dead code.
3570
3571 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3572
3573         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
3574         the last used element in the worklist.
3575
3576 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3577
3578         * tree-inline.c (remap_save_expr): Make it static.
3579         * tree-inline.h: Remove the corresponding prototype.
3580
3581 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3582
3583         * tree-ssa-loop-niter.c (upper_bound_in_type,
3584         lower_bound_in_type): Make them static.
3585         * tree.h: Remove the corresponding prototypes.
3586
3587 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3588
3589         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
3590         static.
3591         * tree-ssa-live.h: Remove the corresponding prototypes.
3592
3593 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3594
3595         * tree-if-conv.c (tree_if_conversion): Make it static.
3596         * tree-flow.h: Remove the corresponding prototype.
3597
3598 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3599
3600         * tree-ssa-operands.c (build_ssa_operands): Make it static.
3601         * tree-flow.h: Remove the corresponding prototype.
3602
3603 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3604
3605         PR tree-opt/18299
3606         * tree-inline.c (copy_body_r): Change "t = t" to empty
3607         statement instead of "t".
3608
3609 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3610
3611         * modulo-sched.c (create_partial_schedule,
3612         free_partial_schedule, reset_partial_schedule,
3613         ps_add_node_check_conflicts, rotate_partial_schedule): Make
3614         them static.
3615
3616 2004-11-08  Richard Henderson  <rth@redhat.com>
3617
3618         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
3619         the end of a page.
3620
3621 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3622
3623         * sched-deps.c (add_insn_mem_dependence): Make it static.
3624         * sched-int.h: Remove the corresponding prototypes.
3625
3626 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3627
3628         * flow.c (allocate_bb_life_data): Make it static.
3629         * basic-block.h: Remove the corresponding prototype.
3630
3631 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3632
3633         * calls.c (split_complex_values, split_complex_types): Make
3634         them static.
3635         * expr.h: Remove the corresponding prototypes.
3636
3637 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
3638
3639         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
3640         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
3641
3642 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3643
3644         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
3645         statements that always trigger.
3646
3647 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3648
3649         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
3650         tree-scalar-evolution.c, tree-ssa-loop-im.c,
3651         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
3652         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
3653         appropriate.
3654
3655 2004-11-08  Ben Elliston  <bje@au.ibm.com>
3656
3657         * cgraph.h (cgraph_calls_p): Remove.
3658         * cgraph.c (cgraph_calls_p): Likewise.
3659
3660         * varray.h (varray_copy): Remove.
3661         * varray.c (varray_copy): Likewise.
3662
3663 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
3664
3665         PR target/18269
3666         * config/darwin.c (machopic_indirect_data_reference):
3667         Call gen_macho_high and gen_macho_low instead of
3668         checking the mode and calling gen_macho_high_di directly.
3669         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3670         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
3671         to darwin.md.
3672         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
3673         load_macho_picbase, macho_low, macho_high): Removed.
3674         (builtin_setjmp_receiver): Call gen_macho_high and
3675         gen_macho_low instead of checking the mode and calling
3676         gen_macho_high_di directly.
3677         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
3678         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
3679         Moved from rs6000.md.
3680         (macho_high): New expander.
3681         (macho_high_si): Renamed version of macho_high from rs6000.md.
3682         (macho_low): New expander.
3683         (macho_low_si): Renamed version of macho_low from rs6000.md.
3684         (load_macho_picbase): New expander.
3685         (load_macho_picbase_si): Renamed version of load_macho_picbase
3686         from rs6000.md.
3687         (macho_correct_pic): New expander.
3688         (macho_correct_pic_si): Renamed version of macho_correct_pic
3689         from rs6000.md.
3690
3691 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
3692
3693         * c-decl.c (finish_struct): Use complete sentences for diagnostic
3694         for structures or unions with no members or named members.
3695
3696 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
3697
3698         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
3699         taking address of bit-field by assertion.
3700
3701 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
3702
3703         * config/s390/s390.md (attribute "op_type"): Default to "NN".
3704         (attribute "atype"): Default to "agen".
3705         (attribute "length"): Default to 6.
3706         (define_asm_attibutes): Remove.
3707         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
3708         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
3709         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
3710         Do not set type attribute to "cs" where already default.
3711         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
3712         "*negdi2_31"):
3713         Do not set type attribute to "other" where already default.
3714         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
3715         "*strlendi", "*strlensi",
3716         "*movmem_long_64", "*movmem_long_31",
3717         "*clrmem_long_64", "*clrmem_long_31",
3718         "*cmpmem_long_64", "*cmpmem_long_31",
3719         "*cmpint_si", "*cmpint_di",
3720         "addti3", "*adddi3_31z", "*adddi3_31",
3721         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
3722         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
3723         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
3724         "*pool_entry", "pool_align", "pool_section_start",
3725         "pool_section_end", "main_pool", "reload_base_31", "pool"):
3726         Do not set op_type attribute to "NN" where already default.
3727         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
3728         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
3729         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
3730         Do not set atype attribute to "agen" where already default.
3731         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
3732
3733 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
3734
3735         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
3736
3737 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
3738
3739         PR target/16830
3740         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
3741         R3000 and R4000 macros on IRIX.
3742
3743 2004-11-06  Andreas Schwab  <schwab@suse.de>
3744
3745         PR target/16286
3746         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
3747         __pixel.
3748
3749 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3750
3751         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
3752
3753 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
3754
3755         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
3756         matches no insns already matched by other reservations.
3757         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
3758         matches no insns already matched by other reservations.
3759         ("x_ss"): Remove, replace by ...
3760         ("x_cs"): ... this new reservation.  Check type instead of op_type.
3761         Update bypasses to use x_cs instead of x_ss.
3762         ("x_nn"): Remove, replace by ...
3763         ("x_other"): ... this new reservation.  Check type instead of op_type.
3764         Add x_other and x_branch to bypasses.
3765         ("x_vs"): New reservation.
3766         * config/s390/s390.md (attribute "type"): Default according to op_type.
3767         ("*execute"): Set type to "cs".
3768
3769 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3770
3771         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
3772         if we are in GIMPLE.
3773
3774 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
3775
3776         PR rtl-optimization/17933
3777         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
3778         (covers_regno_p): New function.  Handle SETs of PARALLEL,
3779         and defer the rest to...
3780         (covers_regno_no_parallel_p): New function.
3781
3782 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3783
3784         * config/sparc/sparc.c (function_arg_record_value_1): Skip
3785         fields with zero length.
3786         (function_arg_record_value_2): Likewise.
3787         (function_arg_record_value_3): Use smallest_mode_for_size
3788         instead of mode_for_size.
3789         (function_arg_union_value): Return naked register for unions
3790         with zero length.
3791
3792 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3793
3794         * config/sparc/sparc.c (scan_record_type): Handle vector types.
3795         (function_arg_slotno): Handle vector types specially.
3796         (function_arg_record_value_1): Split fields with vector type and
3797         BLKmode into their subparts.
3798         (function_arg_record_value_2): Likewise.  Be prepared to handle
3799         more than 2 registers per field.
3800         (function_arg_union_value): Increment regno inside the loop.
3801         (function_arg_vector_value): New function.
3802         (function_arg): Use it to split fields with vector type and
3803         BLKmode into their subparts and build a PARALLEL.  Treat
3804         other vector types like floats.
3805         (function_value): Likewise.
3806         (sparc_pass_by_reference): Handle vector types.
3807         (sparc_return_in_memory): Likewise.
3808
3809 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3810
3811         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
3812         statement that never triggers.
3813
3814 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
3815
3816         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
3817         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
3818         ("x_fdivd"): Use also for fsqrtd type.
3819         ("x_fdivs"): Use also for fsqrts type.
3820         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
3821         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
3822         ("fix_truncdfsi2_ibm"): Set type to "other".
3823         ("floatdidf2", "floatdisf2"): Do not clobber CC.
3824         ("floatsidf2", "floatsidf2_ieee"): Likewise.
3825         ("floatsisf2", "floatsisf2_ieee"): Likewise.
3826         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
3827         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
3828         instead of LRER.
3829         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
3830         ("sqrtdf2"): Set type to "fsqrtd".
3831         ("sqrtsf2"): Set type to "fsqrts".
3832
3833 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3834
3835         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
3836         pointer to the last PHI node in the new PHI chain.
3837
3838 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
3839
3840         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
3841         for non-PIC TLS_MODEL_INITIAL_EXEC case.
3842
3843 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3844
3845         * expmed.c: Fix a comment typo.
3846
3847 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3848
3849         PR target/18106
3850         * config/i386/cygming.h
3851         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
3852
3853 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3854
3855         * config/sh/sh4a.md: Fix copyright.
3856
3857 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3858
3859         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
3860         with GCC.
3861
3862 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
3863
3864         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
3865         when carry not used.  Suggested by Torbjorn Granlund.
3866
3867         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
3868         operand[1] unnecessarily.  Suggested by Eric Christopher.
3869         (rs6000_adjust_cost): Increase latency of store to wider load.
3870         (rs6000_rtx_costs): mulli only allows 16-bit constants.
3871
3872 2004-11-05  Stan Shebs  <shebs@apple.com>
3873
3874         * config/rs6000/rs6000.c (machopic_output_stub): Output
3875         ldu instead of lwzu for 64-bit stubs.
3876
3877 2004-11-05  Richard Henderson  <rth@redhat.com>
3878
3879         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
3880         size 2 with BWX.
3881         (alpha_expand_unaligned_store): Likewise.
3882
3883 2004-11-05  Richard Henderson  <rth@redhat.com>
3884
3885         * expmed.c (extract_force_align_mem_bit_field): New.
3886         (extract_split_bit_field): Call it.
3887
3888 2004-11-05  Richard Henderson  <rth@redhat.com>
3889
3890         * ia64.md (UNSPEC_SHRP): New.
3891         (dshift_count_operand): New.
3892         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
3893         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
3894
3895 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
3896
3897         * c-typeck.c (output_init_element): Return early if value is
3898         error_mark_node.
3899
3900 2004-11-05  James E Wilson  <wilson@specifixinc.com>
3901
3902         * invoke.texi (-fno-guess-branch-probability): Rewrite.
3903
3904         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
3905         1 to UNSPEC_GR_SPILL.
3906
3907 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3908
3909         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
3910         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
3911
3912 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
3913
3914         * bitmap.h (enum bitmap_bits): Remove.
3915         (bitmap_operation): Remove.
3916         (bitmap_and, bitmap_and_into, bitmap_and_compl,
3917         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
3918         bitmap_xor_into): Prototype.
3919         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
3920         (bitmap_operation): Remove.
3921         (bitmap_and, bitmap_and_into, bitmap_and_compl,
3922         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
3923         bitmap_xor_into): New.
3924         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
3925
3926         PR tree-optimization/18307
3927         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
3928         and ORIG being the same node.
3929
3930 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
3931
3932         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
3933         (install-mkheaders): Install the version built for the
3934         host, not for the build machine.
3935         * configure.ac: Always run fixincludes.
3936         (all_outputs): Remove mkheaders.
3937         * configure: Regenerate.
3938         * fixinc.in: Move to fixincludes/.
3939         * mkfixinc.sh: Likewise.
3940         * mkheaders.in: Likewise.
3941         * README-fixinc: Likewise.
3942
3943 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
3944
3945         PR target/18263
3946         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
3947         equivalent on the A4.
3948
3949 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
3950
3951         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
3952         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
3953         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
3954         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
3955         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
3956         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
3957         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
3958         doc/trouble.texi: Correct end-of-sentence markup and markup of
3959         "etc.", "e.g." and "i.e.".  Use @code in various places where
3960         appropriate.
3961
3962 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
3963
3964         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
3965         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
3966         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
3967         whitespace.
3968
3969 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
3970
3971         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
3972         * doc/extend.texi: Document "notshared" attribute.
3973
3974 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
3975
3976         * tree-phinodes.c (make_phi_node): Make it static.
3977         * tree.h: Remove the prototypes for make_phi_node.
3978
3979 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
3980
3981         * stmt.c (expand_asm, expand_asm_operands): Make them static.
3982         * tree.h: Remove the prototypes for expand_asm and
3983         expand_asm_operands.
3984
3985 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
3986
3987         * passes.c (rest_of_compilation): Make it static.
3988         * toplev.h: Remove the prototype for rest_of_compilation.
3989
3990 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
3991
3992         * jump.c (cleanup_barriers): Use delete_insn instead of
3993         delete_barrier.
3994         (delete_barrier): Remove.
3995         * rtl.h: Remove the corresponding prototype.
3996
3997 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
3998
3999         * expr.c (mostly_zero_p): Make it static.
4000         * tree.h: Remove the prototype for mostly_zeros_p.
4001
4002 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4003
4004         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
4005
4006 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4007
4008         * builtins.c (expand_builtin_return_addr,
4009         expand_builtin_longjmp, expand_builtin_trap): Make them static.
4010         * expr.h: Remove the prototypes for expand_builtin_longjmp and
4011         expand_builtin_trap.
4012         * tree.h: Remove the prototype for expand_builtin_return_addr.
4013
4014 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4015
4016         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
4017         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
4018         with VAL being NULL.
4019
4020 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4021
4022         * cfghooks.c (delete_basic_block): Remove code to truncate
4023         edge vectors.
4024
4025 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
4026
4027         * flow.c (init_propagate_block_info): Change the type of i to
4028         unsigned.
4029
4030 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4031
4032         PR tree-optimization/18184
4033         * c-typeck.c (comptypes): Do not treat pointers of different
4034         modes or alias-all flags as equivalent.
4035         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
4036
4037 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
4038
4039         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
4040         reference specific C parser files in examples.
4041
4042 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
4043
4044         PR target/15342
4045         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
4046         as OP_INOUT if the instruction is predicated.
4047
4048 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4049
4050         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
4051         * tree-vectorizer.c: Fix a comment typo.
4052
4053 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4054
4055         * sdbout.c (SDB_GENERATE_FAKE): Remove.
4056         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
4057         * system.h: Poison SDB_GENERATE_FAKE.
4058         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
4059
4060 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4061
4062         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
4063
4064 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4065
4066         PR other/18277
4067         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
4068         2004-10-29 patch
4069
4070 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4071
4072         * predict.c (propagate_freq): Make bitno unsigned. Move
4073         npredecessors update out of loop.
4074
4075         * bitmap.h (bitmap_iterator): Remove word_bit and bit
4076         fields. Rename others.
4077         (bmp_iter_common_next_1, bmp_iter_single_next_1,
4078         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
4079         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
4080         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
4081         bmp_iter_and_next): Remove.
4082         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
4083         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
4084         New.
4085         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
4086         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
4087
4088         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
4089         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
4090         bitmap_and_into, bitmap_ior_into as appropriate.
4091         * except.c (remove_eh_handler): Likewise.
4092         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
4093         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4094         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
4095         * tree-ssa-live.h (live_merge_and_clear): Likewise.
4096         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
4097         Likewise.
4098
4099         * bitmap.c (bitmap_print): Make bitno unsigned.
4100         * bt-load.c (clear_btr_from_live_range,
4101         btr_def_live_range): Likewise.
4102         * caller-save.c (save_call_clobbered_regs): Likewise.
4103         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4104         * cfgcleanup.c (thread_jump): Likewise.
4105         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4106         * conflict.c (conflict_graph_compute): Likewise.
4107         * ddg.c (add_deps_for_use): Likewise.
4108         * df.c (df_refs_update): Likewise.
4109         * except.c (remove_eh_handler): Likewise.
4110         * flow.c (verify_local_live_at_start, update_life_info,
4111         initialize_uninitialized_subregs, propagate_one_insn,
4112         free_propagate_block_info, propagate_block, find_use_as_address,
4113         reg_set_to_hard_reg_set): Likewise.
4114         * gcse.c (clear_modify_mem_tables): Likewise.
4115         * global.c (global_conflicts, build_insn_chain): Likewise.
4116         * ifcvt.c (dead_or_predicable): Likewise.
4117         * local-alloc.c (update_equiv_regs): Likewise.
4118         * loop.c (load_mems): Likewise.
4119         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
4120         Likewise.
4121         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
4122         Likewise.
4123         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
4124         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
4125         * sched-rgn.c (propagate_deps
4126         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
4127         * tree-dfa.c (dump_dfa_stats
4128         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
4129         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
4130         Likewise.
4131         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
4132         free_temp_expr_table, find_replaceable_exprs): Likewise.
4133         * tree-sra.c (scan_function, scalarize_parms): Likewise.
4134         * tree-ssa-alias.c (init_alias_info,
4135         compute_points_to_and_addr_escape,
4136         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
4137         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
4138         * tree-ssa-live.c (new_tree_live_info, live_worklist,
4139         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
4140         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
4141         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
4142         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
4143         add_call_read_ops): Likewise.
4144         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
4145         * tree-ssa-live.h (num_var_partitions): Return unsigned.
4146
4147 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
4148
4149         PR tree-optimization/18009
4150         * tree-vectorizer.h (enum dr_alignment_support): New type.
4151         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
4152         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
4153         single data_reference (instead of a varray of references).
4154         * tree-vectorizer.c (new_loop_vec_info): Likewise.
4155         (vect_gen_niters_for_prolog_loop): Likewise.
4156         (vect_update_inits_of_drs): Likewise.
4157
4158         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
4159         vect_enhance_data_refs_alignment.
4160         (vect_do_peeling_for_alignment): Likewise.
4161         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
4162         this functionality used to be in vect_analyze_data_refs_alignment.
4163         Also update DR_MISALIGNMENT due to peeling; this functionality used to
4164         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
4165         (vect_analyze_data_refs_alignment): Decision on whether and by how much
4166         to peel moved to vect_enhance_data_refs_alignment. Call
4167         vect_supportable_dr_alignment.
4168
4169         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
4170         (vect_compute_data_refs_alignment): Return bool. Consider return value
4171         of vect_compute_data_ref_alignment and return true/false accordingly.
4172         (vect_enhance_data_refs_alignment): Consider return value of
4173         vect_compute_data_refs_alignment and return true/false accordingly.
4174
4175         (vect_supportable_dr_alignment): New function.
4176         (vectorizable_store): Call vect_supportable_dr_alignment.
4177         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
4178         support checks moved from here to vect_supportable_dr_alignment.
4179
4180         (vect_transform_loop): Avoid 80 columns overflow.
4181
4182 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4183
4184         * timevar.c (timevar_enable): Change from
4185         static.
4186         (timevar_push): Rename to ...
4187         (timevar_push_1): this and remove the
4188         enabled check.
4189         (timevar_pop): Rename to ...
4190         (timevar_pop_1): this and remove the
4191         enabled check.
4192         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
4193         (timevar_pop): New macro.
4194         (timevar_push): New macro.
4195         (timevar_enable): Declare.
4196
4197 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4198
4199         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
4200         libgcc for shared libraries.
4201
4202 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4203
4204         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
4205         * config/s390/s390.c (s390_split_access_reg): New function.
4206         (regclass_map): Add access registers.
4207         (get_thread_pointer): Use access register instead of UNSPEC_TP.
4208         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
4209         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
4210         (TP_REGNUM): New define.
4211         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4212         REG_ALLOC_ORDER): Add access registers.
4213         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
4214         CANNOT_CHANGE_MODE_CLASS): Support access registers.
4215         (enum reg_class): Add ACCESS_REGS.
4216         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
4217         (REG_CLASS_FROM_LETTER): Add 't' constraint.
4218         (REGISTER_NAMES): Add access registers.
4219         * config/s390/s390.md (UNSPEC_TP): Remove.
4220         ("*movdi_64"): Add access register alternatives.  Provide splitters
4221         to split DImode access register <-> GPR moves into SImode moves.
4222         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
4223         ("movstrictsi"): Likewise.
4224         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
4225         ("set_tp_64", "set_tp_31"): Likewise.
4226         ("*set_tp"): New insn.
4227
4228 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4229
4230         * tree-phinodes.c (resize_phi_node): Copy only a portion of
4231         the PHI node currently in use.
4232
4233 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4234
4235         PR tree-opt/18231
4236         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
4237         also.
4238
4239 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
4240
4241         PR tree-optimization/18270
4242         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
4243         abnormal edges, commit all pending stmts on incoming edges.
4244
4245 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4246
4247         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
4248         cause extra costs.  Generate canonical RTL.
4249
4250 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
4251
4252         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
4253         (lambda_compute_target_space). Ditto.
4254         * lambda.h (lambda_trans_matrix): Ditto.
4255         (lambda_linear_expression): Ditto.
4256         (lambda_body_vector): Ditto.
4257         (lambda_loopnest): Ditto.
4258         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
4259         update comments, and remove pointless addition of 0.
4260         (linear_transform_loops): Update comments.
4261
4262 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
4263
4264         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
4265         CEIL_MOD_EXPR.
4266
4267 2004-11-03 Jeff Law  <law@redhat.com>
4268
4269         * predict.c (struct block_info_def): Kill "tovisit" field.
4270         (propagate_freq): Accept new "tovisit" parameter.  Change
4271         read/write access methods for "tovisit" to check the "tovisit"
4272         bitmap instead of a bit in block_info_def.
4273         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
4274         it to propagate_freq.
4275
4276         * stmt.c (expand_case): Speed up code to detect duplicate case
4277         label targets and count unique case label targets.
4278
4279 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4280
4281         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
4282
4283 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4284
4285         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
4286
4287 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4288
4289         * tree-cfg.c (find_taken_edge): Abort if we are given a
4290         statement that is neither COND_EXPR nor SWITCH_EXPR.
4291
4292 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
4293
4294         * fold-const.c (fold): Reassociate also (x - mult) + mult and
4295         (mult - x) + mult.  Cast operands of expression after applying
4296         distributive law to the correct types.  Apply distributive law
4297         to a * c - b * c for all non-float types.
4298
4299 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
4300
4301         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
4302         because we don't want to run them now; instead, set them to
4303         stmp-install-fixproto or stmp-install-fixinc.
4304         * Makefile.in (stmp-install-fixproto): New.
4305         (stmp-install-fixinc): New.
4306         * configure: Regenerate.
4307
4308 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4309
4310         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
4311         of bitmap_xor.
4312
4313 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
4314
4315         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
4316         (c_types_compatible_p): Move function definition...
4317         * c-objc-common.c (c_types_compatible_p): ...here.
4318         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
4319         c-lang.c.
4320
4321 2004-11-02  Steven Bosscher  <stevenb@suse.de>
4322
4323         * cfgloop.h (struct loop): Update comment.
4324         * cse.c (cse_main): Remove obsolete comment.
4325
4326         * expr.h (gen_cond_trap): Move prototype under functions provided
4327         by optabs.c.
4328         (canonicalize_condition, get_condition): Move to...
4329         * rtl.h (canonicalize_condition, get_condition): ...here.
4330         (branch_target_load_optimize): Add comment that this function is
4331         in bt-load.c.
4332         * loop.c (canonicalize_condition, get_condition): Move to...
4333         * rtlanal.c (canonicalize_condition, get_condition): ...here.
4334         * sched-deps.c (get_condition): Rename to sched_get_condition.
4335         (add_dependence): Update this caller.
4336
4337 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
4338
4339         PR tree-opt/16808
4340         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
4341         that the vops get marked for renaming.
4342
4343 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
4344
4345         * config/s390/s390.md ("movcc"): Set type attribute.
4346
4347 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4348
4349         * tree-phinodes.c (add_phi_arg): Add an assertion that the
4350         edge already exists.
4351
4352 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4353
4354         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
4355         element that's being removed.
4356
4357 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4358
4359         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
4360         arguments using PENDING_STMT.
4361         (thread_block): Call copy_phis_to_block after redirecting an
4362         edge.
4363
4364 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4365
4366         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
4367         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
4368         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
4369         (bitmap_ior_and_compl_into): Produce bool.
4370         (bitmap_union_of_diff): Rename to ...
4371         (bitmap_ior_and_compl): ... here. Produce bool.
4372         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
4373         bitmap_operation directly.
4374         (bitmap_union_of_diff): Rename to ...
4375         (bitmap_ior_and_compl): ... here. Return bool, use
4376         bitmap_operation directly.
4377         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
4378         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
4379         * global.c (modify_bb_reg_pav): Likewise.
4380
4381         * bitmap.h (bitmap_equal_p): Return bool.
4382         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
4383         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
4384         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
4385         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
4386         bitmap_intersect_compl_p.
4387         * ifcvt (dead_or_predicable): Likewise.
4388
4389 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4390
4391         PR rtl-optimization/17104
4392         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
4393         loads in zero_extend.
4394
4395 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
4396
4397         PR debug/18242
4398         * toplev.c (debug_type_names): Remove "dwarf-1".
4399
4400 2004-11-02  Ben Elliston  <bje@au.ibm.com>
4401
4402         * timevar.h (timevar_get): Remove.
4403         * timevar.c (timevar_get): Remove unused function.
4404
4405 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
4406
4407         * doc/include/texinfo.tex: Update from Texinfo CVS.
4408
4409 2004-11-02  Ben Elliston  <bje@au.ibm.com>
4410
4411         * cppdefault.h (cpp_SYSROOT): Remove.
4412         * cppdefault.c (cpp_SYSROOT): Likewise.
4413
4414 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
4415
4416         PR tree-optimization/16447
4417         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
4418         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
4419         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
4420         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
4421         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
4422         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
4423         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
4424         (identical_copies_p): New.  Return true is two copies are the same.
4425         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
4426         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
4427         for a basic block.
4428         (perform_edge_inserts): New.  Determine what to do with all stmts that
4429         have been inserted on edges.
4430         (remove_ssa_form):  Analyze and commit edges from here.
4431
4432 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
4433
4434         PR bootstrap/18232
4435         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
4436         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
4437         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
4438         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
4439
4440 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
4441
4442         PR c/18239
4443         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
4444         parameter declarations.
4445
4446 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
4447
4448         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
4449         (s390_secondary_input_reload_class)
4450         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
4451         register.
4452         (s390_expand_cmpmem): Enable cmpmem implementation.
4453         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
4454         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
4455         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
4456         * config/s390/s390.md ("movcc"): New insn pattern.
4457         * doc/md.texi: Document 'c' constraint for s390.
4458
4459 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
4460
4461         PR c++/18064
4462         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
4463         extension.
4464
4465 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
4466
4467         Fix PR tree-optimization/17672
4468         Fix PR tree-optimization/18168
4469
4470         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
4471         assert test.
4472         (gcc_tree_to_linear_expression): Add extra to existing constant.
4473         (depth_of_nest): Factor out function used in various places.
4474         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
4475         functional changes.
4476         (find_induction_var_from_exit_cond): Stop guessing, and just
4477         get the right answer :).
4478         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
4479         Print out message about result of attempt to create perfect nest.
4480         (lbv_to_gcc_expression): Add type argument, use it to do math
4481         and induction variable creation.
4482         (lle_to_gcc_expression): Ditto.
4483         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
4484         oldiv. Pass type argument to lle_to_gcc_expression and
4485         lbv_to_gcc_expression.
4486         Reset number of iterations after transformation.
4487         (perfect_nestify): Remove useless pre-allocation, and cleanup
4488         a small amount.
4489
4490         * tree-data-ref.c (build_classic_dist_vector): Return false for
4491         dependences completely outside of the loop nest we asked about.
4492         (build_classic_dir_vector): Ditto.
4493         (compute_data_dependences_for_loop): Only add dependence relations
4494         inside the loop we asked about.
4495
4496         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
4497         Compute immediate uses.
4498
4499         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
4500
4501 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
4502
4503         * tree-cfg.c (thread_jumps): Fix a comment typo.
4504
4505 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
4506
4507         * tree-cfg.c (thread_jumps): Fix a comment typo.
4508
4509 2004-10-31  Nicolas Pitre <nico@cam.org>
4510
4511         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
4512         values smaller than 2^32.
4513
4514 2004-10-31 Jeff Law  <law@redhat.com>
4515
4516         * cfgloop.h (struct loop): Remove unused "nodes" field.
4517         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
4518         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
4519         instead of calling flow_bb_inside_loop_p for every basic block
4520         in the function.
4521         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
4522
4523 2004-10-31  Graham Stott <graham.stott@btinternet.com>
4524
4525         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
4526         INT_5_BITS instead of VAL_5_BITS_P.
4527
4528 2004-10-31  Roger Sayle  <roger@eyesopen.com>
4529
4530         PR middle-end/14521
4531         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
4532         for consistent quoting in diagnostic messages.
4533         (expand_call_inline): Likewise.
4534         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4535         * tree-ssa.c (warn_uninitialized_var): Likewise.
4536         (warn_uninitialized_phi): Likewise.
4537
4538 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
4539
4540         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
4541         mode check.
4542
4543 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
4544
4545         * c-common.c: Fix a comment typo.
4546
4547 2004-10-31  Jason Merrill  <jason@redhat.com>
4548
4549         PR middle-end/17526
4550         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
4551         aggregate types that are not BLKmode.
4552
4553 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
4554
4555         * c-common.h (objc_lookup_ivar): Add second parameter to
4556         prototype.
4557         * c-typeck.c (build_external_ref): After looking up symbol,
4558         pass it to objc_lookup_ivar() to decide whether it or the
4559         ivar should be used, rather than deciding the issue locally.
4560         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
4561         which is simply returned in the non-ObjC case.
4562
4563 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
4564
4565         * sdbout.c (sdbout_symbol): Do not output type .def statements
4566         for builtin types.
4567
4568 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4569
4570         * c-common.c (catenate_strings): New.
4571         (c_parse_error): Use it.  Don't over-escape.
4572
4573 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4574
4575         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
4576         modify the for loop expressions for it.  Remove unnecessary casts.
4577         (sh_expand_prologue): Declare reg as unsigned.
4578         (sh_gimplify_va_arg_expr): Initinalize lab_over.
4579         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
4580
4581 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
4582
4583         * doc/invoke.texi (Darwin Options): Improve description of
4584         how the subtype is chosen.
4585
4586 2004-10-30  Roger Sayle  <roger@eyesopen.com>
4587
4588         PR middle-end/18096
4589         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
4590         the stack adjustment, "size", is valid for Pmode.  If the stack
4591         frame is too large, generate a trap insn and issue a warning.
4592
4593 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
4594
4595         * tree-ssa-dom.c: Fix comment typos.
4596
4597 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4598
4599         * config/sh/sh.c (prepare_move_operands): Use operands[0]
4600         for the output rtl if no_new_pseudos is set.  Remove redundant
4601         line.
4602
4603 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
4604
4605         PR c/16666
4606         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
4607         determining whether to copy parameter types from a previous
4608         prototype declaration.
4609
4610 2004-10-29  Roger Sayle  <roger@eyesopen.com>
4611
4612         PR rtl-optimization/17581
4613         * cselib.c (cselib_process_insn): The last instruction of a libcall
4614         block, with the REG_RETVAL note, should be considered in the libcall.
4615         * gcse.c (do_local_cprop): Allow constants to be propagated outside
4616         of libcall blocks.
4617         (adjust_libcall_notes): Use simplify_replace_rtx instead of
4618         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
4619
4620 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
4621
4622         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
4623
4624 2004-10-29 Jeff Law  <law@redhat.com>
4625
4626         * tree-ssa-dom.c (struct edge_info): New structure holding
4627         edge equivalences and edge redirection information.
4628         (get_eq_expr_value, record_dominating_conditions): Kill.
4629         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
4630         Call record_edge_info.
4631         (allocate_edge_info, free_edge_info): New.
4632         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
4633         rather than cprop_into_phis.  Free all edge infos before threading
4634         jumps.
4635         (thread_across_edge): Allocate new edge info structures as needed
4636         and store the redirection target into the edge info structure
4637         instead of the edge's AUX field.
4638         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
4639         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
4640         Revamp code which finds and records equivalences associated with
4641         edges to use saved data in the edge_info structure.
4642         (record_equivalencs_from_phis): Similarly.
4643         (dom_opt_finalize_block): Revamp code which finds and records
4644         equivalences associated with edges to use saved data in the
4645         edge_info structure.
4646         (build_and_record_new_cond): New function.
4647         (record_conditions): Use build_and_record_new_cond to record
4648         dominating conditions.
4649         (record_edge_info): New function.
4650         (record_range): Tighten test for conditions which create
4651         useful range records.
4652
4653 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
4654
4655         * config/i386/darwin.h (ASM_SPEC): Simplify.
4656         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
4657         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
4658         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
4659         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
4660         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
4661         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
4662         (ASM_SPEC): Handle -force_cpusubtype_ALL.
4663         * doc/invoke.texi (Darwin Options): Improve documentation for
4664         Darwin linker (and libtool) switches.
4665
4666         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
4667
4668 2004-10-29  Stan Shebs  <shebs@apple.com>
4669
4670         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
4671
4672 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4673
4674         * tree-phinodes.c (allocate_phi_node): New.
4675         (make_phi_node, resize_phi_node): Use it.
4676
4677 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
4678
4679         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
4680         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
4681
4682 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4683
4684         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
4685         the whole PHI node.
4686         * tree.h (tree_phi_node): Tell the garbage collector to chase
4687         num_args arguments.
4688
4689 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
4690
4691         * opts.c (decode_options): Lower the crossjump threshold for -Os.
4692
4693 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
4694
4695         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
4696
4697 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4698
4699         * bitmap.h (bitmap_empty_p): New.
4700         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4701         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
4702         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
4703         operation macros.
4704         (bitmap_ior_and_compl): Rename to ...
4705         (bitmap_ior_and_compl_into): ... here.
4706         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
4707         (bitmap_ior_and_compl): Rename to ...
4708         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
4709         flag.
4710         (bitmap_union_of_diff): Use renamed bitmap functions.
4711         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
4712         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
4713         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4714         * df.c (df_bb_rd_local_compute)
4715         * flow.c (calculate_global_regs_live,
4716         init_propagate_block_info): Likewise.
4717         * ifcvt.c (find_if_case_1, find_if_case_2,
4718         dead_or_predicable): Likewise.
4719         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
4720         reset_conflicts, conflicts_between_webs): Likewise.
4721         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
4722         detect_web_parts_to_rebuild): Likewise.
4723         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
4724         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
4725         * tree-sra.c (decide_instantiations): Likewise.
4726         * tree-ssa-alias.c (create_name_tags,
4727         merge_pointed_to_info): Likewise.
4728         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4729         * tree-ssa-loop-im.c (move_computations): Likewise.
4730         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
4731         * tree-ssa-pre.c (fini_pre): Likewise.
4732         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
4733         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
4734         * tree-vectorizer.c (vectorize_loops): Likewise.
4735
4736 2004-10-29  Nick Clifton  <nickc@redhat.com>
4737
4738         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
4739         adding the PIC register to the fixed_regs array, also add it
4740         to the call_used_regs array.
4741
4742 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
4743
4744         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
4745         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
4746
4747 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
4748
4749         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
4750         (rewrite_blocks): Modify argument, and use it to decide which
4751         function to call.
4752         (rewrite_def_def_chains): Call rewrite_blocks with true here.
4753         (rewrite_into_ssa): and call it with false here.
4754
4755 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4756
4757         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
4758         triggers into gcc_assert.
4759
4760 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
4761
4762         PR tree-optimization/16728
4763         * tree-flow.h (get_ptr_info): Declare.
4764         * tree-ssa-alias.c (get_ptr_info): Make extern.
4765         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
4766         alias information.
4767
4768 2004-10-28  Stan Shebs  <shebs@apple.com>
4769
4770         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
4771         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
4772         case.
4773
4774 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
4775
4776         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
4777         prevent their later unnecessary registration.
4778         (mf_build_check_statement_for): Remove "addr" argument, and
4779         related "__mf_value" generated code.  Update callers.
4780         (mf_decl_eligible_p): New function, factored from mx_register_decls.
4781         (mx_register_decls): Call it.
4782         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
4783         to restore support for complex nested expressions.
4784         (mudflap_enqueue_decl): Simplify.  Move registration call emission
4785         out ...
4786         (mudflap_finish_file): ... to here.
4787         (mudflap_enqueue_constant): Remove dump code.
4788
4789 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
4790
4791         PR 18199
4792         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
4793         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
4794         (dbxout_finish_complex_stabs): Update to match.
4795         (dbxout_symbol_location): Call emit_pending_bincls_if_required
4796         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
4797         dbxout_begin_complex_stabs_noforcetext.
4798         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
4799         N_GSYM, using new SYM parameter.  Correct logic for special
4800         cases for N_FUN.
4801
4802         * varasm.c (function_section): If DECL is NULL_TREE, don't try
4803         to do anything else.  Do not call get_insns if cfun or
4804         cfun->emit are NULL.
4805
4806 2004-10-28  Adam Nemet  <anemet@lnxw.com>
4807
4808         PR middle-end/18160
4809         * c-typeck.c (c_mark_addressable): Issue error if address of a
4810         register variable is taken.  Use "%qD" to print DECL_NAME.
4811
4812 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
4813
4814         * opts.c (decode_options): Don't run PRE at -Os.
4815
4816 2004-10-28  Richard Henderson  <rth@redhat.com>
4817
4818         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
4819         zero in the conditional.
4820         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
4821
4822 2004-10-28  Richard Henderson  <rth@redhat.com>
4823
4824         * cse.c (memory_extend_rtx): Remove.
4825         (cse_main): Don't set it.
4826         (cse_insn): Use a local buffer instead.
4827
4828 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4829
4830         * profile.c (branch_prob): Call to init_edge_profiler added.
4831         * rtl-profile.c (rtl_init_edge_profiler): New function.
4832         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
4833         call to safe_insert_insn_on_edge.
4834         (rtl_profile_hooks): rtl_init_edge_profiler added.
4835         * tree-profile.c (tree_init_edge_profiler): New function.
4836         (tree_profile_hooks): tree_init_edge_profiler added.
4837         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
4838
4839 2004-10-28  Nick Clifton  <nickc@redhat.com>
4840
4841         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
4842         emit_jump_insn() to generate the return instruction.
4843
4844 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
4845
4846         * tree-phinodes.c: Remove trailing whitespace.
4847
4848 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
4849
4850         * tree-ssa-loop-ivopts.c: Fix a comment typo.
4851         * doc/invoke.texi: Fix a typo.
4852
4853 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
4854
4855         * Makefile.in (OBJS-common): Remove duplicates.
4856
4857 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
4858
4859         * lambda-code.c (nestify_update_pending_stmts): Remove.
4860         (perfect_nestify): Use flush_pending_stmts instead of
4861         nestify_update_pending_stmts.
4862         * tree-cfg.c (tree_make_forwarder_block): Use
4863         flush_pending_stmts.
4864         * tree-flow.h: Add a prototype for flush_pending_stmts.
4865         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
4866         Use flush_pending_stmts.
4867         (lv_update_pending_stmts): Remove.
4868         (tree_ssa_loop_version): Use flush_pending_stmts instead of
4869         lv_update_pending_stmts.
4870         * tree-ssa.c (flush_pending_stmts): New.
4871
4872 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
4873
4874         PR target/15286
4875         * final.c (alter_subreg): Compute correct offset to use with
4876         paradoxical SUBREGs of memory operands.
4877         * recog.c (general_operand): Allow paradoxical SUBREGs of
4878         memory operands after reload.
4879         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
4880         has failed when passed a hard register.
4881
4882 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
4883
4884         * function.c (assign_parm_setup_block): Handle parallels correctly.
4885
4886 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4887
4888         * final.c (shorten_branches): Initialize flags structure.
4889
4890 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4891
4892         * tree.c (int_cst_node, int_cst_hash_table): New variables.
4893         (init_ttree): Initialize them.
4894         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
4895         (build_int_cst_wide): Use hash table for oversized integers.
4896
4897 2004-10-28  Nick Clifton  <nickc@redhat.com>
4898
4899         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
4900         begin_label.
4901
4902 2004-10-27  Richard Henderson  <rth@redhat.com>
4903
4904         PR middle-end/18163
4905         * expr.c (emit_group_load): Don't go force temporary for memory
4906         or concat source.
4907         (emit_group_store): Similarly.
4908
4909 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
4910
4911         PR other/18186
4912         * common.opt (--param): Fix spelling of parameter.
4913
4914 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
4915
4916         PR tree-opt/17529
4917         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
4918         Don't fold statement.
4919         <case ASM_EXPR>: Fold the statement.
4920
4921 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
4922
4923         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
4924         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
4925
4926 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4927
4928         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
4929         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
4930         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
4931         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
4932
4933 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4934
4935         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
4936         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
4937         punctuation outside quotes.
4938
4939 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
4940             James E Wilson  <wilson@specifixinc.com>
4941
4942         PR target/13158
4943         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
4944         sibcall alloc instruction.
4945         (process_set): Handle sibcall alloc instruction.
4946
4947 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
4948
4949         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
4950         SUBTARGET_ATTRIBUTE_TABLE.
4951         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
4952         (SUBTARGET_ATTRIBUTE_TABLE): Define.
4953         * config/darwin.c (darwin_handle_weak_import_attribute): New.
4954         (HAVE_DEAD_STRIP): Delete.
4955         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
4956         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
4957         Prototype.
4958
4959         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
4960
4961         * config/darwin.h (GTHREAD_USE_WEAK): Define.
4962
4963 2004-10-28  Ben Elliston  <bje@au.ibm.com>
4964
4965         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
4966         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
4967         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
4968         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
4969         * tree-sra.c: Include "params.h".
4970         (decide_block_copy): Use new parameters.
4971         * doc/invoke.texi (Optimize Options): Document new SRA pass
4972         parameters sra-max-structure-size and sra-field-structure-ratio.
4973
4974 2004-10-27  Nicolas Pitre <nico@cam.org>
4975
4976         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
4977
4978 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
4979
4980         PR tree-optimization/18048
4981         * fold-const.c (try_move_mult_to_index): New function.
4982         (fold): Use try_move_mult_to_index.
4983         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
4984         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
4985         an all-ones unsigned constant without extra bits.
4986         * tree.c (build_low_bits_mask): New function.
4987         * tree.h (build_low_bits_mask): Declare.
4988
4989 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
4990
4991         PR target/17956
4992         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
4993         final condition.
4994         (minsf3): Same.
4995         (maxdf3): Same.
4996         (mindf3): Same.
4997
4998 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
4999
5000         * tree-cfg.c (thread_jumps): Speed up by reordering the two
5001         conditions for entering basic blocks into worklist.
5002
5003 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5004
5005         * tree-cfg.c (thread_jumps): Speed up by pretending to have
5006         ENTRY_BLOCK_PTR in worklist.
5007
5008 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5009
5010         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5011         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
5012
5013 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
5014
5015         Fix PR tree-optimization/17133
5016
5017         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
5018         def kill operand.
5019
5020         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
5021         (get_v_must_def_result_ptr): Modify for new structure of
5022         v_must_defs array.
5023         (get_v_must_def_kill_ptr): New.
5024         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
5025         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5026         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5027         (op_iter_init): Initialize new mustu members.
5028         (op_iter_next_mustdef): New function.
5029         (op_iter_init_mustdef): Ditto.
5030
5031         * tree-flow.h (rewrite_def_def_chains): New function.
5032
5033         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
5034         (ssa_mark_def_sites): Ditto.
5035         (rewrite_stmt): Ditto.
5036         (ssa_rewrite_stmt): Ditto.
5037         (rewrite_blocks): Factor out from rewrite_into_ssa.
5038         (mark_def_block_sites): Ditto.
5039         (rewrite_def_def_chains): New function, just rewrites def-def
5040         chains without phi node insertion.
5041
5042         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
5043
5044         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
5045
5046         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
5047         they include the rhs now.
5048
5049         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
5050         V_MUST_DEF_RESULT.
5051
5052         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
5053         Update callers.
5054         (mark_really_necessary_kill_operand_phis): New function.
5055         (perform_tree_ssa_dce): Call it.
5056         (pass_dce): Add TODO_fix_def_def_chains.
5057         (pass_cd_dce): Ditto.
5058
5059         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
5060         well.
5061         (rewrite_mem_refs): Ditto.
5062
5063         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
5064         as well.
5065
5066         * tree-ssa-operands.c (allocate_v_may_def_optype):
5067         v_may_def_operand_type_t became v_def_use_operand_type_t.
5068         (allocate_v_must_def_optype) Ditto.
5069         (finalize_ssa_v_must_defs): Update for new operand type, as well
5070         as setting the use portion as well.
5071         (copy_virtual_operands): Copy the kill operand as well.
5072         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
5073         V_MUST_DEF_RESULT.
5074
5075         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
5076         v_def_use_operand_type.
5077         (v_must_def_optype_d): Use v_def_use_operand_type.
5078         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
5079         (V_MUST_DEF_KILL_*): New macros.
5080         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
5081         members.
5082         Rename existing must_i and num_v_must members to mustd_i and
5083         num_v_mustd.
5084         (SSA_OP_VMUSTDEFKILL): New flag.
5085         (SSA_OP_VIRTUAL_KILLS): New flag.
5086         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
5087         (SSA_OP_ALL_KILLS): New flag.
5088         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
5089
5090         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
5091
5092         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
5093         became V_MUST_DEF_RESULT.
5094         (rename_variables_in_bb): Rename kill pointer as well.
5095
5096         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
5097         immediate uses.
5098
5099 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
5100
5101         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
5102         the block that needs it.
5103
5104 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5105
5106         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
5107         ATTRIBUTE_UNUSED.
5108
5109 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5110
5111         * c-lex.c (cb_def_pragma): Clean up code for making location
5112         palatable to diagnostic.c.
5113
5114 2004-10-27  Steven Bosscher  <stevenb@suse.de>
5115
5116         PR tree-optimization/17757
5117         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
5118         without any PHI arguments left.  Make sure the argument that
5119         we're supposed to remove exists at all.
5120
5121 2004-10-27  Paul Brook  <paul@codesourcery.com>
5122
5123         * configure.ac: Don't test for [build] __cxa_atexit when building a
5124         cross compiler.
5125         * configure: Regenerate.
5126
5127 2004-10-27  Paul Brook  <paul@codeosurcery.com>
5128
5129         * configure.ac: Use build_exeext not host_exeext when lookin for
5130         target tools.
5131         * configure: Regenerate.
5132
5133 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5134
5135         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
5136
5137 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5138             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
5139
5140         PR middle-end/14684
5141         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
5142         to match -fprofile-use.
5143
5144 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5145
5146         * config/rs6000/rs6000.c: Fix a comment typo.
5147
5148 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5149
5150         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
5151         counter.
5152
5153 2004-10-27  Andreas Schwab  <schwab@suse.de>
5154
5155         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
5156         unused.
5157         (default_stabs_asm_out_constructor): Likewise.
5158
5159 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
5160
5161         * builtins.c (fold_builtin_unordered_cmp): Always bring both
5162         operands to the same type.
5163
5164 2004-10-26  James E Wilson  <wilson@specifixinc.com>
5165
5166         PR target/18010
5167         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
5168
5169 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
5170
5171         * dbxout.c: Include obstack.h.
5172         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
5173         default definition.
5174         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
5175         Default-define here.
5176         (DBX_CONTIN_LENGTH): Move definition with others.
5177         (DBX_FINISH_STABS): New target macro.
5178         (current_sym_code, current_sym_value, current_sym_addr)
5179         (current_sym_nchars, CHARS, dbxout_continue)
5180         (print_int_cst_octal, print_octal, print_wide_int)
5181         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
5182         (stabstr_ob, stabstr_last_contin_point): New variables.
5183         (NUMBER_FMT_LOOP): New improper macro.
5184         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
5185         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
5186         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
5187         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
5188         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
5189         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
5190         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
5191         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
5192         New functions and/or proper function-like macros.
5193         (CONTIN): Use stabstr_continue, unconditionally.
5194         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
5195         (dbxout_init): Initialize stabstr_ob.  Check
5196         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
5197         if it was used.  Use the new interfaces.
5198         (dbxout_source_file): Remove file argument; always write to
5199         asm_out_file.  Use the new interfaces.
5200         (dbxout_type_method_1): Remove second argument which is always
5201         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
5202         (dbxout_type_methods): Remove write-only variables.  Use the
5203         new interfaces.
5204         (dbxout_parms): Refactor to remove code duplicated in each of
5205         several successive if-else-if blocks.  Use the new interfaces.
5206         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
5207         (dbxout_source_line, dbxout_finish, dbxout_type_index)
5208         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
5209         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
5210         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
5211         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
5212         Use the new interfaces.
5213         * Makefile.in (dbxout.o): Update dependencies.
5214
5215         * defaults.h: Don't define ASM_STABD_OP.
5216         * output.h: Prototype new dbxout_* interfaces.
5217         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
5218         * varasm.c: Don't define ASM_STABS_OP.
5219         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
5220         Use the new dbxout.c interfaces.  Call sorry if neither
5221         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
5222
5223         * xcoffout.h: Don't define ASM_STABS_OP.
5224         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
5225         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
5226         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
5227         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
5228         do { ... } while (0) idiom.
5229
5230         * config/alpha/alpha.c (num_source_filenames): Export.
5231         * config/alpha/alpha.h (num_source_filenames): Declare.
5232         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5233         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5234         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5235         Always use .debugsym.  Update commentary.
5236         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5237         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5238         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
5239         Use new interfaces.
5240         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
5241         (macho_branch_islands): Use new interfaces.
5242
5243         * doc/tm.texi: Update.
5244
5245 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5246
5247         * expr.c (emit_group_store): Do not treat floats as BLKmode.
5248         (emit_group_load): Same.
5249
5250 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5251
5252         * c-parse.in (datadef): Use pedwarn rather than error and warning
5253         for diagnostic in case of no declaration specifiers.
5254
5255 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
5256
5257         PR bootstrap/15747
5258         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
5259         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
5260         can be used to work around this.
5261
5262 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5263
5264         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
5265         doubles.
5266
5267 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5268
5269         * stmt.c (expand_case): Update a comment.
5270
5271 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5272
5273         * stmt.c (expand_case): Put an assertion that index_expr is
5274         never INTEGER_CST.  Don't special case for constant
5275         index_expr.
5276
5277 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
5278
5279         PR 18162
5280         * c-parse.in (designator): Finish with a semi-colon.
5281
5282 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
5283
5284         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
5285         into rotlsi3.
5286
5287 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5288
5289         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
5290         a default case only.
5291
5292 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5293
5294         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
5295         e500 doubles.
5296         (spe_build_register_parallel): New.
5297         (rs6000_spe_function_arg): Handle e500 doubles.
5298         (function_arg): Same.
5299         (spe_func_has_64bit_regs_p): Same.
5300         (rs6000_function_value): Same.
5301         (rs6000_libcall_value): Same.
5302         (legitimate_lo_sum_address_p): Return false for e500 doubles.
5303
5304         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
5305         doubles.
5306         (DATA_ALIGNMENT): Same.
5307         (CANNOT_CHANGE_MODE_CLASS): Same.
5308
5309 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5310
5311         * expr.c (emit_group_load): Handle floats.
5312         (emit_group_store): Same.
5313
5314 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
5315
5316         * c-lex.c (get_nonpadding_token): Remove.
5317         (c_lex_with_flags): Push timevar and eat padding here.  Improve
5318         stray token diagnostic.
5319         (lex_string): Replace logic with switch statement, eat padding
5320         token here.
5321
5322 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
5323
5324         PR 18149
5325         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
5326
5327 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
5328
5329         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
5330         to 'non-weak'.
5331         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
5332         (ASM_MAKE_LABEL_LINKONCE): Delete.
5333         (ASM_WEAKEN_DECL): New.
5334         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
5335         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5336         (TEXT_SECTION_ASM_OP): Add a tab.
5337         (DATA_SECTION_ASM_OP): Likewise.
5338         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
5339         data_section on every section change.
5340         (EXTRA_SECTIONS): Add a bunch of new extra sections.
5341         (EXTRA_SECTION_FUNCTIONS): Likewise.
5342         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
5343         (JCR_SECTION_NAME): Define.
5344         (TARGET_SECTION_TYPE_FLAGS): Don't define.
5345         * config/darwin.c (darwin_encode_section_info): A symbol is defined
5346         in this file if it is not weak.
5347         (textcoal_section): Delete.
5348         (datacoal_section): Delete.
5349         (darwin_make_decl_one_only): Delete.
5350         (machopic_select_section): Handle functions.
5351         (darwin_asm_named_section): Add a tab.
5352         (darwin_section_type_flags): Delete.
5353         (darwin_unique_section): Delete contents.
5354         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
5355         DECL_WEAK is set.
5356         * config/darwin-protos.h (darwin_section_type_flags): Delete.
5357         (darwin_make_decl_one_only): Delete.
5358         (text_coal_section): New.
5359         (text_unlikely_section): New.
5360         (text_unlikely_coal_section): New.
5361         (const_coal_section): New.
5362         (data_coal_section): New.
5363         (const_data_coal_section): New.
5364         * varasm.c (function_section): Honour
5365         USE_SELECT_SECTION_FOR_FUNCTIONS.
5366         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
5367         TARGET_USES_WEAK_UNWIND_INFO is in effect.
5368         * dbxout.c (dbxout_source_file): Don't change sections while
5369         a function is being output.
5370
5371 2004-10-25  David Ayers  <d.ayers@inode.at>
5372
5373         * c-common.h: Remove RID_ID.
5374         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
5375         (typespec_reserved_attr): Add rule for TYPENAME
5376         non_empty_protocolrefs.
5377         (yylexname): Remove special handling of RID_ID.
5378
5379 2004-10-25  James E Wilson  <wilson@specifixinc.com>
5380
5381         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
5382
5383 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
5384
5385         PR c/16667
5386         * c-parse.in (array_designator): New.
5387         (designator): Use it.
5388         (initelt): Only permit array_designator without '=', not ".foo".
5389
5390 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
5391         * gcc/Makefile.in: removed ggc for cgraphunit.
5392         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
5393         * gcc/cgraph.h: removed static var analysis data structures and calls.
5394         * gcc/cgraphunit.c:
5395         cgraph_mark_local_and_external_functions:changed name to
5396                 cgraph_mark_local_functions
5397         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
5398         cgraph_reset_static_var_maps,get_global_static_vars_info,
5399         get_global_statics_not_read,get_global_statics_not_written,searchc,
5400         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
5401         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
5402         scan_for_static_refs,cgraph_characterize_statics_local,
5403         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
5404         removed.
5405         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
5406         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
5407         analysis
5408         * gcc/tree-flow.h static_vars_info: removed
5409         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
5410         removed calls to static vars analysis.
5411         get_call_expr_operands: removed callee variable.
5412
5413 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5414
5415         * cfg.c (unchecked_make_edge, redirect_edge_succ,
5416         redirect_edge_pred): Use VEC_safe_push instead of
5417         VEC_safe_insert.
5418         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
5419
5420 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5421
5422         * cfgloopmanip.c (loopify): Take two more arguments true_edge
5423         and false_edge.
5424         * cfgloop.h: Adjust the corresponding prototype.
5425         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
5426         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
5427
5428 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
5429
5430         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
5431         DECL_INCOMING_RTL is NULL.
5432
5433 2004-10-25  Steven Bosscher  <stevenb@suse.de>
5434
5435         * timevar.def (TV_FIND_REFERENCED_VARS): New.
5436         * tree-dfa.c (pass_referenced_var): Use it.
5437
5438 2004-10-25  Roger Sayle  <roger@eyesopen.com>
5439             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5440
5441         * cse.c: Change encoding of quantity numbers to avoid undefined
5442         pointer arithmetic on qty_table.
5443         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
5444         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
5445         (new_basic_block): Assign "real" quantity numbers from zero.
5446         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
5447         REG_QTY to its unique negative value.
5448         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
5449         (cse_main): Don't include max_reg when determining max_qty.
5450         (cse_basic_block): Avoid subtracting a large offset from qty_table,
5451         which causes undefined C99 behaviour.  Only allocate needed memory.
5452
5453 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5454
5455         * stmt.c (expand_case): Remove an obsolete comment.
5456
5457 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
5458
5459         PR middle-end/17407
5460         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
5461         layout_type as it is already done by build_array_type.
5462         * tree.c (build_array_type): Layout the type even
5463
5464 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
5465
5466         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
5467
5468 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
5469
5470         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
5471         with wider-than-32-bit HOST_WIDE_INTs.
5472
5473 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
5474
5475         * config/mips/mips.c(mips_output_filename): Remove unused
5476         array ltext_label_name
5477
5478 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
5479
5480         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
5481
5482 2004-10-25  Ben Elliston  <bje@au.ibm.com>
5483
5484         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
5485
5486 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
5487
5488         * predict.c (predict_loops): Call scev_finalize instead of
5489         scev_reset.
5490
5491 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
5492
5493         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
5494         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
5495         config/sh/ushmedia.h, config/sparc/elf.h,
5496         config/sparc/sp64-elf.h: Update copyright.
5497
5498 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
5499
5500         * stmt.c (expand_case): Handle the default label outside of
5501         the for loop.  Remove code to handle a missing default label.
5502
5503 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
5504
5505         * dbxout.c (dbxout_function_decl): Don't use
5506         DBX_OUTPUT_FUNCTION_END.
5507         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
5508         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
5509
5510 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
5511
5512         PR middle-end/17967
5513         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
5514
5515 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
5516
5517         * tree-ssa-dom.c (record_equality): Use loop depth to determine
5518         which way to record the equality as well.
5519         (loop_depth_of_name): New function.
5520
5521 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5522
5523         PR middle-end/17793
5524         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
5525         through the operand if it is a useless type conversion.
5526
5527 2004-10-23  Ben Elliston  <bje@au.ibm.com>
5528
5529         * cfg.c (remove_edge): Use VEC_unordered_remove.
5530         (redirect_edge_succ): Likewise.
5531         (redirect_edge_pred): Likewise.
5532         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
5533
5534 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5535
5536         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
5537         beyond its end.
5538
5539 2004-10-22  Eric Christopher  <echristo@redhat.com>
5540
5541         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
5542         saves.
5543
5544 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
5545
5546         * config/rs6000/spe.md (spe_extendsfdf2): New.
5547         (movdf_e500_double): New.
5548         (spe_truncdfsf2): New.
5549         (spe_absdf2): New.
5550         (spe_nabsdf2): New.
5551         (spe_negdf2): New.
5552         (sub_adddf3): New.
5553         (spe_subdf3): New.
5554         (spe_muldf3): New.
5555         (spe_floatsidf2): New.
5556         (spe_floatunssidf2): New.
5557         (fix_truncdfsi2): New.
5558         (spe_fixuns_truncdfsi2): New.
5559
5560         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
5561         (fpr_truncdfsf2): New.
5562         (negdf2): Change to expander.
5563         (fpr_negdf2): New.
5564         (fpr_nabsdf2): Name pattern.
5565         (adddf3): Change to expander.
5566         (fpr_adddf3): Nem.
5567         (subdf3): Change to expander.
5568         (fpr_subdf3): New.
5569         (muldf3): Change to expander.
5570         (fpr_muldf3): New.
5571         (divdf3): Change to expander.
5572         (fpr_divdf3): New.
5573         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
5574         (cmpdf): Allow for TARGET_E500_DOUBLE.
5575
5576 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5577
5578         * c-semantics.c (re_push_stmt_list): Remove.
5579         * c-common.h: Remove the corresponding prototype.
5580
5581 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5582
5583         * stmt.c (asm_op_is_mem_input): Remove.
5584         * tree.h: Remove the corresponding prototype.
5585
5586 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5587
5588         * tree-gimple.c (is_gimple_constructor_elt): Remove.
5589         * tree-gimple.h: Remove the corresponding prototype.
5590
5591 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5592
5593         * varasm.c (get_pool_mode_for_function, get_pool_offset):
5594         Remove.
5595         * rtl.h: Remove the corresponding prototypes.
5596
5597 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5598
5599         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
5600         edge information when we commit ourselves to threading a
5601         particular jump.
5602
5603 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5604
5605         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
5606         into worklist instead of their indexes.
5607
5608 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5609
5610         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
5611         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
5612         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
5613         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
5614         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
5615         tree-scalar-evolution.c, tree-ssa-dom.c,
5616         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
5617         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
5618         tree-vectorizer.c, vec.h: Fix comment formatting.
5619
5620 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5621
5622         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
5623         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
5624
5625 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5626
5627         * config/ptx4.h, config/mcore/mcore-pe.h,
5628         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
5629
5630 2004-10-22  Peter Barada <peter@the-baradas.com>
5631
5632         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
5633         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
5634         renaming of non-live registers in interrupt functions.
5635         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
5636
5637 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
5638
5639         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
5640         Use integer for loop counter.
5641         (num_ending_zeros): New function.
5642         (number_of_iterations_cond): Use num_ending_zeros.
5643
5644 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
5645
5646         * config.gcc: Add support for --enable-e500_double.
5647
5648         * config/rs6000/e500-double.h: New file.
5649
5650         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
5651         TARGET_E500_DOUBLE.
5652
5653         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
5654         TARGET_E500_DOUBLE.
5655
5656         * config/rs6000/linuxspe.h: Same.
5657
5658         * doc/invoke.texi (Option Summary): Document new options for
5659         mfloat-gprs.
5660         (RS/6000 and PowerPC Options): Same.
5661
5662         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
5663         function.
5664         (rs6000_override_options): Use it.  Use
5665         SUB3TARGET_OVERRIDE_OPTIONS.
5666         Add 8548 to processor_target_table.
5667         (rs6000_legitimate_address): Handle e500 doubles.
5668         (rs6000_legitimize_address): Same.
5669         (rs6000_legitimize_reload_address): Same.
5670         (rs6000_hard_regno_nregs): Same.
5671         (spe_func_has_64bit_regs_p): Same.
5672         (emit_frame_save): Same.
5673         (gen_frame_mem_offset): Same.
5674         (rs6000_dwarf_register_span): Same.
5675         (rs6000_generate_compare): Same.
5676         (easy_fp_constant): Same.
5677         (legitimate_offset_address_p): Same.
5678
5679         * config/rs6000/spe.md: (cmdfeq_gpr): New.
5680         (tstdfeq_gpr): New.
5681         (cmpdfgt_gpr): New.
5682         (tstdfgt_gpr): New.
5683         (tstdfgt_gpr): New.
5684         (cmpdflt_gpr): New.
5685         (tstdflt_gpr): New.
5686         Add new constants.
5687
5688 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5689
5690         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
5691
5692 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
5693
5694         * dbxout.c: Remove unnecessary #undefs.
5695         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
5696         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
5697         definition into use sites.
5698         (cwd): Make local to dbxout_init.
5699         (dbxout_init): Restructure cwd-using logic for clarity.  Use
5700         IS_DIR_SEPARATOR.
5701         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
5702         STABS_GCC_MARKER folded in here.
5703         * system.h: Poison now-unused macros.
5704         * doc/tm.texi: Remove documentation of now-unused macros.
5705
5706 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
5707
5708         PR c/17538
5709         * c-opts.c (push_command_line_include): Use the current file
5710         name instead of the main one.
5711
5712 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
5713
5714         PR objc/17923
5715         * tree.c (staticp): A CONST_DECL has static storage if either
5716         TREE_STATIC or DECL_EXTERNAL is set.
5717         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
5718         have null names.
5719
5720 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5721
5722         * expr.c (store_expr): Remove dont_store_target.
5723
5724 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5725
5726         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
5727
5728 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5729
5730         * tree-cfg.c (thread_jumps): Move a part of it to ...
5731         (thread_jumps_from_bb): ... here.
5732
5733 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
5734
5735         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
5736         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
5737
5738 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5739
5740         * expr.c (store_expr): Clean up by renaming want_value to
5741         call_param_p.
5742
5743 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
5744
5745         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
5746         fixup pc here.
5747
5748 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
5749
5750         PR 18004.
5751         * expmed.c (store_bit_field): Pass original 'value' before
5752         recursing.
5753
5754 2004-10-21  Nicolas Pitre <nico@cam.org>
5755
5756         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
5757         * config/arm/ieee754-df.S: Ditto.
5758
5759 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
5760
5761         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
5762         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
5763         Default to 0.
5764         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
5765         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
5766         an internal label and an N_SLINE .stabn whose value is the
5767         difference between that label and the function entry label.
5768         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
5769         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
5770         label and an N_SO stab with an empty string referring to it.
5771         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
5772         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
5773         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
5774         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
5775         macro is never defined.
5776         * sdbout.c (sdbout_source_line_counter): Delete.
5777         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
5778         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
5779         only two arguments.
5780         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
5781
5782         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
5783         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
5784         definitions (identical to default).
5785         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
5786         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
5787         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
5788         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
5789         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
5790         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
5791         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
5792         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
5793         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
5794         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
5795         (sym_lineno): Delete.
5796         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
5797         now-unused variable.
5798         (alpha_output_lineno): Delete.
5799         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
5800         * config/mips/mips.c (mips_output_filename): Don't use
5801         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
5802         (mips_output_lineno): Delete.
5803         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
5804         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
5805         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
5806         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
5807         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
5808         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
5809         * config/mmix/mmix.h: Likewise.
5810         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
5811         * config/mmix/mmix-protos.h: Don't prototype it.
5812         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
5813         no need to #undef ASM_OUTPUT_SOURCE_LINE.
5814         * config/arm/aout.h: Remove RISCiX-specific definition of
5815         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
5816         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
5817         ASM_OUTPUT_SOURCE_LINE.
5818         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
5819         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
5820         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
5821
5822         * doc/tm.texi: Update.
5823
5824 2004-10-20  Richard Henderson  <rth@redhat.com>
5825
5826         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
5827
5828 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
5829
5830         * configure.ac: Revert my previous patch.
5831         * configure: Regenerate.
5832
5833 2004-10-20  Ben Elliston  <bje@au.ibm.com>
5834
5835         * config/rs6000/rs6000.c
5836         (rs6000_va_start): Use build_va_arg_indirect_ref.
5837         (rs6000_gimplify_va_arg): Likewise.
5838
5839 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
5840
5841         PR java/15575
5842         * configure.ac: Declare AM_LANGINFO_CODESET.
5843         * aclocal.m4: Define AM_LANGINFO_CODESET.
5844         * configure, config.in: Rebuilt.
5845
5846 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
5847
5848         * expr.c (store_expr): Remove code that is run when
5849         want_value & 1 is nonzero.
5850
5851 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
5852
5853         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
5854         from function pointer to void *.
5855
5856 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5857
5858         PR target/18032
5859         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
5860         the frame pointer adjustment when exception handling is enabled.
5861
5862 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
5863
5864         * stor-layout.c: Fix a comment typo.
5865
5866 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
5867
5868         * expr.c (store_field): Remove two arguments value_mode and
5869         unsignedp.
5870         (expand_assignment, store_constructor_field,
5871         expand_expr_real_1): Adjust calls to store_field.
5872
5873 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
5874
5875         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
5876
5877         PR target/17317
5878         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
5879         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
5880         base and index register for loads.
5881
5882         * config/arc/t-arc: Fix multilib handling.
5883
5884 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
5885
5886         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
5887         don't inspect BLOCK_FOR_INSN for barriers.
5888         * emit-rtl.c (emit_barrier_before): Revert last change.
5889         (emit_barrier_after, emit_barrier): Ditto.
5890
5891         * doc/extend.texi (Extended Asm): Warn and provide example
5892         solution for using a call-clobbered asm register.
5893         (Local Reg Vars): Similar.  Cross-reference example.
5894
5895 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
5896
5897         * tree-cfg.c (group_case_labels): Look at the second to last
5898         case statement for combing with the default case.
5899
5900 2004-10-19  Richard Hendeson  <rth@redhat.com>
5901
5902         PR 17962
5903         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
5904
5905 2004-10-19  Richard Hendeson  <rth@redhat.com>
5906
5907         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
5908         succeeds, only expand the result.
5909
5910 2004-10-19  Richard Hendeson  <rth@redhat.com>
5911
5912         PR middle-end/17885
5913         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
5914         of INDIRECT_REF.
5915
5916 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
5917
5918         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
5919         loop with goto.
5920
5921 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
5922
5923         * expr.c (expand_assignment): Remove the last argument.
5924         Change the return type to void.
5925         * expr.h: Update the prototype of expand_assignment.
5926         * function.c (assign_parm_setup_reg): Update a call to
5927         expand_assignment.
5928         * stmt.c (expand_asm_expr): Likewise.
5929
5930 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
5931
5932         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
5933         unnecessary assignments to temp.  Return const0_rtx.
5934
5935 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5936
5937         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
5938
5939 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
5940
5941         * configure.ac (powerpc-*-darwin*): Require assembler to support
5942         .machine directive.
5943         * configure: Regenerate.
5944
5945 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
5946
5947         * reload1.c (ior_hard_reg_set): Remove.
5948         (finish_spills): Use IOR_HARD_REG_SET instead of
5949         ior_hard_reg_set.
5950
5951 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
5952
5953         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
5954         the currently visited word to right.
5955
5956 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5957
5958         PR middle-end/18045
5959         * expmed.c (expand_smod_pow2): Handle modes whose size
5960         is greater than that of HOST_WIDE_INT.
5961
5962 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
5963
5964         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
5965
5966 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5967             Roger Sayle  <roger@eyesopen.com>
5968
5969         PR middle-end/17813
5970         * dojump.c (discard_pending_stack_adjust): New function.
5971         (clear_pending_stack_adjust): Call it.
5972         * expr.h (discard_pending_stack_adjust): Declare it.
5973         * explow.c (emit_stack_save): Emit pending stack adjustments
5974         before saving the stack pointer.
5975         (emit_stack_restore): Discard pending stack adjustments before
5976         restoring the stack pointer.
5977
5978 2004-10-18  Richard Henderson  <rth@redhat.com>
5979
5980         * c-common.c (handle_mode_attribute): Allow scalar->vector
5981         type changes yet.
5982
5983 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
5984
5985         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
5986         value to expand_assignment.
5987
5988 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
5989
5990         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
5991         thread_jumps.
5992         (thread_jumps): Iterate until no new forwarder block arises.
5993
5994 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
5995
5996         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
5997         (thread_jumps): Use forwardable as cache of
5998         tree_forwarder_block_p throughout the function.
5999
6000 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6001
6002         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
6003
6004 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
6005
6006         PR middle-end/15014
6007         PR middle-end/16973
6008         * tree-cfg.c (remove_bb): If we have a label expression in the
6009         basic block and the label we have taken the address, move the
6010         label expression to the basic block which is previous in the
6011         linked list.
6012         (tree_verify_flow_info): Fix printing out the label name of the
6013         problematic label expression.
6014
6015 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
6016
6017         PR rtl-optimization/18002
6018         * simplify-rtx.c (mode_signbit_p): Externalize function...
6019         * rtl.h (mode_signbit_p): ... to here.
6020         * combine.c (simplify_shift_const): Recognize PLUS signbit as
6021         canonical form of XOR signbit and move to outer op.
6022
6023 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6024
6025         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
6026         Update all callers.
6027         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
6028         Don't call fold_stmt more than once, use bsi_replace.
6029
6030 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6031
6032         PR tree-optimization/17656
6033         * tree-ssa.c (replace_immediate_uses): When replacing a
6034         constant, if the call to fold_stmt produced a different
6035         statement, get an appropriate statement pointer by scanning
6036         STMT's basic block.
6037
6038 2004-10-18  Richard Henderson  <rth@redhat.com>
6039
6040         * pointer-set.c (hash1): Don't use libm functions in fallback case.
6041
6042 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
6043
6044         PR bootstrap/17684
6045         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
6046         (stage1-start): Remove and copy libunwind.a and
6047         libunwind*$(SHLIB_EXT) instead of libunwind*.
6048         (stage2-start): Likewise.
6049         (stage3-start): Likewise.
6050         (stage4-start): Likewise.
6051         (stageprofile-start): Likewise.
6052         (stagefeedback-start): Likewise.
6053
6054         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
6055         the shared library to be created and don't remove the existing
6056         shared library.
6057         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
6058         * config/i386/t-nwld (SHLIB_LINK): Likewise.
6059         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
6060         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
6061         * config/sh/t-linux (SHLIB_LINK): Likewise.
6062         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
6063         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
6064         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
6065         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6066
6067         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
6068         files.
6069
6070 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6071
6072         * basic-block.h (reg_set_iterator): New.
6073         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
6074         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
6075         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
6076         * caller-save.c (save_call_clobbered_regs): Adjust to the new
6077         style.
6078         * cfgcleanup.c (thread_jump): Likewise.
6079         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6080         * conflict.c (conflict_graph_compute): Likewise.
6081         * flow.c (verify_local_live_at_start, update_life_info,
6082         initialize_uninitialized_subregs, propagate_one_insn,
6083         init_propagate_block_info, free_propagate_block_info,
6084         propagate_block, dump_regset): Likewise.
6085         * global.c (global_conflicts): Likewise.
6086         * graph.c (start_bb): Likewise.
6087         * local-alloc.c (update_equiv_regs): Likewise.
6088         * loop.c (load_mems): Likewise.
6089         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
6090         find_reg, finish_spills): Likewise.
6091         * resource.c (mark_target_live_regs): Likewise.
6092         * sched-deps.c (sched_analyze_insn): Likewise.
6093         * sched-rgn.c (sched-rgn.c): Likewise.
6094         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
6095
6096 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
6097
6098         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
6099         operand 1 instead of 2
6100
6101 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6102
6103         * loop-unroll.c: Fix comment typos.
6104
6105 2004-10-18  Revital Eres  <eres@il.ibm.com>
6106
6107         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
6108         * loop-unroll.c: Include varray.h.
6109         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
6110         opt_info and expand it to support variable expansion.
6111         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
6112         expand it to support variable expansion.
6113         (pt_info_start_duplication): Rename si_info_start_duplication.
6114         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
6115         to the variable expansion optimization.
6116         (free_opt_info): Rename free_si_info.
6117         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
6118         expand_var_during_unrolling, insert_var_expansion_initialization,
6119         combine_var_copies_in_loop_exit, release_var_copies,
6120         get_expansion): New functions.
6121         (peel_loop_completely, unroll_loop_constant_iterations,
6122         unroll_loop_runtime_iterations, peel_loop_simple,
6123         unroll_loop_stupid): Change uses of struct si_info
6124         to struct opt_info
6125         and add uses of fvariable-expansion-in-unroller flag.
6126         * params.def: Add parameter to restrict the number of expansions.
6127         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
6128         the number of expansions.
6129         * common.opt: (fvariable-expansion-in-unroller): New flag.
6130         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
6131
6132 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
6133
6134         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
6135         __GXX_MERGED_TYPEINFO_NAMES to 0.
6136
6137 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
6138
6139         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6140         handle barriers in a bb by checking that it points to a NULL bb.
6141         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
6142         (emit_barrier_after, emit_barrier): Ditto.
6143
6144 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
6145
6146         * doc/extend.texi (Attribute Syntax): Clarify details of
6147         attributes on parameters.
6148
6149 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
6150
6151         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
6152         loop.
6153
6154 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6155
6156         Revert:
6157         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6158
6159         * c-typeck.c (default_function_array_conversion): Always create
6160         &a[0] for array types.
6161         (build_unary_op): Do not fold &a[x] into a + x.
6162
6163 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6164
6165         PR middle-end/17925
6166         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
6167         block if there is a goto with a locus.
6168
6169 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6170
6171         * config/elfos.h, config/gofast.h, config/interix.h,
6172         config/netbsd.h, config/svr3.h, config/vxworks.h,
6173         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
6174         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
6175         config/alpha/netbsd.h, config/arm/arm-modes.def,
6176         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
6177         config/cris/aout.h, config/frv/frv-modes.def,
6178         config/i386/beos-elf.h, config/i386/gas.h,
6179         config/i386/i386-coff.h, config/i386/i386-modes.def,
6180         config/i386/linux.h, config/i386/linux64.h,
6181         config/i386/mingw32.h, config/i386/netbsd-elf.h,
6182         config/i386/netbsd64.h, config/i386/sco5.h,
6183         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
6184         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
6185         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
6186         config/mips/mips-modes.def, config/mips/sdb.h,
6187         config/mips/vr.h, config/mips/vxworks.h,
6188         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
6189         config/pa/pa32-linux.h, config/rs6000/40x.md,
6190         config/rs6000/7450.md, config/rs6000/8540.md,
6191         config/rs6000/linuxspe.h, config/rs6000/power4.md,
6192         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
6193         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
6194         config/s390/s390-modes.def, config/sh/elf.h,
6195         config/sh/sh-modes.def, config/sh/sh64.h,
6196         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
6197         config/stormy16/stormy16.md, config/v850/v850-protos.h,
6198         config/vax/vax.md: Update copyright.
6199
6200 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * expr.c (expand_expr_real_1): Remove an obsolete comment.
6203
6204 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6205
6206         * c-typeck.c (default_function_array_conversion): Always create
6207         &a[0] for array types.
6208         (build_unary_op): Do not fold &a[x] into a + x.
6209
6210 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
6211
6212         * pointer-set.c (hash1): Use integer part of 2^64 / phi
6213         instead 2^32 / phi if long is 64-bit.
6214
6215 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
6216
6217         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
6218         RID_PTRVALUE.
6219         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
6220         declarations.
6221         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
6222         __ptrextent__, __ptrvalue and __ptrvalue__.
6223         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
6224         entries.
6225
6226 2004-10-16  Dale Johannesen  <dalej@apple.com>
6227
6228         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
6229
6230 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6231
6232         PR tree-optimization/17766
6233         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
6234         (dom_info_available_p): Declare.
6235         * cfghooks.c (split_block, make_forwarder_block): Use
6236         dom_info_available_p.
6237         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
6238         free_dominance_info, verify_dominators): Ditto.
6239         (dom_info_available_p): New function.
6240         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
6241         (thread_jumps): Use dom_info_available_p.
6242         * tree-complex.c (expand_complex_div_wide): Ditto.
6243         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
6244
6245 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6246
6247         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
6248         (find_best_candidate): Take also important candidates into account.
6249         (find_optimal_iv_set): Initialize important_candidates bitmap.
6250
6251 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6252
6253         PR tree-optimization/17560
6254         * predict.c (tree_estimate_probability): Mark irreducible
6255         loops.
6256
6257 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6258
6259         PR rtl-optimization/17723
6260         * cfgcleanup.c (merge_memattrs): Handle case when
6261         MEM_SIZE == NULL_RTX.
6262
6263 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
6264
6265         * toplev.c (dump_file_name): Change type to be const.
6266
6267 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
6268
6269         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
6270         non_lvalue to stop something being a null pointer constant.
6271
6272 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
6273
6274         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
6275         available for TARGET_FPRS.
6276         (FUNCTION_VALUE_REGNO_P): Same.
6277
6278 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
6279
6280         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6281         -maltivec in same style as other ISA options.
6282
6283 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
6284
6285         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
6286         definition.
6287
6288 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
6289
6290         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
6291         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
6292         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
6293         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
6294         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
6295         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
6296         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
6297         predict.def, predict.h, protoize.c, reload.h, resource.h,
6298         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
6299         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
6300         unwind-sjlj.c, value-prof.h: Update copyright.
6301
6302 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
6303
6304         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
6305
6306 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
6307
6308         * tree-optimize.c (execute_one_pass): Stop timer right after
6309         executing the pass.
6310
6311 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6312
6313         Revert:
6314         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6315         PR middle-end/17967
6316         Revert:
6317                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
6318                 (remove_useless_stmts_1):  Fold trees we know how to fold.
6319
6320 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
6321
6322         * configure.ac: Add .machine power4 directive when testing for
6323         mfcr field.
6324         * configure: Regenerate.
6325
6326 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
6327
6328         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
6329
6330 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6331
6332         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
6333         always.
6334
6335 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
6336
6337         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
6338         for 'f' if !TARGET_FPRS.
6339
6340 2004-10-14  Richard Henderson  <rth@redhat.com>
6341
6342         PR debug/14492
6343         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
6344
6345 2004-10-14  Richard Henderson  <rth@redhat.com>
6346
6347         PR c/17023
6348         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
6349         as error_mark_node.
6350         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
6351         instaed of current_function_decl non-null.
6352
6353 2004-10-14  Matt Austern  <austern@apple.com>
6354
6355         * pointer-set.c: New file, special-purpose hash table.
6356         * pointer-set.h: New file.
6357         * tree.h (struct pointer_set_t): Declare as opaque type.
6358         (tree_walk): Last argument is pointer_set_t* now.
6359         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
6360         (walk_type_fields):
6361         (walk_tree): Convert from htab_t to pointer_set_t for keeping
6362         track of which nodes have already been visited.
6363         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
6364         * cgraphunit.c (cgraph_create_edges): Likewise.
6365         (cgraph_characterize_statics_local): Likewise.
6366         * tree-dfa.c (collect_dfa_stats): Likewise.
6367         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
6368         pointer_set_t* now.
6369         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
6370         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
6371         of walk_subtrees is pointer_set_t* now.
6372         * Makefile.in (OBJS-common): add pointer-set.o
6373         (tree-inline.o): Depends on pointer-set.h
6374         (tree-dfa.o): Likewise
6375         (cgraphunit.o): Likewise
6376
6377 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
6378
6379         * config/rs6000/darwin.h (ASM_SPEC): Delete.
6380         (TARGET_ASM_FILE_START): Define.
6381         * config/darwin.h (ASM_SPEC): Define.
6382         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
6383         -mlong-double-128, it's the default.  Update comment about reason
6384         for force_cpusubtype_ALL.
6385         * config/rs6000/darwin-vecsave.asm: Supply .machine.
6386         * config/rs6000/darwin-world.asm: Likewise.
6387         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
6388         (symbolic_operand): Delete #if 0ed code.
6389
6390 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6391
6392         * stmt.c (add_case_node): Make sure that we have integer
6393         constant before calling tree_int_cst_compare.
6394
6395 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6396
6397         PR middle-end/17967
6398         Revert:
6399                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
6400                 (remove_useless_stmts_1):  Fold trees we know how to fold.
6401
6402 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
6403
6404         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
6405         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
6406         -m64.
6407
6408 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
6409
6410         * reload.c (find_reloads): When reloading a PLUS with constant
6411         operand, make sure the constant is pushed to the constant pool
6412         if required.
6413         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
6414         reload bug workaround.
6415         (s390_expand_plus_operand): Likewise.
6416
6417 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
6418
6419         * opts.c (common_handle_option): Do not enable
6420         flag_speculative_prefetching for -fprofile-generate/use.
6421
6422 2004-10-14  Devang Patel  <dpatel@apple.com>
6423
6424         PR 17635
6425         * tree-if-conv.c (process_phi_nodes): Process latch block.
6426         (combine_blocks): Process latch block and update loop structure.
6427
6428 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
6429
6430         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
6431         (vect_update_ivs_after_vectorizer):
6432         (vect_transform_for_unknown_loop_bound):
6433         (tree_duplicate_loop_to_edge):
6434         (allocate_new_names):
6435         (rename_use_op):
6436         (rename_def_op):
6437         (rename_variables_in_bb):
6438         (free_new_names):
6439         (rename_variables_in_loop):
6440         (copy_phi_nodes):
6441         (update_phis_for_duplicate_loop):
6442         (update_phi_nodes_for_guard):
6443         (make_loop_iterate_ntimes):
6444         (tree_duplicate_loop_to_edge_cfg):
6445         (add_loop_guard):
6446         (vect_analyze_loop_with_symbolic_num_of_iters):
6447         (verify_loop_for_duplication):
6448         (vect_gen_niters_for_prolog_loop):
6449         (vect_update_niters_after_peeling):
6450         (vect_update_inits_of_dr):
6451         (vect_update_inits_of_drs):
6452         (vect_build_loop_niters):
6453         (vect_do_peeling_for_alignment): New functions.
6454         (vect_transform_loop): Add unknown and known but indivisible loop
6455         bound support; add peeling for unalignment support.
6456         (vect_analyze_loop_form): Support symbolic number of iterations.
6457         (vect_transform_loop_bound): New input parameter.
6458         (vect_get_loop_niters): Change input parameter type.
6459         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
6460         (vectorizable_store): Allow unaligned access.
6461         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
6462         (vect_analyze_data_refs_alignment): Allowed one unaligned
6463         store.
6464         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
6465         to use tree.
6466         (LOOP_VINFO_INT_NITERS): New macro.
6467         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
6468         (do_peeling_for_alignment):
6469         (unaligned_drs): New members of _loop_vec_info.
6470         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
6471
6472 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
6473
6474         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
6475         (struct tree_string): Remove "const" qualifier for "str".
6476
6477 2004-10-14  Ira Rosen  <irar@il.ibm.com>
6478
6479         * tree-vectorizer.c (vect_analyze_data_refs): Call
6480         vect_get_base_and_bit_offset to get memory tag for array ref.
6481         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
6482
6483 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
6484
6485         * configure.ac: Use $LN_S for creating symlinks (not $LN).
6486         * configure: Regenerate.
6487
6488 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6489
6490         * doc/install.texi (*-*-solaris2*): Update with info about kernel
6491         patches to solve spurious testsuite failures.
6492
6493 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
6494
6495         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
6496         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
6497         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
6498         gcc_assert under ENABLE_CHECKING.
6499         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
6500         get_vectype_for_scalar_type).
6501
6502         (vect_get_vec_def_for_operand): Remove redundant variables.
6503         (vect_transform_loop): Likewise.
6504
6505 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
6506
6507         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
6508         global for -mcaller-super-interworking.
6509         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
6510         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
6511         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
6512         not need a frame pointer.
6513         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
6514         the soft frame pointer offset.
6515         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
6516         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
6517         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
6518         the stack.  Use frame_pointer_needed to choose between them.
6519         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
6520         (interwork_with_frame): New macro.
6521         (interwork): Add _interwork_{r7,r11}_call_via_rN().
6522
6523 2004-10-14  Ben Elliston  <bje@au.ibm.com>
6524
6525         PR other/17900
6526         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
6527         up the filename looking for a previous directory separator.
6528
6529 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6530
6531         * c-tree.h (enum c_typespec_kind, struct c_typespec,
6532         parser_xref_tag): New.
6533         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
6534         typedef_p.
6535         (declspecs_add_type): Adjust prototypes.
6536         * c-parse.in (%union): Add tstype.
6537         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
6538         typespec_reserved_attr, typespec_nonreserved_nonattr,
6539         structsp_attr, structsp_nonattr): Change to tstype.  Update
6540         actions.
6541         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
6542         (declspecs_add_type): Update to take struct c_typespec argument.
6543         Set tag_defined_p and typedef_p as appropriate.
6544         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
6545         Update to return struct c_typespec.
6546         (shadow_tag_warned): Don't let empty declarations with qualifiers
6547         or storage class specifiers redeclare a tag if a previous
6548         declaration is visible.
6549
6550 2004-10-13  Richard Henderson  <rth@redhat.com>
6551
6552         PR debug/15860
6553         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
6554         for DECL_INCOMING_RTL.
6555
6556 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
6557
6558         PR target/17984
6559         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
6560         trunc_int_for_mode for constants used in shortened mode.
6561
6562 2004-10-13  Richard Henderson  <rth@redhat.com>
6563
6564         PR c/17384
6565         * c-common.c (handle_mode_attribute): Disallow mode changes that
6566         alter the CODE of the top-level type.
6567
6568         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
6569         integer from internal limits macros.
6570         * config/i386/mm3dnow.h (__v2sf): Fix base type.
6571
6572 2004-10-13  Richard Henderson  <rth@redhat.com>
6573
6574         PR debug/13841
6575         * function.c (instantiate_decl): Recurse for CONCAT.
6576
6577 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
6578
6579         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
6580         andi./andis.
6581         (anddi3): Same.
6582         (extzvdi_internal1): Add attribute "compare".
6583         (extzvdi_internal2): Same.
6584
6585 2004-10-12  Tom Tromey  <tromey@redhat.com>
6586
6587         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
6588
6589 2004-10-13  Dale Johannesen  <dalej@apple.com>
6590
6591         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
6592
6593 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
6594
6595         * toplev.c (compile_file): Call mudflap_finish_file from here ...
6596         * c-decl.c (c_write_global_declarations): ... instead of here ...
6597         * cp/decl.c (cp_finish_file): ... and here.
6598         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
6599
6600 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
6601
6602         * tree-ssa-dom.c (record_range): Free the element if we are not
6603         going to use it.
6604
6605 2004-10-13  Tom Tromey  <tromey@redhat.com>
6606
6607         PR java/15578:
6608         * gcc.c (option_map): Added --extdirs and --encoding.
6609
6610 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6611
6612         PR target/14454
6613         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
6614         sparc_can_output_mi_thunk.
6615         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
6616         handling of vcall offset.
6617         (sparc_can_output_mi_thunk): New predicate.
6618         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
6619         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
6620         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
6621
6622         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
6623
6624         * config/sparc/sparc.md (movdi): Remove redundant test.
6625
6626 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
6627
6628         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
6629         TDF_IPA from -fdump-tree-*-all.
6630
6631 2004-10-13  Paul Brook  <paul@codesourcery.com>
6632
6633         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
6634         * config/arm/arm.c (thumb_find_work_register): Update comments.
6635         (arm_load_pic_register): Add argument for scratch register.
6636         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
6637         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
6638
6639 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
6640
6641         * tree-data-ref.c: Fix comment typos.
6642
6643 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
6644             Zdenek Dvorak  <dvorakz@suse.cz>
6645
6646         PR tree-optimization/17724
6647         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
6648
6649 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
6650
6651         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
6652         (altivec_builtin_mask_for_store): Likewise.
6653         (altivec_init_builtins): Use lang_hooks.builtin_function to
6654         create the decls for builtin_altivec_mask_for_load/store.
6655
6656 2004-10-13  Nick Clifton  <nickc@redhat.com>
6657
6658         * config/c4x/c4x.c: Remove inclusion of loop.h.
6659
6660 2004-10-12  Ben Elliston  <bje@au.ibm.com>
6661
6662         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
6663         (ei_container): New; renamed.
6664         (ei_start, ei_last): New macros.
6665         (ei_start_1, ei_last_1): Renamed from ei_start.
6666         (ei_last_1, ei_end_p): Use ei_container() where applicable.
6667         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
6668         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
6669
6670 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
6671
6672         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
6673         * cfgloop.c (initialize_loops_parallel_p): New.
6674         (flow_loops_find): Initialize the parallel_p field to true for all
6675         the loops.
6676         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
6677         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
6678         the size of the data accessed in the loop.
6679         (struct nb_iter_bound): Moved...
6680         * cfgloop.h (struct nb_iter_bound): ... here.
6681         (estimated_nb_iterations, parallel_p): New fields in struct loop.
6682         (record_estimate): Declare extern here.
6683         * tree-chrec.c: Fix comments.
6684         (nb_vars_in_chrec): New function.
6685         * tree-chrec.h (nb_vars_in_chrec): Declared here.
6686         * tree-data-ref.c: Don't include lambda.h, that is already included
6687         in tree-data-ref.h.
6688         (tree_fold_divides_p): Don't check for integer_onep.
6689         (tree_fold_bezout): Removed.
6690         (gcd): New static duplicated function.
6691         (int_divides_p, dump_subscript): New.
6692         (dump_data_dependence_relation): Use dump_subscript.
6693         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
6694         estimate_niter_from_size_of_data): New.
6695         (analyze_array_indexes, analyze_array): Call
6696         estimate_niter_from_size_of_data during the detection of array
6697         references.  Pass in a pointer to the statement that contains the
6698         array reference.
6699         (all_chrecs_equal_p): New.
6700         (compute_distance_vector): Renamed compute_subscript_distance.
6701         Deal with multivariate conflict functions.
6702         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
6703         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
6704         (non_affine_dependence_relation): New.
6705         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
6706         analyze_siv_subscript, analyze_miv_subscript,
6707         analyze_overlapping_iterations, subscript_dependence_tester):
6708         Initialize and return last_conflicts function.
6709         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
6710         compute_overlap_steps_for_affine_1_2): New.
6711         (analyze_siv_subscript_affine_cst): Removed.
6712         (analyze_subscript_affine_affine): Disprove dependences based on the
6713         iteration domains.  Solve the univariate dependence case as before,
6714         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
6715         Implement the multivariate case of 2 versus 1 variables.
6716         (build_classic_dist_vector, build_classic_dir_vector): Implement some
6717         unhandled cases.
6718         (find_data_references_in_loop): Compute and initialize
6719         loop->estimated_nb_iterations and loop->parallel_p.
6720         (analyze_all_data_dependences): Modify the debug dump order.
6721         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
6722         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
6723         (SUB_LAST_CONFLICT, subscript->last_conflict,
6724         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
6725         DDR_AFFINE_P, DDR_SIZE_VECT): New.
6726         (find_data_references_in_loop, initialize_data_dependence_relation,
6727         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
6728
6729 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
6730
6731         * configure: Regenerate.
6732
6733 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
6734
6735         PR 17892
6736         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
6737         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
6738         and constant folding of floating point MULT_EXPR/PLUS_EXPR
6739         expressions.
6740
6741 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
6742
6743         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
6744         (s390_gimplify_va_arg): Likewise.
6745
6746 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
6747
6748         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
6749         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
6750         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
6751         * regclass.c (record_address_regs): Remove ifdef.  Use
6752         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
6753         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
6754         definition.
6755         (scan_rtx_address, replace_oldest_value_addr): Use
6756         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
6757         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
6758         unnecessary definitions.
6759         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
6760         and MODE_BASE_REG_REG_CLASS.
6761         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
6762         (MODE_BASE_REG_REG_CLASS): Define.
6763         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
6764         (REG_MODE_OK_FOR_REG_BASE_P): Define.
6765         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
6766         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
6767
6768 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
6769
6770         * tree-ssa-alias.c (verify_name_tags): New function.
6771         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
6772         (verify_alias_info): Call verify_name_tags.
6773
6774 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
6775
6776         PR rtl-optimization/17931
6777         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
6778         ZERO_EXTRACT in it.
6779
6780 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
6781
6782         * arm.c (arm_print_operand): Use output_operand_lossage where possible
6783         rather than aborting.
6784
6785 2004-10-12  Paul Brook  <paul@coudesourcery.com>
6786
6787         * config.gcc: Add armv6{k,z,zk}
6788         * config/arm/arm-cores.def: Add arm1176 and mpcore.
6789         * config/arm/tune.md: Regenerate.
6790         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
6791         Define.
6792         (all_architectures): Add armv6k, armv6z, armv6zk.
6793         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
6794         * doc/invoke.texi: Document new arch and cpu values.
6795
6796 2004-10-12  Paul Brook  <paul@coodesourcery.com>
6797
6798         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
6799         meabi=4.
6800
6801 2004-10-12  Paul Brook  <paul@codesourcery.com>
6802
6803         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
6804         Handle negative constants.
6805
6806 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
6807
6808         PR c/17301
6809         * c-typeck.c (convert_arguments): Return error_mark_node if there
6810         are too few arguments.
6811         (build_function_call): Handle error_mark_node return from
6812         convert_arguments.
6813
6814 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
6815
6816         * configure.ac (symbolic_link): Replace with $LN_S.
6817         (Assembler/Linker): Hard link from gas and binutils trees.
6818         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
6819         * configure: Regenerate.
6820
6821 2004-10-12  Paul Brook  <paul@codesourcery.com>
6822
6823         * configure.ac: Don't look for host assembler when building a canadian
6824         cross.
6825         * configure: Regenerate.
6826
6827 2004-10-11  Roger Sayle  <roger@eyesopen.com>
6828
6829         PR other/17361
6830         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
6831         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
6832         line options for "-lang-asm" and if found allow any of the C-family
6833         front-end options.
6834         (c_common_handle_option): Remove last use of permit_fortran_options.
6835
6836 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
6837
6838         * config/s390/s390.c (print_operand): Support 'S' format flag.
6839         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
6840         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
6841         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
6842         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
6843         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
6844         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
6845         ("*movstricthi"): Likewise.
6846         ("*load_multiple_di", "*load_multiple_si"): Likewise.
6847         ("*store_multiple_di", "*store_multiple_si"): Likewise.
6848         ("*sethiqisi", "*sethihisi"): Likewise.
6849         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
6850         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
6851         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
6852         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
6853         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
6854
6855         ("*tmhi_full"): Fix incorrect op_type attribute.
6856
6857         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
6858         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
6859         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
6860         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
6861
6862 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
6863
6864         PR middle-end/16266
6865         * function.c (temp_slots_at_level): Fix typo which creates too
6866         many temp stack slots levels.
6867
6868 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
6869
6870         * config/s390/s390.c (s390_trampoline_template): Generate shorter
6871         trampoline code.
6872         (s390_trampoline_instantiate): Adapt.
6873         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
6874
6875 2004-10-11  Roger Sayle  <roger@eyesopen.com>
6876
6877         PR middle-end/17657
6878         * stmt.c (add_case_node): Add additional type argument.  Declare
6879         as static to match prototype.  Convert the upper and lower bounds
6880         to the specified index type.  Optimize away case ranges/values
6881         that are outside the index type's bounds.  Truncate case ranges
6882         that span the index type's bounds.
6883         (expand_case): Avoid unnessary computation and memory allocation
6884         when index type is error_mark_node.  Pass index_type as required
6885         by change to add_case_node API.  No need to convert case range
6886         bounds to index_type, this is now done by add_case_node.
6887
6888 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
6889
6890         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
6891         * config/s390/s390.c (s390_offset_p): New function.
6892         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
6893         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
6894         transform Q->Q alternatives to *clc pattern.
6895         ("*clc"): Move.
6896         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
6897         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
6898         to transform Q->Q alternatives to *mvc pattern.
6899         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
6900         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
6901         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
6902         transform Q->Q alternatives to *nc pattern.
6903         ("*nc"): New insn.  New peephole to merge adjacent NCs.
6904         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
6905         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
6906         transform Q->Q alternatives to *oc pattern.
6907         ("*oc"): New insn.  New peephole to merge adjacent OCs.
6908         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
6909         transform Q->Q alternatives to *xc pattern.
6910         ("*xc"): New insn.  New peephole to merge adjacent XCs.
6911         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
6912
6913 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
6914
6915         * gimplify.c (gimple_push_condition): Make sure that we don't
6916         have any saved condition cleanup if we were at the top level.
6917
6918 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
6919
6920         * config/frv/frv.md (*adddi3_internal): Change name to...
6921         (adddi3): ...replacing the exisiting define_expand.  Combine
6922         alternatives.  Fix the range of the constant constraints ('J' instead
6923         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
6924         to extract the lower and upper halves of the DImode operands.
6925         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
6926         (adddi3_lower): Fix the range of the constant constraints and
6927         remove the bogus operands[2] check.
6928         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
6929         operand 2.  Use addxi to handle constant operands.
6930         (subdi3_lower, subdi3_upper): Don't handle constant operands.
6931
6932 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
6933
6934         * gengtype-lex.l: Add commented } & ) characters to unconfuse
6935         editor's paren matching. Allow #define inside a struct.
6936
6937 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
6938
6939         PR middle-end/17703
6940         part of PR c++/17657
6941         * fold-const.c (fold_build_cleanup_point_expr): New function.
6942         * tree.h (fold_build_cleanup_point_expr): Prototype.
6943
6944 2004-10-10  Eric Christopher  <echristo@redhat.com>
6945
6946         * dwarf2out.c: Move attribute to subprogram declaration
6947         instead of subroutine type.
6948
6949 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
6950
6951         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
6952         hoist_insn_after, and hoist_insn_to_edge.
6953         * rtl.h: Remove the prototypes for reg_referenced_between_p,
6954         no_jumps_between_p, and insn_dependent_p.
6955         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
6956         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
6957         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
6958         hoist_insn_to_edge): Remove.
6959
6960 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6961
6962         PR c/17881
6963         * c-decl.c (grokparms): Don't warn for parameters of incomplete
6964         type in declarations that are not definitions except for the case
6965         of parameters of void type.
6966
6967 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
6968
6969         * tree-cfg.c: Fix comment typos.
6970
6971 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6972
6973         PR c/17301
6974         * builtins.c (expand_builtin_va_start): Check for too few
6975         arguments to va_start.
6976
6977 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6978
6979         PR c/17189
6980         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
6981         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
6982         pedantic.
6983         * c-parse.in (component_decl): Don't pedwarn here for unnamed
6984         fields.
6985
6986 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
6987
6988         PR tree-optimization/17906
6989         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
6990         copy non-gimple reg arguments.
6991
6992 2004-10-09  Roger Sayle  <roger@eyesopen.com>
6993
6994         PR rtl-optimization/17853
6995         * simplify-rtx.c (simplify_relational_operation): Correct comment.
6996         Reorganize handling of comparison operations with floating point
6997         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
6998         Likewise, introduce support for comparison operations with vector
6999         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
7000
7001         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
7002         * doc/tm.texi: Likewise.
7003
7004 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7005
7006         * regs.h (struct reg_info_def): Remove the last_node_uid and
7007         changes_mode fields.
7008         (REGNO_LAST_NOTE_UID): Don't define.
7009         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
7010         * regmove.c (copy_src_to_dest): Likewise.
7011
7012 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7013
7014         PR middle-end/17894
7015         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
7016         relational comparison operator op needs to be swapped/reversed when
7017         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
7018
7019 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7020
7021         PR tree-opt/17902
7022         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
7023         instead of bsi_start.
7024         (value_replacement): Likewise.
7025         (abs_replacement): Likewise
7026
7027 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7028
7029         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
7030         (expand_gimple_cond_expr, expand_gimple_tailcall,
7031         expand_gimple_basic_block): Use it to dump RTL for each stmt.
7032         (tree_expand_cfg): Announce full RTL function dump.
7033         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
7034         not the graph version.
7035         * tree-pretty-print.c (dump_generic_node): Allow empty statements
7036         in the arms of a COND_EXPR for lowered nodes.
7037
7038 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
7039
7040         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
7041         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
7042         strtoufix16, strtoufix32, strtoufix64): Declare.
7043
7044 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7045
7046         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
7047         for an out-of-range floating point constant.
7048         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
7049         warning if the target format does not support infinities.
7050
7051 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7052
7053         * emit-rtl.c (last_label_num, base_label_num): Remove.
7054         (max_label_num): Always return label_num.
7055         (set_new_last_label_num, restore_emit_status): Remove.
7056         (init_emit): Don't initialize last_label_num.
7057         * function.c (pop_function_context_from): Don't call
7058         restore_emit_status.
7059         * function.h: Remove the prototype for restore_emit_status.
7060         * rtl.h: Remove the prototype for set_new_last_label_num.
7061
7062 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7063
7064         * stmt.c (expand_decl_init): Remove.
7065         * tree.h: Remove the corresponding prototype.
7066
7067 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7068
7069         * integrate.c (try_constants, subst_constants, mark_stores):
7070         Remove.
7071         * integrate.h: Remove the prototype for try_constants.
7072
7073 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7074
7075         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
7076         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
7077         comments about its relevance to errors.
7078         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
7079
7080 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7081
7082         PR c/16999
7083         * c-ppoutput.c (cb_ident): Don't quote string as it is already
7084         quoted.
7085
7086 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
7087
7088         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
7089         reference_node_pool.
7090
7091 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7092
7093         * tree-cfg.c: Fix a comment typo.
7094
7095 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
7096
7097         * config/s390/s390.c (s390_register_info): Don't save fprs for
7098         -msoft-float.
7099         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
7100
7101 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
7102
7103         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
7104         (TARGET_DEFAULT): Use symbolic values.
7105         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
7106         (TARGET_DEFAULT): Use symbolic values.
7107         * config/s390/s390.c (s390_backchain_string): Initialize to
7108         TARGET_DEFAULT_BACKCHAIN.
7109
7110 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7111
7112         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
7113         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
7114         code.
7115         (expand_builtin_strcat): Accept a type parameter.
7116         (fold_builtin_mempcpy): Accept a type and endp parameter.
7117
7118         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
7119         Accept an `exp' instead of an `arglist'.
7120
7121 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
7122
7123         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
7124         reverting my 2004-09-07 patch to use build_int_cst.
7125
7126 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7127
7128         PR target/17245
7129         * config/sparc/sparc.c (input_operand): Remove redundant code
7130         for handling LO_SUM.
7131         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
7132         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
7133         Otherwise only accept it for TFmode if quad move insns are available.
7134
7135 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7136
7137         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
7138         common cases will be caught earlier than others.
7139
7140 2004-10-08  Michael Matz  <matz@suse.de>
7141
7142         * loop-doloop.c (doloop_optimize): Extend count.
7143
7144 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7145
7146         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
7147         (prefetch): Convert to expander.
7148
7149 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7150
7151         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
7152         first argument of CALL.
7153         (tls_local_dynamic): Likewise.
7154
7155 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7156
7157         * c-typeck.c (enum impl_conv): New.
7158         (convert_for_assignment): Use it.  Take tree for function called
7159         instead of its name.  Handle ObjC selectors for diagnostics at
7160         start of function.  Select diagnostic text within the function
7161         using full sentences for diagnsotics.  Use %qE to name functions
7162         in diagnostics.
7163         (convert_arguments, build_modify_expr,
7164         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
7165         callers to convert_for_assignment.
7166         (warn_for_assignment): Remove.
7167
7168 2004-10-08  Nick Clifton  <nickc@redhat.com>
7169
7170         * config/sh/symbian.c (symbian_possibly_export_base_class):
7171         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
7172         TYPE_CONTAINS_VPTR_P.
7173
7174 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7175
7176         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
7177         fixed registers form all_used_regs. Update call_really_used_regs.
7178         (CALL_REALLY_USED_REGISTERS): Define.
7179         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
7180         with call_really_used_regs.
7181
7182 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
7183
7184         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
7185         for -profile as well as -p and -pg.
7186
7187 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
7188
7189         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
7190
7191 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7192
7193         * tree-cfg.c (tree_block_forwards_to): Remove.
7194         * tree-flow.h: Remove the corresponding prototype.
7195
7196 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7197
7198         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
7199         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
7200
7201 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
7202
7203         Radar 3813796
7204         * config/rs6000/rs6000.c (rs6000_generate_compare): When
7205         flag_trapping_math is in effect, don't generate subtract
7206         instructions.
7207
7208 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
7209
7210         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
7211         * config/s390/s390.c (s390_narrow_logical_operator): New function.
7212         (s390_extra_constraint_str): Add 'A' constraints.
7213         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
7214         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
7215         (CONSTRAINT_LEN): Likewise.
7216         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
7217         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
7218         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
7219         ("*iordi3"): Add OI alternative and splitter.
7220         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
7221         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
7222         ("*xordi3"): Add XI alternative and splitter.
7223         ("*xorsi3", "*xorhi3"): Likewise.
7224
7225 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7226
7227         * config/mips/mips.c (mips_function_rodata_section): New function.
7228         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
7229
7230 2004-10-07  Devang Patel  <dpatel@apple.com>
7231
7232         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
7233         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
7234         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
7235         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
7236         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
7237         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
7238         UNSPEC_VCONDU_V16QI): New constant defines.
7239         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
7240         vconduv16qi): New patterns.
7241         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
7242         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
7243         (get_vec_cmp_insn): Same.
7244         (get_vsel_insn): Same.
7245         (rs6000_emit_vector_compare): Same.
7246         (rs6000_emit_vector_select): Same.
7247         (INSN_NOT_AVAILABLE): New.
7248
7249 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7250
7251         PR tree-optimization/17749
7252         * tree-tailcall.c (find_tail_calls): Check that parameter is
7253         a gimple_reg.
7254
7255 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7256
7257         * config/ia64/ia64.c: Fix a comment typo.
7258
7259 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7260
7261         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
7262
7263 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7264
7265         PR c++/17115
7266         * tree-inline.c (expand_call_inline): Do not warn for functions
7267         marked with attribute noinline.
7268
7269 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7270
7271         PR target/17862
7272         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
7273         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
7274
7275         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
7276         of 0 as 4th argument to pass_by_reference.
7277         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
7278
7279 2004-10-06  Eric Christopher  <echristo@redhat.com>
7280
7281         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
7282         attribute.
7283
7284 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7285
7286         PR target/17770
7287         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
7288
7289 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7290
7291         PR rtl-optimization/17791
7292         * loop-doloop.c (doloop_modify): Take number of iterations as
7293         argument.
7294         (doloop_optimize): Extend or shorten the number of iterations
7295         when changing mode of counter register.
7296         * loop-iv.c (lowpart_subreg): Export.
7297         * rtl.h (lowpart_subreg): Declare.
7298
7299 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7300
7301         PR tree-optimization/17806
7302         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
7303         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
7304         flags moved to split_edge.
7305
7306 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7307
7308         PR middle-end/17835
7309         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
7310         before tentatively building the conditional move sequence.
7311
7312 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7313
7314         PR target/16815
7315         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
7316         check.
7317         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
7318         function_arg_padding.
7319
7320 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7321
7322         PR bootstrap/17857
7323         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
7324
7325 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7326
7327         * hooks.c (hook_int_void_1, hook_void_int): Remove.
7328         * hooks.h: Remove the corresponding prototypes.
7329
7330 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
7331
7332         PR middle-end/17849
7333         * tree-nested.c (walk_stmt_info): Add changed field.
7334         (convert_nonlocal_reference): Set changed to when we
7335         change a decl to unnested decl.
7336         <case ADDR_EXPR>: Instead of checking if the immediate part
7337         of the ADDR_EXPR changed, check the field changed.
7338         Use recompute_tree_invarant_for_addr_expr instead of unsetting
7339         TREE_INVARIANT.
7340         (convert_local_reference):  Set changed to when we
7341         change a decl to unnested decl.
7342         <case ADDR_EXPR>: Instead of checking if the immediate part
7343         of the ADDR_EXPR changed, check the field changed.
7344         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
7345
7346 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
7347
7348         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
7349         * dwarf2out.c (dwarf2out_init): Remove references to
7350         DWARF2_GENERATE_TEXT_SECTION_LABEL.
7351         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
7352         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
7353
7354 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
7355
7356         * c-typeck.c (convert_arguments): Take expression for called
7357         function rather than its name.  Handle ObjC selectors directly
7358         rather than relying on warn_for_assignment to do so.  Call warning
7359         directly rather than warn_for_assignment.  Use %qE in diagnostics.
7360         Say "argument" rather than "arg" in diagnostics.
7361         (build_function_call): Update call to convert_arguments.
7362
7363 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
7364
7365         PR debug/17787
7366         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
7367         ENUMs specially instead of just saying we do.
7368
7369 2004-10-06  Eric Christopher  <echristo@redhat.com>
7370
7371         * dwarf2.h: Sync with include/elf/dwarf2.h
7372
7373 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7374
7375         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
7376         and TREE_VEC nodes.
7377
7378 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7379
7380         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
7381         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
7382
7383 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7384
7385         * lambda-code.c (compute_nest_using_fourier_motzkin): New
7386         function.
7387         (lambda_compute_auxillary_space): Split from here.
7388
7389 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7390
7391         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
7392         * tree-flow.h: Add prototype.
7393         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
7394         expr_invariant_in_loop.
7395
7396 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
7397
7398         * tree-cfg.c (thread_jumps): Remove a duplicate check for
7399         EXIT_BLOCK_PTR.
7400
7401 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
7402
7403         * config/s390/s390-protos.h (s_imm_operand): Remove.
7404         (s390_pool_operand): Add prototype.
7405         * config/s390/s390.c (general_s_operand): Remove.
7406         (s_imm_operand): Remove.
7407         (s_operand): Merge contents of general_s_operand.
7408         (s390_pool_operand): New function.
7409         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
7410         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
7411         ("*cmpdi_ccu"): Merge Q->Q alternative.
7412         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
7413         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
7414         ("*cli"): Remove.
7415         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
7416         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
7417         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
7418
7419 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
7420
7421         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
7422         call ia64_function_arg_boundary.
7423         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
7424         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
7425         (ia64_function_arg_advance): Do not put 128 bit floats into
7426         FP registers.
7427
7428 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7429
7430         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
7431         Accept an expression instead of an arglist.
7432         (expand_builtin_stpcpy): Accept an expression instead of an
7433         arglist.
7434
7435 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7436
7437         PR target/16007
7438         * doc/install.texi (*-*-solaris2*): Mention potential problem
7439         with Sun assembler + GNU linker and C++ programs.
7440         Document status of binutils 2.15 release.
7441
7442 2004-10-06  Jan Hubicka  <jh@suse.cz>
7443
7444         * cse.c (cse_main): Kill push/pop context.
7445
7446 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
7447
7448         * pretty-print.c: Include tree.h.
7449         (pp_base_prepare_to_format): New function, logic from
7450         text_specifies_location.
7451         (pp_base_format_text): Use gcc_assert.
7452         * pretty-print.h (pp_prepare_to_format): New macro.
7453         (pp_base_prepare_to_format): Prototype.
7454         * diagnostic.c (text_specifies_location): Delete.
7455         (bug_report_request): Delete.
7456         (diagnostic_set_info): Don't call text_specifies_location.
7457         (diagnostic_action_after_output): Put text from
7458         bug_report_request inline here.  Use gcc_unreachable.
7459         (diagnostic_report_current_function): Fix comment.
7460         (diagnostic_report_diagnostic): Clarify logic for error recursion.
7461         Call pp_prepare_to_format before diagnostic_starter.
7462         (trim_filename): Use IS_DIR_SEPARATOR.
7463         (fatal_error, internal_error): Use gcc_unreachable.
7464         (error_recursion): Call diagnostic_action_after_output to
7465         issue the bug_report_request message and exit.
7466         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
7467
7468         * c-parse.in: Add list of diagnostic messages to insulate
7469         translation template from version of yacc/bison used to
7470         compile the grammar.
7471
7472 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
7473
7474         PR 16406
7475         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
7476
7477 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7478
7479         * basic-block.h: Remove the prototype for
7480         flow_preorder_transversal_compute.
7481         * cfganal.c (dfst_node): Remove.
7482         (flow_preorder_transversal_compute): Likewise.
7483         * rtl.h: Remove the prototype for get_jump_table_offset.
7484         * rtlanal.c (get_jump_table_offset): Remove.
7485
7486 2004-10-05  Richard Henderson  <rth@redhat.com>
7487
7488         PR 17756
7489         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
7490
7491 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
7492
7493         PR bootstrap/17817
7494         * Makefile.in: Stage the build directory too.
7495
7496 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
7497
7498         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
7499
7500         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
7501         (frv_emit_move): Same.
7502
7503         * config/frv/frv.c (frv_emit_move): New.
7504         (frv_legitimize_address): New.
7505
7506         * config/frv/frv.md ("movsi"): Call frv_emit_move.
7507         ("movqi"): Same.
7508         ("movhi"): Same.
7509         ("movdi"): Same.
7510         ("movsf"): Same.
7511         ("movdf"): Same.
7512
7513 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7514
7515         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
7516         system headers.
7517
7518 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7519
7520         * c-decl.c (pushdecl): When an extern declaration at block scope
7521         refers to a visible entity with internal linkage, use the old DECL
7522         rather than the new one.
7523
7524 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7525
7526         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
7527         comments.
7528
7529 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7530
7531         * tree-cfg.c (thread_jumps): Remove a duplicate check for
7532         an infinite loop.
7533
7534 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7535
7536         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
7537         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
7538         blocks.
7539
7540 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7541
7542         * tree-cfg.c (cleanup_tree_cfg): Don't call
7543         delete_unreachable_blosk() after thread_jumps().
7544         (thread_jumps): Always remove basic blocks as they become
7545         unreachable.
7546
7547 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7548
7549         * tree-cfg.c (cleanup_tree_cfg): Remove variable
7550         something_changed.  Simplify the while loop.
7551
7552 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7553
7554         * builtins.c (expand_builtin_memmove): Delete duplicate code
7555         and accept a tree type for the result.
7556         (expand_builtin_bcopy): Accept a tree type for the result.
7557         (fold_builtin_memmove): Accept an arglist and tree type for
7558         the result.
7559
7560 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
7561
7562         * config/s390/s390.c (s390_dump_pool): Remove return value.
7563         Use gen_pool_align, gen_pool_section_start/end instead of
7564         gen_pool_start/end_31/64.
7565         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
7566         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
7567         ("pool_start_31", "pool_end_31"): Remove.
7568         ("pool_start_64", "pool_end_64"): Likewise.
7569         ("pool_align", "pool_section_start", "pool_section_end": New insns.
7570
7571         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
7572         (TARGET_CANNOT_COPY_INSN_P): Define.
7573         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
7574         (struct constant_pool): New member 'execute'.
7575         (s390_add_execute, s390_find_execute): New functions.
7576         (s390_execute_label, s390_execute_target): Likewise.
7577         (s390_dump_pool): Output in-pool execute target templates.
7578         (s390_dump_execute): New function.
7579         (s390_alloc_pool, s390_free_pool): Handle execute templates.
7580         (s390_mainpool_start, s390_mainpool_finish): Likewise.
7581         (s390_chunkify_start, s390_chunkify_finish): Likewise.
7582         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
7583         ("*execute"): New insn pattern.
7584         ("movmem_short", "*movmem_short"): Use splitters to generate
7585         explicit execute pattern, remove embedded execute.
7586         ("clrmem_short", "*clrmem_short"): Likewise.
7587         ("cmpmem_short", "*cmpmem_short"): Likewise.
7588
7589 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
7590
7591         * tree-ssa.c (verify_ssa): Verify phi arguments only
7592         contain renamed names.
7593
7594 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
7595
7596         * config/rs6000/linux.h: Formatting, whitespace.
7597         * config/rs6000/linux64.h: Likewise.
7598         * config/rs6000/rs6000-protos.h: Likewise.
7599         * config/rs6000/rs6000.c: Likewise.
7600         (easy_vector_splat_const): Add fall thru comments.
7601         (output_vec_const_move): Likewise.
7602
7603 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
7604
7605         * Makefile.in: Update -Wno-error exceptions for move to build dir.
7606
7607 2004-10-05  Chao-Ying Fu  <fu@mips.com>
7608             Richard Sandiford  <rsandifo@redhat.com>
7609
7610         * doc/invoke.texi (-mpaired-single): Link to the new description of the
7611         built-in functions.  Document dependencies.
7612         (-mips3d): Add link here too.
7613         * doc/extend.texi (MIPS Paired-Single Support): New section.
7614
7615 2004-10-04  Chao-ying Fu  <fu@mips.com>
7616
7617         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
7618
7619 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
7620
7621         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
7622         Initialize OPT_STATS to 0.
7623
7624 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
7625
7626         * tree-data-ref.c: Fix comment typos.
7627
7628 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
7629
7630         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
7631         the predicate cannot be computed, don't initialize the result to
7632         false.
7633
7634 2004-10-01  Eric Christopher  <echristo@redhat.com>
7635
7636         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
7637         locally defined enum.
7638         * dwarf2out.c (add_calling_convention_attribute): Don't
7639         emit DW_CC_normal.
7640
7641 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
7642
7643         PR c/17178, PR c/17820
7644         * c-decl.c (pop_scope): Do not warn about unused static
7645         variables as they warned in the middle-end.
7646
7647 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7648
7649         * builtins.c (expand_builtin_memcpy): Delete duplicate code
7650         and make the first parameter the expression not the arglist.
7651
7652 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
7653
7654         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
7655         as valid modes to expand address expressions.
7656
7657 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
7658
7659         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
7660         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
7661         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
7662         code formatting conventions.
7663
7664 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
7665
7666         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
7667
7668 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
7669
7670         PR tree-optimization/16632
7671         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
7672         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
7673         where | is used instead of &.
7674
7675 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
7676
7677         * ginclude/stddef.h: Fix a comment typo.
7678
7679 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7680
7681         PR target/17443
7682         * config.gcc (i?86-*-solaris2*): Restore correct logic
7683         for --enable-threads option.
7684         (sparc64-*-solaris2*): Likewise.
7685         (sparc-*-solaris2*): Likewise.
7686
7687 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
7688
7689         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
7690         (OS_MISSING_POWERPC64): Move, and comment.
7691         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
7692         (OS_MISSING_POWERPC64): Move, and comment.
7693
7694 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
7695
7696         * arm.c (output_call_mem): Add missing \t.
7697
7698 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7699
7700         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
7701         expand_builtin_strncmp): Delete duplicate code.
7702
7703 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
7704
7705         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
7706         take check-base and -limit arguments.
7707         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
7708         check ranges for ARRAY_REF and COMPONENT_REF.
7709         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
7710         instrumentation.
7711
7712 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
7713
7714         * c-objc-common.c (c_tree_printer): Correct description of %E.
7715         Don't fall through after printing an expression.
7716
7717 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
7718
7719         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
7720
7721 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
7722
7723         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
7724         delete_unrechable_blocks() only when necessary.
7725
7726 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
7727
7728         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
7729         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
7730         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
7731         __gthread_recursive_mutex_unlock): New functions.
7732
7733 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
7734
7735         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
7736         * config/s390/tpf-eh.c: Remove file.
7737         * config/s390/tpf-unwind.h: New file.
7738         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
7739         (MD_UNWIND_SUPPORT): Define.
7740
7741 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
7742
7743         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
7744
7745 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
7746
7747         * config/s390/s390-protos.h (s390_comparison): Add prototype.
7748         * config/s390/s390.c (s390_comparison): New function.
7749         (s390_branch_condition_mask): Return -1 for invalid comparisons.
7750         (s390_branch_condition_mnemonic): Assert valid comparison.
7751         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
7752         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
7753         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
7754         s390_comparison instead of comparison_operator.
7755
7756         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
7757         ("cmpmemdi"): Remove.
7758         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
7759         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
7760         ("cmpint_si"): Rename to ...
7761         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
7762         ("cmpint_di", "*cmpint_di"): Likewise.
7763         * config/s390/s390.c (s390_canonicalize_comparison): Remove
7764         redundant UNSPEC_CMPINT conversions.
7765         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
7766
7767 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
7768
7769         * collect2.c (COLLECT_PARSE_FLAG): Remove.
7770         (main): Remove a reference to COLLECT_PARSE_FLAG
7771         * system.h: Poison COLLECT_PARSE_FLAG.
7772         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
7773
7774 2004-10-01  Paul Brook  <paul@codesourcery.com>
7775
7776         * config/arm/crti.asm: Give _init and _fini function type.
7777
7778 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
7779
7780         * common.opt (ftree-loop-ivcanon): Enable by default.
7781         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7782         Enable complete loop unrolling.
7783         (canonicalize_induction_variables, tree_unroll_loops_completely):
7784         Reset scev info.
7785
7786 2004-10-01  Paul Brook  <paul@codesourcery.com>
7787
7788         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
7789         not register number.
7790         (thumb_find_work_register): Search full register range.
7791
7792 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
7793
7794         PR tree-opt/17343
7795         * tree-cfg.c (group_case_labels): Get the label and not
7796         the case expr for the default case.
7797         When the label we looking at is the default, decrement the
7798         new_size.
7799
7800 2004-10-01  Jan Hubicka  <jh@suse.cz>
7801
7802         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
7803         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7804         * toplev.h (tree_rest_of_compilation): Update prototype.
7805         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
7806
7807 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
7808
7809         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
7810         cleanup_control_flow() out of the while loop.
7811
7812 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
7813
7814         * tree-vectorizer.c (vectorizable_operation): Fail unless
7815         the mode for the vector type is indeed a vector mode.
7816
7817 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
7818
7819         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
7820         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
7821         of convert.
7822         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
7823         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
7824         follow_ssa_edge_in_rhs): Ditto.
7825         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
7826         (dump_iv): Dump base_object.
7827         (dump_use, dump_cand): Use dump_iv.
7828         (determine_base_object): New function.
7829         (alloc_iv): Initialize base_object field.
7830         (record_use): Clear the ssa_name field of iv.
7831         (get_computation_cost_at): Do not use difference of addresses of
7832         two different objects.
7833         (may_eliminate_iv): Do not require the loop to have just single exit.
7834         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
7835         (nonzero_p): New function.
7836         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
7837         tree_simplify_using_condition, simplify_using_initial_conditions,
7838         loop_niter_by_eval, find_loop_niter_by_eval,
7839         estimate_numbers_of_iterations_loop, compare_trees,
7840         upper_bound_in_type, lower_bound_in_type,
7841         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
7842         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
7843         instead of integer_(non)zerop.
7844
7845 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
7846
7847         Revert
7848         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
7849
7850         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
7851         and TI_VA_LIST_FPR_COUNTER_FIELD.
7852         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
7853         * tree-pass.h (pass_stdarg): Add.
7854         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
7855         * tree-stdarg.c: New file.
7856         * Makefile.in (OBJS-common): Add tree-stdarg.o.
7857         (tree-stdarg.o): Add dependencies.
7858         * function.h (struct function): Add va_list_gpr_size and
7859         va_list_fpr_size fields.
7860         * function.c (allocate_struct_function): Initialize them.
7861
7862         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
7863         va_list_{g,f}pr_counter_field.
7864         (ix86_setup_incoming_varargs): Don't do anything if reg_save
7865         area will not be used.  Only save registers that tree-stdarg.c
7866         detected they need saving.
7867         (ix86_va_start): Don't set up fields that won't be used.
7868
7869         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
7870         va_list_{g,f}pr_counter_field.
7871         (setup_incoming_varargs): Don't do anything if reg_save
7872         area will not be used.  Only save registers that tree-stdarg.c
7873         detected they need saving.
7874         (rs6000_va_start): Don't set up fields that won't be used.
7875
7876 2004-09-30  Eric Christopher  <echristo@redhat.com>
7877
7878         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
7879         sh abi.
7880         * dwarf2out.c (add_calling_convention_attribute): New function.
7881         (gen_subroutine_type_die): Use.
7882         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
7883         * target.h (gcc_target): Add dwarf_calling_convention.
7884         * hooks.c (hook_int_tree_0): New function.
7885         * hooks.h: Prototype.
7886         * config/sh/sh.c: Include dwarf2.h.
7887         (sh_dwarf_calling_convention): New function.
7888         (TARGET_DWARF_CALLING_CONVENTION): Use.
7889         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
7890
7891 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7892
7893         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
7894         expand_builtin_strrchr, expand_builtin_strpbrk,
7895         expand_builtin_strncat, expand_builtin_strspn,
7896         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
7897         code.
7898
7899 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
7900
7901         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
7902         prototype.
7903         (s390_logical_operator_ok_p): Likewise.
7904         * config/s390/s390.c (s390_expand_logical_operator): New function.
7905         (s390_logical_operator_ok_p): Likewise.
7906         * config/s390/s390.md ("anddi3"): New expander.
7907         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
7908         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
7909         ("andsi3"): Use s390_expand_logical_operator.
7910         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
7911         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
7912         ("andhi3"): New expander.
7913         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
7914         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
7915         ("andqi3"): New expander.
7916         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
7917         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
7918         ("iordi3"): New expander.
7919         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
7920         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
7921         ("iorsi3"): Use s390_expand_logical_operator.
7922         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
7923         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
7924         ("iorhi3"): New expiorer.
7925         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
7926         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
7927         ("iorqi3"): New expiorer.
7928         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
7929         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
7930         ("xordi3"): New expander.
7931         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
7932         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
7933         ("xorsi3"): New expander.
7934         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
7935         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
7936         ("xorhi3"): New expander.
7937         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
7938         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
7939         ("xorqi3"): New expander.
7940         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
7941         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
7942
7943 2004-09-30  Roger Sayle  <roger@eyesopen.com>
7944
7945         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
7946         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
7947         machine mode as the result.
7948
7949 2004-09-30  Ben Elliston  <bje@au.ibm.com>
7950
7951         PR bootstrap/17761
7952         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
7953         FOR_EACH_EDGE macros.
7954
7955 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
7956
7957         * c-tree.h (readonly_error): Remove.
7958         * c-typeck (enum lvalue_use): New.
7959         (lvalue_or_else, readonly_error): Use it.  All callers changed.
7960         (readonly_error): Make static.
7961
7962 2004-09-30  Jan Hubicka  <jh@suse.cz>
7963
7964         PR debug/13974
7965         * cfgrtl.c (try_redirect_by_replacing_jump,
7966         force_nonfallthru_and_redirect, commit_one_edge_insertion,
7967         cfg_layout_merge_blocks):  Do not attach any line number information
7968         to newly inserted instructions.
7969         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
7970         emit_insn_*_noloc.
7971         (emit_*insn_before, emit_insn*_after): New.
7972         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
7973         existing locators.
7974         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
7975         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
7976
7977 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
7978
7979         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
7980         (s390_return_address_offset): Remove.
7981         (s390_can_eliminate): Add prototype.
7982         (s390_initial_elimination_offset): Add prototype.
7983         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
7984         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
7985         * config/s390/s390.c (s390_arg_frame_offset): Remove.
7986         (s390_return_address_offset): Remove.
7987         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
7988         (struct machine_function): New member split_branches_pending_p.
7989         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
7990         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
7991         (s390_optimize_prologue): Remove base_used argument.  Call
7992         s390_update_frame_layout instead of s390_register_info.  Handle
7993         prologue/epilogue insns that touch only RETURN_REGNUM.
7994         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
7995         (s390_register_info): Remove base_used and return_addr_used
7996         arguments, compute special register usage inline.  Return live
7997         register data to caller.
7998         (s390_frame_info): Remove arguments, do not call s390_register_info.
7999         (s390_init_frame_layout): New function.
8000         (s390_update_frame_layout): Likewise.
8001         (s390_emit_prologue): Call s390_update_frame_layout; some code
8002         move to there.  Do not emit pool placeholder insn if unnecessary.
8003
8004 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8005
8006         * config/s390/s390.c (legitimate_reload_constant_p): Remove
8007         floating point constant workaround.
8008         (s390_secondary_input_reload_class): Handle PLUS reloads
8009         with too-large constant.
8010         (s390_expand_plus_operand): Likewise.
8011         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
8012         ("movsi"): Likewise.  Also, remove workaround for non-general
8013         operands.
8014         ("movdf"): Do not call force_const_mem.
8015         ("movsf"): Likewise.  Merge expander with *movsf insn.
8016         ("*movsf"): Remove, merge with movsf expander.
8017
8018 2004-09-30  Paul Brook  <paul@codesourcery.com>
8019
8020         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
8021         (ENDFILE_SPEC): Define.
8022         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
8023
8024 2004-09-30  Richard Henderson  <rth@redhat.com>
8025
8026         * config/alpha/qrnnd.asm: Mark for noexecstack.
8027
8028 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8029
8030         * protoize.c, tree-cfg.c: Fix comment typos.
8031
8032 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8033
8034         PR c/17730
8035         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
8036
8037 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
8038
8039         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
8040         expressions...
8041         (add_pointed_to_expr): ... here.
8042         Call add_pointed_to_expr for variables with DECL_INITIAL set.
8043         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
8044         pointer variable, if set.
8045
8046 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8047
8048         * config/sh/sh.c: Follow spelling conventions.
8049
8050 2004-09-29  Richard Henderson  <rth@redhat.com>
8051
8052         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
8053         * doc/tm.texi (DWARF_ZERO_REG): New.
8054
8055         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
8056         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
8057         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
8058
8059 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
8060
8061         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
8062         with a PLUS as source operand.
8063         (expand_movstr): Likewise.
8064         (expand_builtin_stpcpy): Likewise.
8065
8066 2004-09-29  Richard Henderson  <rth@redhat.com>
8067
8068         PR 17739
8069         * tree-gimple.c (is_gimple_reg): Reject hard registers.
8070         (is_gimple_asm_val): New.
8071         * tree-gimple.h (is_gimple_asm_val): Declare.
8072         * gimplify.c (gimplify_asm_expr): Use it.
8073         * tree-pretty-print.c (print_declaration): Dump hard regs.
8074         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
8075         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8076         * tree-ssa-pre.c (is_undefined_value): Likewise.
8077         * tree-ssa-copy.c (may_propagate_copy): Likewise.
8078         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
8079         * tree-ssa.c (warn_uninit): Likewise.
8080         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
8081
8082 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
8083
8084         * c-decl.c (merge_decls): Use comptype when comparing
8085         types to decide on DECL_SIZE save of olddecl.
8086
8087 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
8088
8089         * tree.h (INDIRECT_REF_P): New macro.
8090         * alias.c (get_alias_set): Use it
8091         (nonoverlapping_memrefs_p): Ditto.
8092         * emit-rtl.c (mem_expr_equal_p): Ditto.
8093         (set_mem_attributes_minus_bitpos): Ditto.
8094         (is_gimple_addressable): Ditto.
8095         (get_base_address): Ditto.
8096         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
8097         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
8098         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
8099         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
8100         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
8101         (add_address_candidates): Ditto.
8102         (rewrite_address_base): Ditto.
8103
8104 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8105
8106         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
8107         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
8108         (rewrite_ssa_into_ssa): Likewise.
8109         * tree-phinodes.c (create_phi_node): Access the number of
8110         predecessor edges using EDGE_COUNT() and not num_preds.
8111
8112 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
8113
8114         PR c/7425
8115         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
8116
8117 2004-09-29  Eric Christopher  <echristo@redhat.com>
8118
8119         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
8120
8121 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
8122
8123         * config/cris/cris.md (moverside, movemside): With MEM, make sure
8124         the address is (plus reg mem).
8125
8126 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
8127
8128         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
8129
8130 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8131
8132         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
8133         cascaded if ... else if with a switch.
8134
8135 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8136
8137         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
8138
8139 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8140
8141         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8142         and TI_VA_LIST_FPR_COUNTER_FIELD.
8143         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8144         * tree-pass.h (pass_stdarg): Add.
8145         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8146         * tree-stdarg.c: New file.
8147         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8148         (tree-stdarg.o): Add dependencies.
8149         * function.h (struct function): Add va_list_gpr_size and
8150         va_list_fpr_size fields.
8151         * function.c (allocate_struct_function): Initialize them.
8152
8153         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8154         va_list_{g,f}pr_counter_field.
8155         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8156         area will not be used.  Only save registers that tree-stdarg.c
8157         detected they need saving.
8158         (ix86_va_start): Don't set up fields that won't be used.
8159
8160         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8161         va_list_{g,f}pr_counter_field.
8162         (setup_incoming_varargs): Don't do anything if reg_save
8163         area will not be used.  Only save registers that tree-stdarg.c
8164         detected they need saving.
8165         (rs6000_va_start): Don't set up fields that won't be used.
8166
8167 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8168
8169         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
8170         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
8171         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
8172         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
8173         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
8174         ATTR_NONNULL_1_4): New.
8175
8176 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8177
8178         PR tree-optimization/17697
8179         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
8180         cfg if needed.
8181
8182 2004-09-28  Per Bothner  <per@bothner.com>
8183
8184         * profile.c (branch_prob): Pass correct value to output_location,
8185         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
8186
8187 2004-09-28  Richard Henderson  <rth@redhat.com>
8188
8189         PR 15089
8190         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
8191         * tree-flow.h (may_propagate_copy_into_asm): Declare.
8192         * tree-ssa-ccp.c (replace_uses_in): Use it.
8193         * tree-ssa-dom.c (cprop_operand): Likewise.
8194
8195 2004-09-28 Jeff Law  <law@redhat.com>
8196
8197         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
8198         that no outgoing edges be left in the duplicate block.  Do no
8199         update information on outgoing edges or PHI nodes in target
8200         blocks here.
8201         (remove_ctrl_stmt_and_useless_edges): Renamed from
8202         remove_last_stmt_and_useless_edges.  Handle case where the
8203         block is empty or has no control statements.  Do not update edge
8204         flags here.
8205         (thread_block): Create a template block rather than copying the
8206         original block every time.  Create outgoing edges from the
8207         duplicate blocks and update PHIs at the target of the outgoing
8208         edges here.  Fix edge flags for the original block if necessary.
8209         * cfghooks (duplicate_block): No longer assert that the original
8210         block has incoming edges.
8211
8212 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
8213
8214         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
8215         Reg Vars to enforce register allocation with general constraints.
8216         (Explicit Reg Vars): Clarify relation to asm statements.
8217         (Local Reg Vars): Similar.
8218
8219 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8220
8221         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
8222         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
8223         build_control_flow, new_edge): Remove.
8224         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
8225         (bitlst, bitlst_table_last, bitlst_table): Remove.
8226         (bblst): Store basic_block pointer instead of block index.
8227         (bblst_table): Likewise.
8228         (edgelst): Store edge pointer instead of edge index.
8229         (edgelst_table, edgelst_last): New variables.
8230         (extract_bitlst): Rename to ...
8231         (extract_edgelst): ... this.  Return edge pointers, not indices.
8232         (split_edges): Update call.
8233         (rgn_edges): Store edge pointers instead of indices.
8234         (edge_to_bit): Remove.
8235         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
8236         (SET_EDGE_TO_BIT): New macro.
8237         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
8238         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
8239         data structures instead of haifa_edge et al.  Use edge pointers
8240         instead of edge indices everywhere.
8241         (compute_dom_prob_ps): Use standard CFG data structures.  Account
8242         for exit edges.
8243         (compute_trg_info): Likewise.
8244         (propagate_deps): Likewise.
8245         (debug_candidate): Account for bblst data structure change.
8246         (check_live_1, update_live_1, is_pfree): Likewise.
8247         (IS_REACHABLE): Use standard CFG data structures.
8248         (init_ready_list): Update bblst_table/edgelst_table allocation.
8249         (schedule_region): Update alloc/cleanup code to data structure
8250         changes.  Use edge->aux to store per-region edge index.
8251         (init_regions): No longer call build_control_flow.  Do not
8252         create edge list any more.
8253
8254 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8255
8256         * cse.c (cse_insn): Avoid creating direct non-local jumps.
8257         * combine.c (can_combine_p): Likewise.
8258         * local-alloc. (update_equiv_regs): Likewise.
8259
8260 2004-09-28  Richard Henderson  <rth@redhat.com>
8261
8262         PR 17531
8263         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
8264         Don't check VOIDmode here.  Force PLUS operands to common type.
8265         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
8266         Pmode if given a non pointer type.
8267
8268 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8269
8270         PR 17531
8271         * optabs.c (expand_binop): Force constants to the correct mode.
8272
8273 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8274
8275         * config/s390/s390.c (s390_adjust_cost): Remove.
8276         (TARGET_SCHED_ADJUST_COST): Do not redefine.
8277         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
8278         * config/s390/s390.md ("main_pool"): Use "larl" type
8279         attribute if TARGET_CPU_ZARCH.
8280
8281 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
8282
8283         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
8284         variable.
8285
8286 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8287
8288         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
8289         name to the pass.
8290
8291 2004-09-28  Steven Bosscher  <stevenb@suse.de>
8292
8293         * common.opt (flag_gcse_sm): Disable by default.
8294         (flag_gcse_las): Likewise.
8295         (flag_web): Likewise.  Create from this file.
8296         * flags.h: Remove flag_web declaration.
8297         * toplev.c (flag_web): Likewise.
8298         (process_options): Never set flag_web.
8299
8300 2004-09-28  Steven Bosscher  <stevenb@suse.de>
8301
8302         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
8303         * tree-ssa-propagate.c: Include vec.h.
8304         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
8305         instead of varrays.
8306         (cfg_blocks_add): Assert the block is not already in the worklist.
8307         Update uses of interesting_ssa_edges and varying_ssa_edges.
8308         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
8309         ssa_propagate): Likewise.
8310
8311 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8312
8313         PR c/16409
8314         * c-decl.c (start_decl): Check for initializing incomplete array
8315         of VLAs.
8316         (build_compound_literal): Check for TYPE being error_mark_node.
8317         * c-parse.in (primary): Check for VLA compound literals.
8318
8319 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8320
8321         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
8322         with --disable-checking.
8323
8324 2004-09-28  Devang Patel  <dpatel@apple.com>
8325
8326         * tree-pretty-print.c (dump_generic_node): Print vector types.
8327
8328 2004-09-28  Nick Clifton  <nickc@redhat.com>
8329
8330         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
8331         invocation of the function sh_init_cumulative_args.
8332         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
8333         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
8334         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
8335         * config/sh/sh.c (sh_init_cumulative_args): New function based
8336         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
8337         heuristic added to determine the setting of force_mem when a
8338         library function is being called.
8339
8340 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8341
8342         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
8343         Skip constant arguments.
8344
8345 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8346
8347         * tree-ssa-alias.c (create_name_tags): If PTR points to a
8348         volatile type, mark the tag volatile.
8349         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
8350         volatile.
8351
8352 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
8353
8354         * tree.def (vec_cond_expr): Fix. Change 'e'
8355         to tcc_expression.
8356
8357 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
8358
8359         * basic-block.h: Fix a comment typo.
8360
8361 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
8362
8363         * optabs.c, optabs.h: Fix comment typos.
8364
8365 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8366
8367         * config/sparc/sparc.md (call_address_struct_value_sp32):
8368         Properly mask the immediate field of the 'unimp' instruction.
8369         (call_symbolic_struct_value_sp32): Likewise.
8370
8371 2004-09-28  Ben Elliston  <bje@au.ibm.com>
8372             Steven Bosscher  <stevenb@suse.de>
8373             Andrew Pinski  <pinskia@physics.uc.edu>
8374
8375         Merge from edge-vector-branch:
8376         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
8377         (struct edge_def): Remove pred_next, succ_next members.
8378         (struct basic_block_def): Remove pred, succ members.  Add preds
8379         and succs members of type VEC(edge).
8380         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
8381         (BRANCH_EDGE): Likewise.
8382         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
8383         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
8384         (edge_iterator): New.
8385         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
8386         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
8387         (FOR_EACH_EDGE): New.
8388         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
8389         where applicable.
8390         (rotate_loop): Likewise.
8391         (find_traces_1_route): Likewise.
8392         (bb_to_key): Likewise.
8393         (connect_traces): Likewise.
8394         (copy_bb_p): Likewise.
8395         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
8396         (add_labels_and_missing_jumps): Likewise.
8397         (fix_up_fall_thru_edges): Likewise.
8398         (find_jump_block): Likewise.
8399         (fix_crossing_conditional_branches): Likewise.
8400         (fix_crossing_unconditional_branches): Likewise.
8401         (add_reg_crossing_jump_notes): Likewise.
8402         * bt-load.c (augment_live_range): Likewise.
8403         * cfg.c (clear_edges): Likewise.
8404         (unchecked_make_edge): Likewise.
8405         (cached_make_edge): Likewise.
8406         (make_single_succ_edge): Likewise.
8407         (remove_edge): Likewise.
8408         (redirect_edge_succ_nodup): Likewise.
8409         (check_bb_profile): Likewise.
8410         (dump_flow_info): Likewise.
8411         (alloc_aux_for_edges): Likewise.
8412         (clear_aux_for_edges): Likewise.
8413         (dump_cfg_bb_info): Likewise.
8414         * cfganal.c (forwarder_block_p): Likewise.
8415         (can_fallthru): Likewise.
8416         (could_fall_through): Likewise.
8417         (mark_dfs_back_edges): Likewise.
8418         (set_edge_can_fallthru_flag): Likewise.
8419         (find_unreachable_blocks): Likewise.
8420         (create_edge_list): Likewise.
8421         (verify_edge_list): Likewise.
8422         (add_noreturn_fake_exit_edges): Likewise.
8423         (connect_infinite_loops_to_exit): Likewise.
8424         (flow_reverse_top_sort_order_compute): Likewise.
8425         (flow_depth_first_order_compute): Likewise.
8426         (flow_preorder_transversal_compute): Likewise.
8427         (flow_dfs_compute_reverse_execute): Likewise.
8428         (dfs_enumerate_from): Likewise.
8429         (compute_dominance_frontiers_1): Likewise.
8430         * cfgbuild.c (make_edges): Likewise.
8431         (compute_outgoing_frequencies): Likewise.
8432         (find_many_sub_basic_blocks): Likewise.
8433         (find_sub_basic_blocks): Likewise.
8434         * cfgcleanup.c (try_simplify_condjump): Likewise.
8435         (thread_jump): Likewise.
8436         (try_forward_edges): Likewise.
8437         (merge_blocks_move): Likewise.
8438         (outgoing_edges_match): Likewise.
8439         (try_crossjump_to_edge): Likewise.
8440         (try_crossjump_bb): Likewise.
8441         (try_optimize_cfg): Likewise.
8442         (merge_seq_blocks): Likewise.
8443         * cfgexpand.c (expand_gimple_tailcall): Likewise.
8444         (expand_gimple_basic_block): Likewise.
8445         (construct_init_block): Likewise.
8446         (construct_exit_block): Likewise.
8447         * cfghooks.c (verify_flow_info): Likewise.
8448         (dump_bb): Likewise.
8449         (delete_basic_block): Likewise.
8450         (split_edge): Likewise.
8451         (merge_blocks): Likewise.
8452         (make_forwarder_block): Likewise.
8453         (tidy_fallthru_edges): Likewise.
8454         (can_duplicate_block_p): Likewise.
8455         (duplicate_block): Likewise.
8456         * cfglayout.c (fixup_reorder_chain): Likewise.
8457         (fixup_fallthru_exit_predecessor): Likewise.
8458         (can_copy_bbs_p): Likewise.
8459         (copy_bbs): Likewise.
8460         * cfgloop.c (flow_loops_cfg_dump): Likewise.
8461         (flow_loop_entry_edges_find): Likewise.
8462         (flow_loop_exit_edges_find): Likewise.
8463         (flow_loop_nodes_find): Likewise.
8464         (mark_single_exit_loops): Likewise.
8465         (flow_loop_pre_header_scan): Likewise.
8466         (flow_loop_pre_header_find): Likewise.
8467         (update_latch_info): Likewise.
8468         (canonicalize_loop_headers): Likewise.
8469         (flow_loops_find): Likewise.
8470         (get_loop_body_in_bfs_order): Likewise.
8471         (get_loop_exit_edges): Likewise.
8472         (num_loop_branches): Likewise.
8473         (verify_loop_structure): Likewise.
8474         (loop_latch_edge): Likewise.
8475         (loop_preheader_edge): Likewise.
8476         * cfgloopanal.c (mark_irreducible_loops): Likewise.
8477         (expected_loop_iterations): Likewise.
8478         * cfgloopmanip.c (remove_bbs): Likewise.
8479         (fix_bb_placement): Likewise.
8480         (fix_irreducible_loops): Likewise.
8481         (remove_path): Likewise.
8482         (scale_bbs_frequencies): Likewise.
8483         (loopify): Likewise.
8484         (unloop): Likewise.
8485         (fix_loop_placement): Likewise.
8486         (loop_delete_branch_edge): Likewise.
8487         (duplicate_loop_to_header_edge): Likewise.
8488         (mfb_keep_just): Likewise.
8489         (create_preheader): Likewise.
8490         (force_single_succ_latches): Likewise.
8491         (loop_split_edge_with): Likewise.
8492         (create_loop_notes): Likewise.
8493         * cfgrtl.c (rtl_split_block): Likewise.
8494         (rtl_merge_blocks): Likewise.
8495         (rtl_can_merge_blocks): Likewise.
8496         (try_redirect_by_replacing_jump): Likewise.
8497         (force_nonfallthru_and_redirect): Likewise.
8498         (rtl_tidy_fallthru_edge): Likewise.
8499         (commit_one_edge_insertion): Likewise.
8500         (commit_edge_insertions): Likewise.
8501         (commit_edge_insertions_watch_calls): Likewise.
8502         (rtl_verify_flow_info_1): Likewise.
8503         (rtl_verify_flow_info): Likewise.
8504         (purge_dead_edges): Likewise.
8505         (cfg_layout_redirect_edge_and_branch): Likewise.
8506         (cfg_layout_can_merge_blocks_p): Likewise.
8507         (rtl_flow_call_edges_add): Likewise.
8508         * cse.c (cse_cc_succs): Likewise.
8509         * df.c (hybrid_search): Likewise.
8510         * dominance.c (calc_dfs_tree_nonrec): Likewise.
8511         (calc_dfs_tree): Likewise.
8512         (calc_idoms): Likewise.
8513         (recount_dominator): Likewise.
8514         * domwalk.c (walk_dominator_tree): Likewise.
8515         * except.c (emit_to_new_bb_before): Likewise.
8516         (connect_post_landing_pads): Likewise.
8517         (sjlj_emit_function_enter): Likewise.
8518         (sjlj_emit_function_exit): Likewise.
8519         (finish_eh_generation): Likewise.
8520         * final.c (compute_alignments): Likewise.
8521         * flow.c (calculate_global_regs_live): Likewise.
8522         (initialize_uninitialized_subregs): Likewise.
8523         (init_propagate_block_info): Likewise.
8524         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8525         * gcse.c (find_implicit_sets): Likewise.
8526         (bypass_block): Likewise.
8527         (bypass_conditional_jumps): Likewise.
8528         (compute_pre_data): Likewise.
8529         (insert_insn_end_bb): Likewise.
8530         (insert_store): Likewise.
8531         (remove_reachable_equiv_notes): Likewise.
8532         * global.c (global_conflicts): Likewise.
8533         (calculate_reg_pav): Likewise.
8534         * graph.c (print_rtl_graph_with_bb): Likewise.
8535         * ifcvt.c (mark_loop_exit_edges): Likewise.
8536         (merge_if_block): Likewise.
8537         (find_if_header): Likewise.
8538         (block_jumps_and_fallthru_p): Likewise.
8539         (find_if_block): Likewise.
8540         (find_cond_trap): Likewise.
8541         (block_has_only_trap): Likewise.
8542         (find_if_case1): Likewise.
8543         (find_if_case_2): Likewise.
8544         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
8545         (perfect_nestify): Likewise.
8546         * lcm.c (compute_antinout_edge): Likewise.
8547         (compute_laterin): Likewise.
8548         (compute_available): Likewise.
8549         (compute_nearerout): Likewise.
8550         * loop-doloop.c (doloop_modify): Likewise.
8551         * loop-init.c (loop_optimizer_init): Likewise.
8552         * loop-invariant.c (find_exits): Likewise.
8553         * loop-iv.c (simplify_using_initial_values): Likewise.
8554         (check_simple_exit): Likewise.
8555         (find_simple_exit): Likewise.
8556         * loop-unroll.c (peel_loop_completely): Likewise.
8557         (unroll_loop_constant_iterations): Likewise.
8558         (unroll_loop_runtime_iterations): Likewise.
8559         * loop-unswitch.c (may_unswitch_on): Likewise.
8560         (unswitch_loop): Likewise.
8561         * modulo-sched.c (generate_prolog_epilog): Likewise.
8562         (sms_schedule): Likewise.
8563         * postreload-gcse.c (eliminate_partially_redundant_load):
8564         Likewise.
8565         * predict.c (can_predict_insn_p): Likewise.
8566         (set_even_probabilities): Likewise.
8567         (combine_predictions_for_bb): Likewise.
8568         (predict_loops): Likewise.
8569         (estimate_probability): Likewise.
8570         (tree_predict_by_opcode): Likewise.
8571         (tree_estimate_probability): Likewise.
8572         (last_basic_block_p): Likewise.
8573         (propagate_freq): Likewise.
8574         (estimate_loops_at_level): Likewise.
8575         (estimate_bb_frequencies): Likewise.
8576         * profile.c (instrument_edges): Likewise.
8577         (get_exec_counts): Likewise.
8578         (compute_branch_probabilities): Likewise.
8579         (branch_prob): Likewise.
8580         * ra-build.c (live_in): Likewise.
8581         * ra-rewrite.c (rewrite_program2): Likewise.
8582         * ra.c (reg_alloc): Likewise.
8583         * reg-stack.c (reg_to_stack): Likewise.
8584         (convert_regs_entry): Likewise.
8585         (compensate_edge): Likewise.
8586         (convert_regs_1): Likewise,
8587         (convert_regs_2): Likewise.
8588         (convert_regs): Likewise.
8589         * regrename.c (copyprop_hardreg_forward): Likewise.
8590         * reload1.c (fixup_abnormal_edges): Likewise.
8591         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
8592         (sbitmap_insersection_of_preds): Likewise.
8593         (sbitmap_union_of_succs): Likewise.
8594         (sbitmap_union_of_preds): Likewise.
8595         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
8596         (fix_basic_block_boundaries): Likewise.
8597         (sched_ebbs): Likewise.
8598         * sched-rgn.c (build_control_flow): Likewise.
8599         (find_rgns): Likewise.
8600         * tracer.c (find_best_successor): Likewise.
8601         (find_best_predecessor): Likewise.
8602         (tail_duplicate): Likewise.
8603         * tree-cfg.c (make_edges): Likewise.
8604         (make_ctrl_stmt_edges): Likewise.
8605         (make_goto_expr_edges): Likewise.
8606         (tree_can_merge_blocks_p): Likewise.
8607         (tree_merge_blocks): Likewise.
8608         (cfg_remove_useless_stmts_bb): Likewise.
8609         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
8610         (tree_block_forwards_to): Likewise.
8611         (cleanup_control_expr_graph): Likewise.
8612         (find_taken_edge): Likewise.
8613         (dump_cfg_stats): Likewise.
8614         (tree_cfg2vcg): Likewise.
8615         (disband_implicit_edges): Likewise.
8616         (tree_find_edge_insert_loc): Likewise.
8617         (bsi_commit_edge_inserts): Likewise.
8618         (tree_split_edge): Likewise.
8619         (tree_verify_flow_info): Likewise.
8620         (tree_make_forwarder_block): Likewise.
8621         (tree_forwarder_block_p): Likewise.
8622         (thread_jumps): Likewise.
8623         (tree_try_redirect_by_replacing_jump): Likewise.
8624         (tree_split_block): Likewise.
8625         (add_phi_args_after_copy_bb): Likewise.
8626         (rewrite_to_new_ssa_names_bb): Likewise.
8627         (dump_function_to_file): Likewise.
8628         (print_pred_bbs): Likewise.
8629         (print_loop): Likewise.
8630         (tree_flow_call_edges_add): Likewise.
8631         (split_critical_edges): Likewise.
8632         (execute_warn_function_return): Likewise.
8633         (extract_true_false_edges_from_block): Likewise.
8634         * tree-if-conv.c (tree_if_conversion): Likewise.
8635         (if_convertable_bb_p): Likewise.
8636         (find_phi_replacement_condition): Likewise.
8637         (combine_blocks): Likewise.
8638         * tree-into-ssa.c (compute_global_livein): Likewise.
8639         (ssa_mark_phi_uses): Likewise.
8640         (ssa_rewrite_initialize_block): Likewise.
8641         (rewrite_add_phi_arguments): Likewise.
8642         (ssa_rewrite_phi_arguments): Likewise.
8643         (insert_phi_nodes_for): Likewise.
8644         (rewrite_into_ssa): Likewise.
8645         (rewrite_ssa_into_ssa): Likewise.
8646         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
8647         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
8648         (rewrite_trees): Likewise.
8649         * tree-pretty-print.c (dump_bb_header): Likewise.
8650         (dump_implicit_edges): Likewise.
8651         * tree-sra.c (insert_edge_copies): Likewise.
8652         (find_obviously_necessary_stmts): Likewise.
8653         (remove_data_stmt): Likewise.
8654         * tree-ssa-dom.c (thread_across_edge): Likewise.
8655         (dom_opt_finalize_block): Likewise.
8656         (single_incoming_edge_ignoring_loop_edges): Likewise.
8657         (record_equivalences_from_incoming_edges): Likewise.
8658         (cprop_into_successor_phis): Likewise.
8659         * tree-ssa-live.c (live_worklist): Likewise.
8660         (calculate_live_on_entry): Likewise.
8661         (calculate_live_on_exit): Likewise.
8662         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
8663         (copy_loop_headers): Likewise.
8664         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
8665         (fill_always_executed_in): Likewise.
8666         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
8667         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
8668         (compute_phi_arg_on_exit): Likewise.
8669         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
8670         (get_loops_exit): Likewise.
8671         (split_loop_exit_edge): Likewise.
8672         (ip_normal_pos): Likewise.
8673         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
8674         Likewise.
8675         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
8676         (replace_phi_with_stmt): Likewise.
8677         (value_replacement): Likewise.
8678         * tree-ssa-pre.c (compute_antic_aux): Likewise.
8679         (insert_aux): Likewise.
8680         (init_pre): Likewise.
8681         * tree-ssa-propagate.c (simulate_stmt): Likewise.
8682         (simulate_block): Likewise.
8683         (ssa_prop_init): Likewise.
8684         * tree-ssa-threadupdate.c (thread_block): Likewise.
8685         (create_block_for_threading): Likewise.
8686         (remove_last_stmt_and_useless_edges): Likewise.
8687         * tree-ssa.c (verify_phi_args): Likewise.
8688         (verify_ssa): Likewise.
8689         * tree_tailcall.c (independent_of_stmt_p): Likewise.
8690         (find_tail_calls): Likewise.
8691         (eliminate_tail_call): Likewise.
8692         (tree_optimize_tail_calls_1): Likewise.
8693         * tree-vectorizer.c (vect_transform_loop): Likewise.
8694         * var-tracking.c (prologue_stack_adjust): Likewise.
8695         (vt_stack_adjustments): Likewise.
8696         (vt_find_locations): Likewise.
8697         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
8698         * config/i386/i386.c (ix86_pad_returns): Likewise.
8699         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8700         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8701
8702 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8703
8704         PR target/16532
8705         * config/sparc/sparc.c (struct machine_function): New field
8706         'leaf_function_p' and 'prologue_data_valid_p'.
8707         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
8708         to conveniently access the above fields.
8709         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
8710         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
8711         of the generic flavor 'current_function_uses_only_leaf_regs'.
8712         (eligible_for_sibcall_delay): Likewise.
8713         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
8714         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
8715         (sparc_asm_function_prologue): Add sanity check for the assumption
8716         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
8717         (sparc_can_use_return_insn_p): New function.
8718         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
8719         (output_restore): Likewise.
8720         (output_sibcall): Likewise.
8721         (sparc_output_mi_thunk): Likewise.
8722         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
8723         * config/sparc/sparc.md (return): New expander.
8724
8725         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
8726
8727 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
8728
8729         PR c++/17642
8730         * stor-layout.c (layout_decl): Use fold_convert, not convert.
8731         (bit_from_pos): Likewise.
8732         (byte_from_pos): Likewise.
8733         (pos_from_bit): Likewise.
8734         (normalize_offset): Likewise.
8735         (place_field): Likewise.
8736         (finalize_type_size): Likewise.
8737         (layout_type): Likewise.
8738         * tree.c (build_index_type): Likewise.
8739
8740 2004-09-27  Devang Patel  <dpatel@apple.com>
8741
8742         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
8743         * genopinit.c (optabs): New entry for vcond_gen_code and
8744         vcondu_gen_code.
8745         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
8746         (get_rtx_code): New function.
8747         (vector_compare_rtx): New function.
8748         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
8749         (expand_vec_cond_expr_p): New function.
8750         (expand_vec_cond_expr): New function.
8751         (get_vcond_icode): New function.
8752         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
8753         (vcond_gen_code, vcondu_gen_code): Same.
8754
8755 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
8756
8757         * Makefile.in (STAGESTUFF): Split into ...
8758         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
8759         (mostlyclean): Update.
8760         (stage1-start, stage2-start, stage3-start, stage4-start,
8761         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
8762         Move the STAGEMOVESTUFF.
8763
8764 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8765
8766         * system.h (getpagesize): Return 'int' instead of 'long'.
8767
8768 2004-09-27  Michael Matz <matz@suse.de>
8769
8770         PR bootstrap/17698
8771         PR bootstrap/17702
8772         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
8773         bmp_iter_and_init): Shift by bit_in_word.
8774
8775 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
8776
8777         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
8778         * configure.ac: Don't sinclude it here.
8779         * configure: Regenerate.
8780
8781 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
8782
8783         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
8784         Handle AND pattern
8785
8786 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
8787
8788         PR c/13804
8789         * c-typeck.c (build_component_ref): Name type involved in
8790         diagnostic for structure or union without a member of the given
8791         name.
8792
8793 2004-09-27  DJ Delorie  <dj@redhat.com>
8794
8795         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
8796         .comm alignment is bytes, not bits.
8797
8798 2004-09-27  Devang Patel  <dpatel@apple.com>
8799
8800         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
8801         (print_call_name): Do not print VEC_COND_EXPR.
8802
8803 2004-09-27  Devang Patel  <dpatel@apple.com>
8804
8805         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
8806
8807 2004-09-27  Jan Hubicka  <jh@suse.cz>
8808
8809         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
8810
8811 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
8812
8813         * bitmap.h: Fix a comment typo.
8814
8815 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
8816
8817         * libgcc2.c (getpagesize): Change type of return value to int.
8818
8819 2004-09-26  Matt Austern  <austern@apple.com>
8820
8821         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
8822         using mmap.
8823
8824 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8825
8826         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
8827         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
8828         (bitmap_iterator): New type.
8829         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
8830         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
8831         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
8832         bmp_iter_and_init, bmp_iter_and_next): New functions.
8833         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
8834         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
8835         use iterator-style EXECUTE_IF_IN_BITMAP macros.
8836         * bitmap.c (bitmap_print): Ditto.
8837         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
8838         btr_def_live_range): Ditto.
8839         * cfganal.c (compute_dominance_frontiers_1) Ditto.
8840         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
8841         Ditto.
8842         * ddg.c (build_inter_loop_deps): Ditto.
8843         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
8844         Ditto.
8845         * except.c (remove_eh_handler): Ditto.
8846         * flow.c (reg_set_to_hard_reg_set): Ditto.
8847         * gcse.c (clear_modify_mem_tables): Ditto.
8848         * global.c (build_insn_chain): Ditto.
8849         * ifcvt.c (dead_or_predicable): Ditto.
8850         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
8851         Ditto.
8852         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
8853         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
8854         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
8855         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
8856         tree_purge_all_dead_eh_edges): Ditto.
8857         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
8858         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
8859         rewrite_ssa_into_ssa): Ditto.
8860         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
8861         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
8862         Ditto.
8863         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
8864         compute_flow_sensitive_aliasing, maybe_create_global_var,
8865         dump_points_to_info_for): Ditto.
8866         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
8867         * tree-ssa-dse.c (dse_finalize_block): Ditto.
8868         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
8869         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
8870         Ditto.
8871         * tree-ssa-loop-ivopts.c (find_induction_variables,
8872         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
8873         determine_use_iv_costs, determine_set_costs, find_best_candidate,
8874         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
8875         Ditto.
8876         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
8877         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
8878         add_call_read_ops): Ditto.
8879         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
8880
8881 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8882
8883         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
8884         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
8885
8886 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
8887
8888         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
8889         reflect size of memory regions being compared.
8890
8891 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
8892
8893         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
8894         expressions.  Always clear MEM_SIZE and alias set.
8895
8896 2004-09-26  Roger Sayle  <roger@eyesopen.com>
8897             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8898
8899         PR middle-end/17112
8900         * stor-layout.c (compute_record_mode): For records with a single
8901         field, only use the field's mode if its size matches what we'd
8902         have choosen for the record ourselves.  This forces the use of
8903         BLKmode for packed records that don't completely fill a mode.
8904
8905 2004-09-26  Roger Sayle  <roger@eyesopen.com>
8906
8907         PR middle-end/17151
8908         * combine.c (force_to_mode): Remove dubious early return test that
8909         inhibits further optimization.
8910
8911 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
8912
8913         * profile.c: Fix a comment typo.
8914
8915 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8916
8917         PR bootstrap/17591
8918         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
8919         with varying offset.
8920         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
8921         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
8922         ARRAY_REFS.
8923         (expr_invariant_in_loop_p): New function.
8924         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
8925         component_ref_field_offset for COMPONENT_REFs.  Do not allow
8926         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
8927         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
8928         MISALIGNED_INDIRECT_REFs.
8929         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
8930         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
8931         MISALIGNED_INDIRECT_REFs.
8932
8933 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
8934
8935         PR c/11459
8936         * gcc.c (cpp_options, cc1_options): Preserve relative order of
8937         -std and -ansi options.
8938
8939 2004-09-26  Jan Hubicka  <jh@suse.cz>
8940
8941         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
8942         for nested functions whose proper parent has not been output.
8943
8944         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
8945         when re-constructing profile previously invalidated by loop.
8946
8947 2004-09-25  Dale Johannesen  <dalej@apple.com>
8948
8949         * tree-gimple.c:  Move GIMPLE definition...
8950         * doc/tree-ssa.texi:  here.
8951
8952 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
8953
8954         * tree-vectorizer.c: Fix a comment typo.
8955
8956 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
8957
8958         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
8959         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
8960         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
8961         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
8962
8963 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
8964
8965         * tree-ssa-loop-unswitch.c: Fix a comment typo.
8966
8967 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
8968
8969         * doc/passes.texi: Fix a typo.
8970
8971 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8972
8973         * tree-optimize.c (init_tree_optimization_passes): Add
8974         pass_record_bounds.
8975         * tree-pass.h (pass_record_bounds): Declare.
8976         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
8977         New pass.
8978
8979 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8980
8981         PR tree-optimization/17474
8982         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
8983         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
8984
8985 2004-09-25  Jan Hubicka  <jh@suse.cz>
8986
8987         * predict.c (counts_to_freqs): Make global.
8988         * predict.h (counts_to_freqa): Declare.
8989         * profile.c (compute_branch_probabilities): Compute frequencies
8990         * tree-profile.c (do_tree_profiling): Refine conditional on when
8991         tree profiling pass is needed.
8992
8993         * passes.c (rest_of_handle_cfg): Disable const/pure function
8994         detection when doing tree based profiling.
8995
8996         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
8997         conditional.
8998
8999 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9000
9001         * config/mips/mips.h (struct mips_args): Clarify comments.
9002         * config/mips/mips.c (struct mips_arg_info): Likewise.
9003         (mips_arg_info): Don't allow fpr_p to affect the register or
9004         stack alignment.  Remove o64 silliness.
9005         (function_arg): Deal with the o32 float,float case specially.
9006
9007 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9008
9009         * config/mips/mips.md (loadx, storex): Define for V2SF.
9010
9011 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
9012
9013         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
9014         * config/s390/s390.c (s390_back_chain_rtx): New function.
9015         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
9016         Call anti_adjust_stack.
9017         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
9018         only if compiling with back chain.
9019         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
9020         back chain only if back chain enabled.  Use s390_back_chain_rtx.
9021
9022 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9023
9024         * doc/trouble.texi: Remove obsolete information.  Update
9025         information on how to regenerate fixincluded headers.
9026
9027 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9028
9029         PR c/12951
9030         * doc/invoke.texi: Document that
9031         -Wno-error-implicit-function-declaration is not accepted.
9032
9033 2004-09-24  Richard Henderson  <rth@redhat.com>
9034
9035         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
9036         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
9037         on TARGET_MAX.
9038         (alpha_expand_mov): Allow unaligned vectors.
9039         (alpha_expand_unaligned_store): Use CONST0_RTX.
9040         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
9041
9042 2004-09-24 Jeff Law  <law@redhat.com>
9043
9044         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
9045         aliasing rules.
9046         (simplify_cond_and_lookup_avail_expr): Likewise.
9047
9048 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9049
9050         PR c/12802
9051         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
9052         title.  Document interaction with -fms-extensions.
9053         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
9054         section.
9055
9056 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9057
9058         PR c/12713
9059         * doc/extend.texi: Document interaction of attribute noreturn and
9060         longjmp.
9061
9062 2004-09-24  Richard Henderson  <rth@redhat.com>
9063
9064         PR rtl-opt/17503
9065         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
9066         (som_hash, som_eq): New.
9067         (init_subregs_of_mode, record_subregs_of_mode): New.
9068         (cannot_change_mode_set_regs): Rewrite for htab implementation.
9069         (invalid_mode_change_p): Likewise.
9070         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
9071         * flow.c (mark_used_regs): Likewise.
9072         (life_analysis): Use init_subregs_of_mode.
9073         * regs.h (subregs_of_mode): Remove.
9074         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
9075
9076 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9077
9078         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
9079         type with the copy of the conditional.
9080
9081 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9082
9083         PR tree-opt/16954
9084         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9085         Prevent renaming if the aliasing sets of the type which the
9086         pointer points to are different.
9087
9088 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9089
9090         PR c/17188
9091         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
9092         declarations of enumerators.
9093         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
9094         for redefinition.  Check for nested redefinition.
9095         (finish_struct): Don't check for nested redefinition.
9096         (start_enum): Check for nested redefinition.
9097
9098 2004-09-24  Devang Patel  <dpatel@apple.com>
9099
9100         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
9101         only when necesssary.
9102         (combine_blocks): Combine loop header and exit block.
9103
9104 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
9105
9106         * hooks.c (hook_tree_tree_bool_null): New.
9107         * hooks.h (hook_tree_tree_bool_null): Declare it.
9108         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
9109         * targhooks.c (default_fold_builtin): Remove.
9110         * targhooks.h (default_fold_builtin): Remove.
9111
9112 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9113
9114         PR rtl-optimization/17625
9115         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
9116
9117 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9118
9119         PR tree-opt/17624
9120         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
9121         Reject if any of the operands occur in an abnormal PHI.
9122
9123 2004-09-24  Andreas Schwab  <schwab@suse.de>
9124
9125         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
9126         rules.
9127
9128 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9129
9130         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
9131         if the GNU assembler is used.
9132         (sparc-*-solaris2*): Likewise.
9133         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
9134         (dbxout_function_end): Protect N_ENSYM with it.
9135         (dbxout_begin_prologue): Protect N_BNSYM with it.
9136         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
9137         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
9138         * config/sparc/sol2-gas.h: New file.
9139
9140 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
9141
9142         PR bootstrap/17369
9143         * Makefile.in (@set_gcc_lib_path@): Added.
9144
9145         * configure.ac: Include ../config/gcc-lib-path.m4. Use
9146         TL_AC_GNU_MAKE_GCC_LIB_PATH.
9147         * configure: Regenerated.
9148
9149 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9150
9151         PR c/6980
9152         * c-typeck.c (build_c_cast): Improve wording of
9153         -Wbad-function-cast diagnostic.
9154
9155 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
9156
9157         PR target/17626
9158         * config/cris/cris.md (moverside, movemside): Rename variable
9159         "reg" to "otherop".  To generate canonical RTX, check that otherop
9160         isn't constant instead of checking that operand 1 is a register.
9161
9162 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
9163
9164         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
9165
9166 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
9167             Jakub Jelinek  <jakub@redhat.com>
9168
9169         * tree-flow.h (find_new_referenced_vars): Add prototype.
9170         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
9171         Move to...
9172         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
9173         ... here.
9174         (mark_new_vars_to_rename): Walk through all operands.
9175         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
9176         (execute_fold_all_builtins): Use it.
9177         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
9178
9179 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
9180
9181         * gthr-tpf.h: New file.
9182         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
9183         * gthr.h: Use gthr-tpf.h on TPF OS.
9184
9185 2004-09-23 Jeff Law  <law@redhat.com>
9186
9187         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
9188         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
9189         (substitute_and_fold):  Likewise.
9190         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
9191         except invariants from SSA_NAME_VALUE.
9192         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
9193         and SET_SSA_NAME_EQUIV.
9194         (restore_vars_to_original_value, record_const_or_copy): Likewise.
9195         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
9196         (record_equality, cprop_into_successor_phis): Likewise.
9197         (record_equivalences_from_stmt, cprop_operand): Likewise.
9198         (lookup_avail_expr): Likewise.
9199         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
9200         from SSA_NAME_VALUE.
9201         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
9202         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
9203         annotation from the VALUE_HANDLE field.
9204
9205 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
9206
9207         PR c++/13989
9208         PR c++/9844
9209         * tree.c (reconstruct_complex_type): Remove extra "this".
9210         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
9211         Add V4SFmode to case statement.
9212
9213 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
9214
9215         PR c/16833
9216         * doc/extend.texi, doc/invoke.texi: Document interaction of
9217         -fno-builtin with format checks.  Note that built-in functions
9218         have effects beyond generating code that avoids calls to those
9219         functions.
9220
9221 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
9222
9223         PR tree-optimization/17533
9224         * dominance.c (verify_dominators): Tolerate even more incorrect
9225         dominance data during error message printing.
9226         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
9227         and edges more correctly.
9228
9229 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
9230
9231         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
9232         New tree-codes.
9233         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
9234         MISALIGNED_INDIRECT_REF.
9235         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
9236         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
9237         Likewise.
9238         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
9239         (find_interesting_uses_address): Likewise.
9240         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
9241         (build_fold_addr_expr_with_type): Likewise.
9242         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
9243         * print-rtl.c (print_mem_expr): Likewise.
9244         * tree-dump.c (dequeue_and_dump): Likewise.
9245         * tree-eh.c (tree_could_trap_p): Likewise.
9246         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
9247         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
9248         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
9249         Likewise.
9250         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9251         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
9252         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
9253         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
9254         (add_address_candidates, rewrite_address_base): Likewise.
9255         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
9256         Likewise.
9257         * tree.c (staticp, build1_stat): Likewise.
9258
9259         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
9260         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
9261         * tree-ssa-operands.c (get_expr_operands): Likewise.
9262         * expr.c (expand_expr_real_1): Likewise.
9263
9264         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
9265         optabs.
9266         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
9267         for the new optabs.
9268         (expand_ternary_op): New function.
9269         * genopinit.c (optabs): Handle the new optabs.
9270         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
9271         (init_optabs): Initialize vec_realign_load_optab.
9272         (expand_ternary_op): New functions.
9273
9274         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
9275         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
9276         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
9277         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
9278         * target.h (struct vectorize): New member for struct gcc_target.
9279         (misaligned_mem_ok): New member for targetm.vectorize.
9280         (builtin_mask_for_load): Likewise.
9281         (builtin_mask_for_store): Likewise.
9282         * targethooks.c (default_vect_misaligned_mem_ok): New function.
9283         * targethooks.h (default_vect_misaligned_mem_ok): New function.
9284
9285         * config/rs6000/altivec.md (build_vector_mask_for_load): New
9286         define_expand.
9287         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
9288         (vec_realign_load_v16qi): New define_insn.
9289         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
9290         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
9291         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
9292         (altivec_builtin_mask_for_store): New variables.
9293         (rs6000_builtin_mask_for_load): New function. Implements
9294         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
9295         (rs6000_builtin_mask_for_store): New function. Implements
9296         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
9297         (rs6000_expand_builtin): Expand the target builtins
9298         builtin_mask_for_load and builtin_mask_for_store.
9299         (altivec_init_builtins): Initialize the new target builtins.
9300         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
9301         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
9302
9303         * tree-vectorizer.c (vect_create_data_ref): Renamed to
9304         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
9305         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
9306         (vectorizable_store): Call vect_create_data_ref_ptr with additional
9307         arguments, and create an indirect_ref with its return value data_ref.
9308         Check aligned_access_p.
9309         (vectorizable_load): Handle misaligned loads, using software-pipelined
9310         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
9311         vec_realign_load_optab is supported, or using a scheme without
9312         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
9313         misaligned_mem_ok is supported.
9314
9315         (vect_finish_stmt_generation): Typo.
9316         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
9317         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
9318         presence of misaligned loads.
9319         (vect_analyze_data_ref_access): Add check for constant init.
9320         (vect_get_symbl_and_dr): Remove duplicate line.
9321         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
9322
9323 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
9324
9325         * builtins.c: Fix a comment typo.
9326
9327 2004-09-23  Jan Hubicka  <jh@suse.cz>
9328
9329         * profile.c (branch_prob): Do not verify flow info in the middle of the
9330         pass.
9331
9332 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9333
9334         * cfgloop.h (update_single_exits_after_duplication): Declare.
9335         (loopify, split_loop_bb): Declaration changed.
9336         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
9337         of rtx.
9338         (loopify): Added redirect_all_edges argument.
9339         (update_single_exits_after_duplication): Export.
9340         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
9341         * tree-flow.h (tree_duplicate_loop_to_header_edge,
9342         tree_ssa_loop_version): Declare.
9343         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
9344         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
9345         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
9346         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
9347
9348         * tree-ssa-loop-unswitch.c: New file.
9349         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
9350         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
9351         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
9352         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
9353         * tree-pass.h (pass_unswitch): Declare.
9354         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
9355         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
9356         * doc/passes.texi: Documen tree level loop unswitching.
9357
9358 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
9359
9360         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
9361
9362 2004-09-22  Eric Christopher  <echristo@redhat.com>
9363
9364         * builtins.c (simplify_builtin_va_start): Remove.
9365         (simplify_builtin): Ditto.
9366         (fold_builtin_strchr): Ditto.
9367         (simplify_builtin_*): Rename remainders to fold_builtin_*.
9368         (expand_builtin): Fix up for above changes.
9369         (fold_builtin_1): Add new folders. Change for above.
9370         (expand_builtin_va_start): Call fold_builtin_next_arg.
9371         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
9372         * tree.h: Remove prototype for simplify_builtin.
9373
9374 2004-09-23  Jan Hubicka  <jh@suse.cz>
9375
9376         PR debug/17389
9377         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
9378         of fully inlined functions.
9379         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
9380         inlined.
9381
9382         * cfgexpand.c (add_reg_br_prob_note): New function.
9383         (expand_gimple_cond_expr): Use it.
9384         (tree_expand_cfg): No longer kill the profile.
9385         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
9386         only if it is present.
9387         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
9388         * predict.c (combine_predictions_for_insn): Set the probabilities
9389         based on REG_BR_PROB note if present.
9390         * predict.c (branch_prob): Profile is read only with
9391         flag_branch_probabilities.
9392
9393 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9394
9395         * aclocal.m4: Add in gettext's m4 includes.
9396         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
9397         * configure.ac: Add in check for iconv.h
9398         * configure: Regenerate.
9399
9400 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9401
9402         * aclocal.m4: Update for rename of gettext-sister.m4.
9403
9404 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
9405
9406         Fix PR tree-optimization/17587
9407         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
9408         (insert_aux): Instead of here.
9409
9410 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
9411
9412         PR tree-optimization/16721
9413         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
9414         * tree-ssa-alias.c (create_memory_tag): Move setting of
9415         TREE_THIS_VOLATILE ...
9416         (get_tmt_for): ... here.
9417
9418 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9419
9420         * config/sparc/sparc.md (cmove splitter): Fix formatting.
9421         (conditional_trap expander): Reject inappropriate CCmodes.
9422         (conditional trap insn): Use V9 syntax if possible.
9423
9424 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9425
9426         PR c/16566
9427         * c-typeck.c (build_component_ref): Don't special-case
9428         COMPOUND_EXPR.
9429
9430 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
9431
9432         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
9433         returns NULL.
9434
9435 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
9436
9437         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
9438         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
9439         TRUTH_XOR_EXPR): Mention the restriction on types.
9440
9441 2004-09-22  Matt Austern  <austern@apple.com>
9442
9443         * config/darwin.c (darwin_make_decl_one_only):
9444         Allow coalesced symbol to appear in static archive's table of contents
9445
9446 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
9447
9448         PR tree-optimization/17512
9449         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
9450         special cases.
9451
9452 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
9453
9454         * dbxout.c (get_lang_number): Do not define if
9455         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
9456
9457 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
9458
9459         PR target/15583
9460         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
9461         builtin_define ("__USE_INIT_FINI__").
9462
9463 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
9464
9465         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
9466         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
9467         * config/s390/s390.h (TARGET_TPF): New macro.
9468         * config/s390/s390.md ("eh_return"): New expander.
9469         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
9470         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
9471         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
9472         * config/s390/tpf.h (TARGET_TPF): Define to 1.
9473         (STACK_POINTER_OFFSET): Increase to 448.
9474         (TARGET_DEFAULT): Set -mtpf-trace on as default.
9475         (TPF_LOC_DIFF_OFFSET): New macro.
9476         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
9477         encoding.
9478         (__isPATrange): Add prototype.
9479         (MD_FALLBACK_FRAME_STATE_FOR): Define.
9480         * config/s390/tpf-eh.c: New file.
9481
9482 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
9483
9484         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
9485         operands in an integer comparison.
9486         * tree-cfg.c (find_taken_edge): Call fold() to determine
9487         whether the predicate is known.
9488
9489 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9490
9491         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
9492         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
9493         Create build and doc directories along with the language directories.
9494         Don't create doc directory separately.
9495         * configure: Regenerate.
9496         * Makefile.in: Create all object and executables files built
9497         with the build compiler in a build/ directory.
9498         (genobjnames): Add missing build objects.
9499         (STAGESTUFF): Don't stage the gen* programs.
9500         (ggc-none.o): Define dependencies for the target compiler.
9501         (build-print-rtl.o): Rename to build/print-rtl.o.
9502         (build-errors.o): Rename to build/errors.o.
9503         (build-varray.o): Rename to build/varray.o.
9504         (maintainerclean): Delete the contents of the build directory.
9505         ($(genobjs): %.o): Explicitly use -o.
9506         (build/insn-conditions.o): Delete specfic rule to use generic rule.
9507         (build/gengtype-lex.o): Likewise.
9508         (build/gengtype-yacc.o): Likewise.
9509         (build/gcov-iov.o): Likewise.
9510
9511 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
9512
9513         * vec.h (VEC_space): Return true if there _is_ space.
9514         (VEC_reserve): Adjust.
9515
9516 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
9517
9518         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
9519         use FPRs for scalar, complex and vector types only.
9520
9521 2004-09-21 Jeff Law  <law@redhat.com>
9522
9523         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
9524         the opt_stats_d structure.
9525         (vrp_data): Change from a varray into a hash table.
9526         (vrp_hash_elt): New structure for elements in the vrp hash table.
9527         (vrp_hash, vrp_eq):New functions for hashing and testing equality
9528         in the vrp hash table.
9529         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
9530         initialization slightly to make it easier to read.  No longer need
9531         to grow/clear the varray.  Instead empty and delete the hash table.
9532         (dom_opt_finalize_block): Update due to change of VRP_DATA from
9533         a varray to a hash table.
9534         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
9535
9536         * tree-ssa-ccp.c (get_default_value): If we have a constant
9537         value recorded for an SSA_NAME, then use that constant as
9538         the initial lattice value.
9539         (substitute_and_fold): Transfer equivalences discovered into
9540         SSA_NAME_EQUIV.
9541
9542         * tree.h (SSA_NAME_EQUIV): Add comments.
9543         (SET_SSA_NAME_EQUIV): Similarly.
9544
9545 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
9546
9547         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
9548
9549         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
9550
9551 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
9552
9553         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
9554         (finish_decl): Likewise.
9555
9556 2004-09-21  Devang Patel  <dpatel@apple.com>
9557
9558         * tree.def (VEC_COND_EXPR): New tree node.
9559         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
9560
9561 2004-09-21  Stan Shebs  <shebs@apple.com>
9562
9563         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
9564         * config/rs6000/darwin-world.asm: Likewise.
9565
9566 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
9567
9568         * tree-ssa.c (verify_def): Use print_generic_stmt,
9569         not debug_generic_stmt.
9570         (verify_use): Ditto.
9571         (verify_phi_args): Ditto.
9572         (verify_ssa): Ditto.
9573
9574 2004-09-21  Paul Brook  <paul@codesourcery.com>
9575
9576         * varasm.c (default_assemble_integer): Return false for values wider
9577         than the target word size.  Works around GAS bug.
9578
9579 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
9580
9581         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
9582         gets value 0.
9583         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
9584         if it has value 0.
9585
9586 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
9587
9588         * c-typeck.c (build_function_call): Give name of object
9589         we are attempting to call in error message.
9590         * c-objc-common.c (c_tree_printer): Call pp_expression,
9591         not return false, for 'E' case.
9592
9593 2004-09-21  Steven Bosscher  <stevenb@suse.de>
9594
9595         PR rtl-optimization/17482
9596         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
9597         load_killed_in_block_p): Clarify comments.
9598         (record_last_reg_set_info): Make static inline.
9599         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
9600         (record_opr_changes): New function to replace the above.
9601         (compute_hash_table): Clarify comments.  Use record_opr_changes.
9602         (reg_set_between_after_reload_p): Clean up.
9603         (reg_used_between_after_reload_p): Likewise.
9604         (eliminate_partially_redundant_load): Clarify comments.
9605
9606 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9607
9608         PR rtl-optimization/17266
9609         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
9610
9611 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
9612
9613         PR rtl-optimization/14851
9614         * rtlanal.c (commutative_operand_precedence): Calculate
9615         precedence of stripped constant.
9616
9617 2004-09-20 Jeff Law  <law@redhat.com>
9618            Jan Hubicka  <jh@suse.cz>
9619
9620         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
9621         initialize key elements here.
9622         (release_ssa_name): Zero the released SSA_NAME here.
9623         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
9624         (struct tree_ssa_name): Add new "equiv" field.
9625         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
9626         (tree_ssa_dominator_optimize): No longer allocate, resize or
9627         clear CONST_AND_COPIES.
9628         (get_value_for, set_value_for): Kill.
9629         (thread_across_edge): Get/set the equivalency using
9630         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
9631         (restore_vars_to_original_value): Likewise.
9632         (record_equivalences_from_phis): Likewise.
9633         (record_dominating_conditions): Likewise.
9634         (record_const_or_copy, record_equality): Likewise.
9635         (lookup_avail_expr): Likewise.
9636         (record_equivalences_from_stmt, cprop_operand): Likewise.
9637         (cprop_into_successor_phis): No longer need to pass around
9638         CONST_AND_COPIES.  Callers updated. Get equivalences via
9639         SSA_NAME_EQUIV.
9640         (cprop_into_phis): Likewise.
9641
9642 2004-09-20  Matt Austern <austern@apple.com>
9643             Zack Weinberg  <zack@codesourcery.com>
9644
9645         * c-common.c (fix_string_type): Build the unqualified array
9646         type unconditionally, then use c_build_qualified_type to get
9647         the proper const-qualified variant, and set its
9648         TYPE_MAIN_VARIANT to refer to the unqualified type.
9649         * c-lex.c (c_lex_return_raw_string): New global.
9650         (c_lex_with_flags): Honor it.
9651         * c-pragma.h: Declare it.
9652
9653 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
9654
9655         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
9656
9657 2004-09-21  Jan Hubicka  <jh@suse.cz>
9658
9659         PR middle-end/17126
9660         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
9661         (tree_rest_of_compilation): Cleanup.
9662
9663 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
9664
9665         * config/s390/s390.c (s390_select_rtx_section): Remove.
9666         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
9667
9668 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9669
9670         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
9671         note to pretend a direct save from the original register when an
9672         intermediate register is used for the save.
9673
9674 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9675
9676         * tsystem.h (alloca): Provide a default definition.
9677
9678         Revert:
9679         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9680             * unwind-dw2.c: Call __builtin_alloca, not alloca.
9681
9682 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
9683
9684         PR tree-opt/17558
9685         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
9686         aliasing sets are the same rather than just conflicting.
9687
9688 2004-09-20  Jan Hubicka  <jh@suse.cz>
9689
9690         PR middle-end/16460
9691
9692         * cgraph.c (cgraph_unnest_node): New function.
9693         (c_finalize): Rename to ....
9694         (c_warn_unused_result_recursivly): ... this one; do only the warning
9695         (finish_function): Finalize the toplevel function; do not lower nested tree.
9696         * cgraph.h (cgraph_unnest_node): Declare.
9697         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
9698         nestedness datastructure.
9699         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
9700         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
9701         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
9702
9703 2004-09-20  Richard Henderson  <rth@redhat.com>
9704
9705         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
9706         from some_small_symbolic_operand_1; export.
9707         (some_small_symbolic_operand): Remove.
9708         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
9709         extra C check.
9710         * config/alpha/predicates.md (some_small_symbolic_operand): New.
9711
9712 2004-09-20  Jan Hubicka  <jh@suse.cz>
9713
9714         * predict.c (return_prediction): New function.
9715         (apply_return_prediction): Likewise.
9716         (tree_bb_level_predictions): Likewise.
9717         (tree_estimate_probability): Add noreturn exit edges; call
9718         bb_level_predictions; fix logic of return heuristics.
9719         (predict_paths_leading_to):  Rescuesce from old CVS version of
9720         process_note_prediction function.
9721         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
9722
9723 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
9724
9725         * config/s390/s390.c (s390_frame_info): Added alignment statement for
9726         floating point register area on stack.
9727
9728 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
9729
9730         * predict.c (expr_expected_value): Use *_CLASS_P macros.
9731
9732 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
9733
9734         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
9735         generating useless garbage.
9736
9737 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
9738
9739         * builtins.c (fold_builtin): Call the new omonymous
9740         target hook for machine-dependent built-ins.
9741         * target-def.h (TARGET_FOLD_BUILTIN): New.
9742         * target.h (struct gcc_target): Add the fold_builtin hook.
9743         * targhooks.c (default_fold_builtin): New.
9744         * targhooks.h (default_fold_builtin): Declare it.
9745
9746 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
9747
9748         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
9749         comment typos.
9750
9751 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
9752
9753         PR target/17565
9754         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
9755
9756 2004-09-20  Jan Hubicka  <jh@suse.cz>
9757
9758         * predict.c (estimate_probability): Remove unnecesary code.
9759
9760 2004-09-19  Ira Rosen  <irar@il.ibm.com>
9761
9762         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
9763         (STMT_VINFO_VECT_DR_BASE): Declare.
9764         (VECT_SMODULO): Declare.
9765         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
9766         (vect_compute_array_base_alignment): New function.
9767         (vect_analyze_data_ref_access): Check array indices. Remove one
9768         dimensional arrays restriction.
9769         (vect_get_ptr_offset): New function.
9770         (vect_get_symbl_and_dr): New function.
9771         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
9772         (former name vect_get_base_decl_and_bit_offset).
9773         (vect_create_index_for_array_ref): Removed.
9774         (vect_create_index_for_vector_ref): New function.
9775         (vect_create_addr_base_for_vector_ref): New function.
9776         (vect_create_data_ref): Handle additional data refs. Call
9777         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
9778         (vect_compute_data_ref_alignment): Support the changes. Call
9779         vect_get_base_and_bit_offset.
9780         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
9781         data refs. Store vect_dr_base.
9782         (vect_analyze_data_ref_accesses): Support nonconstant init.
9783         (new_stmt_vec_info): Initialize vect_dr_base field.
9784         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
9785         (get_vectype_for_scalar_type): Check for BLKmode.
9786         * tree-chrec.h (initial_condition_in_loop_num): Declare.
9787         * tree-chrec.c (initial_condition_in_loop_num): New function.
9788         (chrec_component_in_loop_num): New function.
9789         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
9790         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
9791         to be pointer to varray_type.
9792
9793 2004-09-19  Jan Hubicka  <jh@suse.cz>
9794
9795         * basic-block.h (update_bb_profile_after_threading): Declare.
9796         * cfg.c (update_bb_profile_after_threading): Break out from ...
9797         * cfgcleanup.c (try_forward_edges): ... here; use it.
9798         * tree-ssa-dom.c (thread_across_edge): Use it.
9799         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
9800         profile of the new BB.
9801
9802 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
9803
9804         * tree-ssa-pre.c (insert_into_set): Don't put
9805         is_gimple_min_invariant values into the set.
9806
9807 2004-09-19  Andreas Jaeger  <aj@suse.de>
9808
9809         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
9810         prototype.
9811
9812 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
9813
9814         * config/cris/cris.h: Preserve the original spelling in a
9815         quote.
9816
9817 2004-09-18 Jeff Law  <law@redhat.com>
9818
9819         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
9820         global varrays to replace the block local varrays.
9821         (struct dom_walk_block_data): Remove, no longer used.
9822         (get_eq_expr_value): No longer need to pass around pointers to local
9823         varrays.  Callers updated.  Unused markers added to unused parameters.
9824         (record_range, record_equivalences_from_stmt): Likewise.
9825         (record_equivalences_from_incoming_edge): Likewise.
9826         (record_var_is_nonzero): Likewise.  Update now that we have a
9827         single global varray of SSA_NAMEs that need restoring.
9828         (dom_opt_initialize_block_local_data): Kill, no longer used.
9829         (tree_ssa_dominator_optimize): Initialize new global varrays.
9830         Update callbacks in dominator walker structure.
9831         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
9832         VRP_VARIABLES_STACK.
9833         (restore_nonzero_vars_to_original_value): Update now that we have
9834         a single global varray of SSA_NAMEs that need restoring.
9835         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
9836         Remove unused variables.
9837         (optimize_stmt): Remove unused variable.
9838
9839 2004-09-18  Jan Hubicka  <jh@suse.cz>
9840
9841         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
9842
9843         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
9844         verify_cgraph call.
9845
9846 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
9847
9848         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
9849         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
9850         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
9851         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
9852         tree-ssa-operands.c, tree-ssa-phiopt.c,
9853         tree-ssa-threadupdate.c: Fix comment typos.
9854
9855 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
9856
9857         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
9858         config/arm/README-interworking, config/arm/arm-cores.def,
9859         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
9860         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
9861         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
9862         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
9863         config/frv/frv.md, config/i386/winnt.c,
9864         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
9865         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
9866         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
9867         config/mcore/mcore.c, config/mips/mips.h,
9868         config/mn10300/mn10300.md, config/pa/pa.c,
9869         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
9870         config/rs6000/rs6000.c, config/sh/symbian.c,
9871         config/sparc/sparc.h: Fix comment typos.  Follow spelling
9872         conventions.
9873
9874 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
9875
9876         PR c/17424
9877         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
9878
9879 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
9880
9881         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
9882         remove TREE_ADDRESSABLE from RESULT_DECL.
9883
9884 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
9885
9886         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
9887
9888 2004-09-18  Jan Hubicka  <jh@suse.cz>
9889
9890         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
9891         NULL.
9892         * tree-ssa-alias.c (init_alias_info): Likewise.
9893         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
9894         (verify_ssa): Likewise.
9895         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
9896
9897 2004-09-18  Jan Hubicka  <jh@suse.cz>
9898
9899         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
9900         huge offset.
9901
9902 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9903
9904         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
9905         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9906         DW_EH_PE_sdata* for data.
9907         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9908
9909 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
9910
9911         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
9912         shared anyway.
9913
9914         PR pch/13361
9915         * c-typeck.c (constructor_asmspec): Delete.
9916         (struct initializer_stack): Delete field 'asmspec'.
9917         (start_init): Delete saving of asmspec.
9918         (finish_init): Don't update constructor_asmspec.
9919         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
9920         * stmt.c (expand_asm): Duplicate strings from tree.
9921         (expand_asm_operands): Likewise.
9922         * tree.c (tree_size): Update computation of size of STRING_CST.
9923         (make_node): Don't make STRING_CST nodes.
9924         (build_string): Allocate string with tree node.
9925         (tree_code_size): Clean up assertions, don't allow requests
9926         for "the size of a STRING_CST".
9927         * tree.def (STRING_CST): Update comment.
9928         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
9929         (tree_string): Place contents of string in tree node.
9930         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
9931         from tree.
9932
9933 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
9934
9935         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
9936         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
9937
9938 2004-09-17  Jones Desougi  <jones@ingate.com>
9939
9940         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
9941         * configure, config.in: Regenerate.
9942
9943 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
9944
9945         * tree.c, tree.h (tree_class_strings): Make array const.
9946         Reindent per coding convention.  Move asterisk to proper place
9947         per coding convention.
9948
9949 2004-09-18  Andreas Schwab  <schwab@suse.de>
9950
9951         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
9952         (tree-vectorizer.o): Likewise.
9953         (targhooks.o): Likewise.
9954
9955 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
9956             Zack Weinberg  <zack@codesourcery.com>
9957
9958         * alias.c (find_base_decl): Remove unreachable case '3' block.
9959         * expr.c (safe_from_p): Abort if passed a type.
9960         * tree-gimple.c (recalculate_side_effects): Abort if passed
9961         anything other than an expression.
9962         * tree-ssa-pre.c (phi_translate): Return expr immediately if
9963         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
9964         Abort on un-handled tree classes.
9965         (valid_in_set): Likewise.
9966         * tree.c (tree_code_class_strings): New static data.
9967
9968         * tree.h (enum tree_code_class): New.
9969         (tree_code_class_strings): Declare.
9970         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
9971         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
9972         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
9973         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
9974         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
9975
9976         * tree.def, c-common.def, objc/objc-tree.def: Use
9977         tree_code_class enumeration constants instead of code letters.
9978
9979         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
9980         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
9981         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
9982         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
9983         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
9984         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
9985         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
9986         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
9987         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
9988         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
9989         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
9990         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
9991         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
9992         Update to match.
9993
9994         * LANGUAGES: Add note about change.
9995
9996 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
9997
9998         PR tree-optimization/17319
9999         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
10000         examine pointers on the LHS of an assignment.
10001         (collect_points_to_info_r): Handle RETURN_EXPR.
10002
10003 2004-09-17 Jeff Law  <law@redhat.com>
10004
10005         * tree-ssa-dom.c (const_and_copies_stack): New.
10006         (dom_walk_block_data): Remove const_and_copies field.
10007         (record_const_or_copy): No longer need to pass in varray_type *.
10008         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
10009         Callers updated.
10010         (record_equality): Similarly.
10011         (restore_vars_to_original_value): Similarly.  Revamp to use new
10012         single global stack rather than per-block stacks.
10013         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
10014         (thread_across_edge): Remove now unused parameters.
10015         (dom_opt_initialize_block_local_data): No longer test the block
10016         local CONST_AND_COPIES.
10017         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
10018
10019 2004-09-17  Jan Hubicka  <jh@suse.cz>
10020
10021         PR tree-optimization/17509
10022         * tree-optimize.c (update_inlined_to_pointers): New function.
10023         (tree_rest_of_compilation): Use it.
10024
10025 2004-09-17  Devang Patel  <dpatel@apple.com>
10026
10027         * dbxout.c (get_lang_number): New.
10028         (dbxout_init): Include lang number in N_SO  stab.
10029         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
10030         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
10031
10032 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10033
10034         PR tree-optimization/17273
10035         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
10036         replacement is a constant.
10037
10038 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10039
10040         * c-tree.h (enum c_typespec_keyword): New.
10041         (struct c_declspecs): Adjust description of "type".  Remove
10042         specbits, explicit_int_p and explicit_char_p.  Rename
10043         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
10044         short_p, signed_p, unsigned_p and complex_p.
10045         (finish_declspecs): New.
10046         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
10047         typename): Call finish_declspecs.
10048         * c-decl.c (finish_declspecs): New.
10049         (declspecs_add_type): Check for combinations which cannot occur in
10050         valid specifier lists.  Update comments.
10051         (shadow_tag_warned): Remove checks done in finish_declspecs.
10052         Don't report useless type name if type defaulted to int.
10053         (grokdeclarator): Remove checks and actions done in
10054         finish_declspecs.  Don't allow for type being NULL.  Update for
10055         datastructures changes.  Initialize decl_attr.
10056         (build_null_declspecs, quals_from_declspecs): Update for
10057         datastructures changes.
10058
10059 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
10060
10061         * doc/extend.texi: Fix duplicated word.
10062
10063 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
10064
10065         * doc/invoke.texi: Remove stray explanation on
10066         -freduce-all-givs and -fmove-all-movables.
10067
10068 2004-09-17  James Morrison  <phython@gcc.gnu.org>
10069
10070         * doc/cfg.texi: Use @smallexample.
10071         * doc/md.texi: Likewise.
10072         * doc/tree-ssa.texi: Likewise.
10073         * doc/extend.texi: Likewise.  Use @r{} in comments.
10074         * doc/trouble.texi: Use @r{} in comments.
10075
10076 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
10077
10078         * configure.ac (gcc_cv_gld_version): Handle whitespace before
10079         "VERSION=".
10080         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
10081         * configure: Regenerate.
10082
10083 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
10084
10085         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
10086         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
10087         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
10088         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
10089         slashes in substitutions.
10090         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
10091
10092 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10093
10094         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
10095         gimplify.c, lambda-code.c, optabs.c, predict.c,
10096         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
10097         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
10098         conventions.
10099
10100 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10101
10102         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
10103         doc/extend.texi, doc/install.texi, doc/invoke.texi,
10104         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
10105         doc/trouble.texi: Use @option around options.
10106
10107 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
10108
10109         * Makefile.in (gen-protos.o): Depend on errors.h.
10110
10111 2004-09-17  Steven Bosscher  <stevenb@suse.de>
10112
10113         PR tree-optimization/17513
10114         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
10115         for successors of the entry block.
10116
10117 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
10118
10119         PR rtl-optimization/15187
10120         * ifcvt.c (noce_try_cmove_arith): Exit early if total
10121         insn_rtx_cost of both branches > BRANCH_COST
10122
10123 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10124
10125         PR tree-optimization/17528
10126         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
10127         erase the may-alias set for a tag when merging it with
10128         another.
10129
10130 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10131
10132         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
10133         for 32-bit TARGET_SHMEDIA.
10134         (call_value): Likewise.
10135
10136 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10137
10138         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
10139         test apply only to TREE_STATIC and DECL_EXTERNAL.
10140
10141 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10142
10143         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
10144         * basic-block.h (get_dominated_by_region): Declare.
10145         * dominance.c (get_dominated_by_region): New function.
10146         * tree-cfg.c: Include cfglayout.h.
10147         (tree_duplicate_bb): Duplicate also phi nodes.
10148         (struct ssa_name_map_entry): New type.
10149         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
10150         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
10151         allocate_ssa_names, rewrite_to_new_ssa_names_def,
10152         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
10153         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
10154         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
10155         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
10156         rewrite_to_new_ssa_names, allocate_ssa_names,
10157         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
10158         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
10159         (copy_loop_headers): Use tree_duplicate_sese_region.
10160
10161 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
10162
10163         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
10164
10165 2004-09-16 Jeff Law  <law@redhat.com>
10166
10167         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
10168         (rewrite_block_data): Remove, no longer used.
10169         (rewrite_initialize_block_local_data): Remove, no longer used.
10170         (rewrite_initialize_block): Mark parameters as unused as needed.
10171         Change references to the block local block_defs to be block_defs_stack.
10172         Push a marker onto the block_defs_stack.
10173         (ssa_rewrite_initialize_block): Similarly.
10174         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
10175         (ssa_register_new_def): No longer needs varray argument.  Use
10176         block_defs_stack instead.  No longer handle possibly null block_defs
10177         varray.  Reverse order of items we push on the stack to make it
10178         easier to identify our marker.
10179         (register_new_def): No longer handle possibly null block_defs
10180         varray.
10181         (rewrite_finalize_block): Revamp to look for markers in the global
10182         block_defs_stack varray rather than wiping a block local varray.
10183         Mark arguments as unused as needed.
10184         (ssa_rewrite_finalize_block): Similarly.
10185         (rewrite_into_ssa): Update initialization of dom walker structure
10186         to reflect that we don't need block local data anymore.  Initialize
10187         the block_defs_stack varray.
10188         (rewrite_ssa_into_ssa): Similarly.
10189         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
10190         (struct dom_walk_data): Kill block_defs field.
10191         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
10192         (thread_across_edge): Use the global block_defs_stack instead of
10193         the old block_defs varray.
10194         (dom_opt_initialize_block_local_data): Update now that we don't have
10195         block_defs field to check anymore.
10196         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
10197         (restore_currdefs_to_original_value): Use the new block_defs_stack
10198         instead of a block local varray.
10199         (dom_opt_finalize_block): Similarly.
10200         (record_equivalencs_from_phis): Similarly.
10201         (optimize_stmt, register_definitions_for_stmt): Similarly.
10202
10203 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
10204
10205         PR tree-optimization/17517
10206         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10207         coalesce same-root variables without checking for abnormal PHI usage.
10208
10209 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10210
10211         * cfgloop.h (duplicate_loop):  Add prototype.
10212         * cfgloopmanip.c (duplicate_loop): Make non-static.
10213         * lambda-code.c (perfect_nestify): Factor out test whether
10214         we can handle this loop into separate function.
10215         Call it.
10216         (can_convert_to_perfect_nest): New function.
10217         (replace_uses_of_x_with_y): Add modify_stmt call.
10218         * tree-loop-linear.c (linear_transform_loops): Call
10219         rewrite_into_loop_closed_ssa and free_df.
10220
10221 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10222
10223         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
10224         loop invariant as well.
10225         (perfect_nestify): new function.
10226         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
10227         upper bounds, and steps.
10228         Set outerinductionvar properly.
10229         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
10230         parameters.
10231         Return NULL if we need a perfect loop and can't make one.
10232         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
10233         (not_interesting_stmt): New function.
10234         (phi_loop_edge_uses_def): Ditto.
10235         (stmt_uses_phi_result): Ditto.
10236         (stmt_is_bumper_for_loop): Ditto.
10237         (perfect_nest_p): Ditto.
10238         (nestify_update_pending_stmts): Ditto.
10239         (replace_uses_of_x_with_y): Ditto.
10240         (stmt_uses_op): Ditto.
10241         (perfect_nestify): Ditto.
10242         * lambda-mat.c (lambda_matrix_id_p): New function.
10243         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
10244         * lambda.h: Update prototypes.
10245         * tree-loop-linear (linear_transform_loop): Use new
10246         perfect_nest_p. Detect and ignore identity transform.
10247         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
10248
10249 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
10250
10251         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
10252         Gather also strides of accessed data.  Pass in the data references
10253         array.
10254         (try_interchange_loops): Add a new heuristic for handling the temporal
10255         locality.  Pass in the data references array.
10256         (linear_transform_loops): Pass the data references array to
10257         try_interchange_loops.
10258
10259 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
10260
10261         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
10262
10263 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
10264
10265         * doc/c-tree.texi (Classes): Remove index entries for
10266         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
10267
10268 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10269
10270         * fold-const.c (fold): Fold difference of addresses.
10271         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
10272         get_inner_reference.
10273         * tree-ssa-loop-ivopts.c (peel_address): Removed.
10274         (ptr_difference_const): Moved to fold-const.c.
10275         (split_address_cost): Use get_inner_reference instead of peel_address.
10276         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
10277         * tree.h (ptr_difference_const): Export.
10278
10279         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
10280         variable type to the dump.  Fix indentation.
10281         (idx_find_step): Handle nonconstant array_ref_element_size and
10282         array_ref_low_bound.
10283         (idx_record_use): Handle array_ref_element_size and
10284         array_ref_low_bound.
10285         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
10286         statements correctly.
10287         (get_computation_at, iv_value): Do not unshare expressions here.
10288         (rewrite_use_outer): Unshare the expression before it is emitted
10289         to code.
10290         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
10291         Moved to tree.c.
10292         * tree.c (unsigned_type_for, signed_type_for): Moved from
10293         tree-ssa-loop-niter.c.  Use langhooks.
10294         * tree.h (signed_type_for): Export.
10295
10296 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
10297
10298         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
10299         prototype.
10300
10301 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
10302
10303         PR target/11572
10304         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
10305         Add two parameters to extra_includes.
10306         (C_INCPATH_INIT): Remove.
10307         * c-incpath.c (register_include_chains): Call extra_pre_includes
10308         before adding the standard include directory.
10309         Update call to extra_includes.
10310         (!defined TARGET_EXTRA_INCLUDES): Update
10311         hook_void_charptr_charptr_int and add !define
10312         TARGET_EXTRA_PRE_INCLUDES.
10313         (!define TARGET_EXTRA_INCLUDES): Define as
10314         hook_void_charptr_charptr_int.
10315         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
10316         (target_c_incpath): Always declare.
10317         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
10318         empty function.
10319         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
10320         * config/darwin.h: (darwin_register_frameworks): Update for
10321         the two new parameters.
10322         (darwin_register_objc_includes): Add prototype.
10323         (TARGET_EXTRA_PRE_INCLUDES): Define.
10324         * config/darwin-c.c (darwin_register_objc_includes): New function.
10325         (darwin_register_frameworks): Update for the two new parameters.
10326         (target_c_incpath): Remove.
10327         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
10328         the compile line.
10329         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
10330         parameters.
10331         (TARGET_EXTRA_PRE_INCLUDES): Document.
10332
10333         * gcc.c (spec_function): Add replace-outfile.
10334         (replace_outfile_spec_function): New function.
10335         * config/darwin.h (LINK_SPEC): Add replace
10336         -lobjc with -lobjc-gnu if -fgnu-runtime is
10337         supplied.
10338         * invoke.texi (replace-outfile): Document.
10339
10340 2004-09-13  Jan Hubicka  <jh@suse.cz>
10341
10342         * predict.c (expr_expected_value, strip_builtin_expect): New function.
10343         (tree_predict_by_opcode): Use it.
10344         (tree_estimate_probability): Add, for now disabled,
10345         strip_builtin_expect call.
10346
10347 2004-09-15  James E Wilson  <wilson@specifixinc.com>
10348
10349         PR target/17455
10350         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
10351         if current_function_decl is a sibcall.
10352
10353 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
10354
10355         * varasm.c (default_function_rdodata_section): Make sure to pass
10356         along a decl for a link-once section.
10357
10358 2004-09-15  Richard Henderson  <rth@redhat.com>
10359
10360         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
10361         warning with code disable.  Fix formatting.
10362
10363 2004-09-15  Steven Bosscher  <stevenb@suse.de>
10364
10365         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
10366         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
10367         after propagating into an ADDR_EXPR.
10368
10369 2004-09-15  Andrew Pinski  <apinski@apple.com>
10370
10371         PR rtl-opt/17427
10372         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
10373         Move it out of gcc_assert.
10374
10375 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
10376
10377         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
10378         except.c, fold-const.c, function.c, langhooks.c, params.c,
10379         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
10380         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
10381         for quoting in diagnostics going through pretty-print.c.  Use ''
10382         for quoting in other diagnostic text.
10383         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
10384         translation.
10385         * Makefile.in (langhooks.o): Update dependencies.
10386         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
10387         formats.
10388
10389 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
10390
10391         * configure.ac: Check for COMDAT support.  Robustify check for
10392         SHF_MERGE support.
10393         * configure: Regenerated.
10394         * config.in: Likewise.
10395         * langhooks-def.h (lhd_comdat_group): New function.
10396         (LANG_HOOKS_COMDAT_GROUP): New macro.
10397         (LANG_HOOKS_DECLS): Use it.
10398         * langhooks.c (lhd_comdat_group): Define.
10399         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
10400         * output.h (named_section_flags): Make it a macro.
10401         (named_section_real): New function.
10402         (default_no_named_section): Add decl parameter.
10403         (default_elf_asm_named_section): Likewise.
10404         (default_coff_asm_named_section): Likewise.
10405         (default_pe_asm_named_section): Likewise.
10406         * target.h (gcc_target): Adjust type of named_section.
10407         * varasm.c (named_section_flags): Rename to named_section_real.
10408         Add decl parameter.
10409         (default_no_named_section): Add decl parameter.
10410         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
10411         with the case that ASM_COMMENT_START is "@".
10412         (default_coff_asm_named_section): Add decl parameter.
10413         (default_pe_asm_named_section): Likewise.
10414         * config/alpha/alpha.c (vms_asm_named_section): Add decl
10415         parameter.
10416         (unicosmk_asm_named_section): Likewise.
10417         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
10418         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
10419         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
10420         * config/cris/cris-protos.h (cris_target_asm_named_section):
10421         Likewise.
10422         * config/cris/cris.c (cris_target_asm_named_section):
10423         Likewise.
10424         * config/darwin/darwin-protos.h (darwin_asm_named_section):
10425         Likewise.
10426         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
10427         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
10428         * config/i386/i386-protos.h (i386_pe_asm_named_section):
10429         Likewise.
10430         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
10431         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
10432         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
10433         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
10434         Likewise.
10435         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
10436         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
10437         * cp/cp-tree.h (cxx_comdat_group): Declare.
10438         * cp/decl.c (cxx_comdat_group): New function.
10439
10440 2004-09-15  Jan Hubicka  <jh@suse.cz>
10441
10442         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
10443         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
10444
10445         * tree-cfg.c (remove_bb): Release SSA defs.
10446
10447 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
10448
10449         * doc/tm.texi: Follow spelling conventions.
10450
10451 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
10452
10453         * tree-ssa-dom.c: Fix comment typos.
10454
10455 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
10456
10457         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
10458         include ccr.
10459         (ppc_fallback_frame_state): Save location of CR.
10460
10461 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
10462
10463         * expr.c (string_constant): Handle also read-only variables
10464         initialized to string literals.
10465
10466         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
10467         into memcpy (x, y, 1) if memcpy can be expanded inline.
10468
10469 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10470
10471         PR tree-optimization/17468
10472         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
10473         definition inside a block precede uses.
10474         * tree-tailcall.c (adjust_return_value): Emit statements in the
10475         correct order.
10476
10477 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
10478
10479         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
10480
10481 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
10482
10483         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
10484
10485 2004-09-14 Jeff Law  <law@redhat.com>
10486
10487         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
10488         (struct dom_walk_block_data): Remove avail_exprs member.
10489         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
10490         (lookup_avail_expr): No longer need to pass in address of
10491         the block local available exprs stack.  All callers changed.
10492         (simplify_cond_and_lookup_avail_expr): Similarly.
10493         (simplify_switch_and_lookup_avail_expr): Similarly.
10494         (get_eq_expr_value, record_cond): Likewise.
10495         (record_dominating_conditions): Likewise.
10496         (update_rhs_and_lookup_avail_expr): Likewise.
10497         (record_equivalences_from_stmt): Likewise.
10498         (dom_opt_initialize_block_local_data): No longer test state of
10499         block local avail_exprs.
10500         (dom_opt_initialize_block): Mark unwind point in the global
10501         avail_expr stack.
10502         (remove_expressions_from_table): Update to unwind to the
10503         most recent unwind marker in the global avail_expr stack.
10504         All callers changed.
10505         (dom_opt_finalize_block): Mark unwind point in the global
10506         avail_expr stack as needed.
10507         (record_cond): Push elements into the global avail_exprs stack.
10508
10509         * tree-dfa.c (free_df_for_stmt): No longer static.
10510         (free_df): Update comments.
10511         * tree-flow.h (free_df_for_stmt): Prototype.
10512         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
10513         call release_defs.
10514
10515 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
10516
10517         PR tree-optimization/17252
10518         * tree-ssa-alias.c (may_alias_p): Don't assume that a
10519         pointer may not point to itself when using relaxed
10520         aliasing rules.
10521
10522 2004-09-14  Richard Henderson  <rth@redhat.com>
10523
10524         PR middle-end/17397
10525         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
10526         while folding <ADDR_EXPR <INDIRECT_REF X>>.
10527
10528 2004-09-14  Andrew Pinski  <apinski@apple.com>
10529
10530         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
10531         sets of the pointers but the aliasing sets of what they point to.
10532
10533 2004-09-14  Roger Sayle  <roger@eyesopen.com>
10534
10535         PR rtl-optimization/9771
10536         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
10537         conditional compilation in init_reg_sets_1.
10538         (init_reg_sets_1): Let global_regs[i] take priority over the frame
10539         (but not stack) pointer exceptions to regs_invalidated_by_call.
10540         (globalize_reg): Globalizing a fixed register may need to update
10541         regs_invalidated_by_call.
10542
10543 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
10544
10545         PR tree-optimization/15262
10546         * tree-dfa.c (dump_variable): Also print the type of the
10547         variable.
10548         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
10549         memory tags are of conflicting alias sets but have no aliased
10550         symbols in common, add one tag to the alias set of the other.
10551         (setup_pointers_and_addressables): Remove hack to deal with
10552         programs with no aliased symbols.
10553         (may_alias_p): Don't special case aggregate types.
10554
10555 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10556
10557         PR c/15498
10558         * doc/invoke.texi (Environment Variables): Correct example locale.
10559
10560 2004-09-14  Jan Hubicka  <jh@suse.cz>
10561
10562         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
10563
10564 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
10565
10566         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
10567
10568 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10569
10570         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
10571         restrict_p.
10572         (struct c_declarator): Change u.array.quals and pointer_quals to
10573         int.  Add u.array.attrs.
10574         (quals_from_declspecs): New.
10575         * c-decl.c (quals_from_declspecs): New.
10576         (shadow_tag_warned): Give more specific message for useless type
10577         qualifiers.
10578         (build_array_declarator, set_array_declarator_inner,
10579         grokdeclarator, make_pointer_declarator, build_null_declspecs,
10580         declspecs_add_qual): Update for changed structures.
10581
10582 2004-09-14  Jeff Law  <law@redhat.com>
10583
10584         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
10585         to a global varray.
10586         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
10587         (dom_opt_initialize_block_local_data): No longer test state
10588         of stmts_to_rescan.
10589         (dom_opt_finalize_block): Update due to change in scope of
10590         stmts_to_rescan.
10591         (optimize_stmt): Similarly.
10592
10593 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10594
10595         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
10596         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
10597         comment typos.  Follow spelling conventions.
10598
10599 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10600
10601         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
10602         config/i386/predicates.md, config/sparc/sparc.c: Follow
10603         spelling conventions.
10604
10605 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10606             Steven Bosscher  <stevenb@suse.de>
10607
10608         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
10609         * basic-block.h (struct reorder_block_def): Add copy_number field.
10610         * cfgloop.h (biv_p): Declare.
10611         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
10612         * common.opt (fsplit-ivs-in-unroller): New flag.
10613         * loop-iv.c (biv_p): New function.
10614         * loop-unroll.c: Include hashtab.h and recog.h.
10615         (struct iv_to_split, struct split_ivs_info): New types.
10616         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
10617         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
10618         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
10619         insert_base_initialization, split_iv): New functions.
10620         (peel_loop_completely, unroll_loop_constant_iterations,
10621         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
10622         Use them.
10623         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
10624
10625 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10626
10627         * tree-cfg.c (thread_jumps): Update dominators correctly in
10628         case destination of threaded edge dominates its source.
10629
10630 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10631
10632         * unroll.c: Removed.
10633         * loop.h: Removed.
10634         * Makefile.in (LOOP_H, unroll.o): Removed.
10635         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
10636         dependency.
10637         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
10638         reference.
10639         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
10640         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
10641         * loop.c: Do not include loop.h.
10642         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
10643         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
10644         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
10645         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
10646         struct loop_regs, struct loop_movables, struct loop_info): Moved
10647         from loop.h.
10648         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
10649         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
10650         find_common_reg_term, loop_iterations, final_giv_value): Moved
10651         from unroll.c.
10652         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
10653         loop_dump_stream, for_each_insn_in_loop, express_from,
10654         extend_value_for_giv, loop_iv_add_mult_emit_before,
10655         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
10656         loop_insn_first_p, get_condition_for_loop,
10657         loop_insn_emit_before, loop_insn_hoist,
10658         loop_insn_sink): Made static.
10659         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
10660         reference.
10661         (strength_reduce): Do not call unroller.
10662         (record_giv): Do not initialize unrolled field.
10663         (prescan_loop): Do not set loop_info->preconditioned.
10664         * passes.c: Do not include loop.h.
10665         (rest_of_handle_loop_optimize): Do not call unroller.
10666         * predict.c: Do not include loop.h.
10667         * rtl.h (NOTE_PRECONDITIONED): Removed.
10668         * stmt.c: Do not include loop.h.
10669         * toplev.c: Do not include loop.h.
10670         (process_options): Do not handle flag_old_unroll_loops.
10671
10672         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
10673         Documentation removed.
10674         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
10675
10676 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
10677
10678         * Makefile.in (STAGE1_CHECKING): New variable.
10679         (stage1_build): Use it.
10680         * tree-ssa.c (verify_ssa): Preserve state of dominance
10681         information.
10682
10683 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
10684
10685         * config/i386/i386.c (output_fp_compare): Add generation
10686         of ftst instruction.
10687         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
10688         Use output_fp_compare () function.
10689         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
10690         (fix_truncdi_memory): Remove operands[5] copy.
10691
10692 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10693
10694         * config/m32r/m32r.md, config/m68k/m68kelf.h,
10695         config/mcore/mcore.md, config/rs6000/linux64.h,
10696         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
10697         typos.
10698
10699 2004-09-13  James E Wilson  <wilson@specifixinc.com>
10700
10701         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
10702         * gen-protos.c: Include errors.h.
10703         (progname): Delete.
10704
10705 2004-09-14  Jan Hubicka  <jh@suse.cz>
10706
10707         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
10708         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
10709         (predict_loops): Use number_of_iterations_exit to predict
10710         number of iterations on trees.
10711
10712 2004-09-13  Dale Johannesen  <dalej@apple.com>
10713
10714         PR 17408
10715         PR 17409
10716         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
10717         objects declared extern.
10718
10719 2004-09-14  Paul Brook  <paul@codesourcery.com>
10720
10721         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
10722         HOST_WIDE_INT.
10723
10724 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
10725
10726         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
10727         Only use TYPE_BINFO for aggregates.
10728
10729 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
10730
10731         * expmed.c (synth_mult): Initialize latency.  Check cost before
10732         checking ops count.
10733
10734 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
10735
10736         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
10737         add_call_clobber_ops and add_call_read_ops.
10738         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
10739         the number of vdefs and vuses inserted based on analysis of global
10740         variables across calls.  * tree-dfa.c (find_referenced_vars):
10741         Needed to reset static var maps before each function is compiled.
10742         * cgraphunit.c:
10743         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
10744         static_vars_info,functions_to_static_vars_info,module_statics_escape,
10745         all_module_statics,searchc_env,dfs_info): New fields to support
10746         analysis of static global variables.
10747         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
10748         cgraph_reset_static_var_maps, get_global_static_vars_info,
10749         get_global_statics_not_read, get_global_statics_not_written,
10750         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
10751         check_rhs_var, check_lhs_var, get_asm_expr_operands,
10752         process_call_for_static_vars, scan_for_static_refs,
10753         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
10754         clear_static_vars_maps, cgraph_propagate_bits,
10755         cgraph_characterize_statics): New. Functions to support analysis
10756         of static global variables.
10757         (cgraph_mark_local_and_external_functions): Renamed from:
10758         (cgraph_mark_local_functions)
10759         (cgraph_expand_all_functions): Remove call to
10760         cgraph_mark_local_and_external_functions.
10761         (cgraph_optimize): Added driver to analyze static variables whose
10762         scope is within the compilation unit.  * cgraph.h (struct
10763         cgraph_local_info, GTY): Added statics_read, statics_written,
10764         local, calls_read_all, calls_write_all, for_functions_valid.
10765         (struct cgraph_node): Added next_cycle.  * cgraph.c
10766         (dump_cgraph_node): Added print routines for new fields.  *
10767         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
10768         list.
10769
10770 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
10771
10772         * c-decl.c (grokdeclarator): Correct comments about where storage
10773         class specifiers are rejected by grammar and add corresponding
10774         asserts.  Diagnose typedefs and parameters declared inline.
10775         Change warning for inline main to a pedwarn.  Only diagnose inline
10776         main if hosted.
10777         (declspecs_add_scspec): Allow duplicate "inline".
10778
10779 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
10780
10781         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
10782         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
10783
10784 2004-09-13  Richard Henderson  <rth@redhat.com>
10785
10786         PR 17436
10787         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
10788         (tree_type): Replace spare with contains_placeholder_bits.
10789         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
10790         make static.  Remove seen_types list.
10791         (type_contains_placeholder_p): New.
10792
10793 2004-09-13  James E Wilson  <wilson@specifixinc.com>
10794
10795         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
10796         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
10797         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
10798         bdesc_arrays instead of mips_bdesc.
10799         (mips_init_builtins): Likewise.
10800         * config/mips/mips.h (TARGET_SB1): New.
10801         (HAVE_SQRT_P): Delete.
10802         * config/mips/mips.md (divide_condition): Support V2SF.
10803         (sqrt_condition, recip_condition): New.
10804         (div<mode>3): Use ANYF instead of SCALARF.
10805         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
10806         MODE.
10807         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
10808         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
10809         instead of MODE.
10810         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
10811         instead of SCALARF.  Use UNITMODE instead of MODE.
10812
10813 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
10814
10815         * config.in: Regenerate after removal of libbanshee.
10816
10817 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
10818
10819         PR tree-optimization/17400
10820         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10821         coalesce partitions when one occurs in an abnormal PHI.
10822
10823 2004-09-13  Andrew Pinski  <apinski@apple.com>
10824
10825         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
10826         name to _new_size.
10827
10828 2004-09-13  Richard Henderson  <rth@redhat.com>
10829
10830         PR inline-asm/6806
10831         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
10832         (cselib_invalidate_rtx_note_stores): New.
10833         (cselib_record_sets, cselib_process_insn): Update to match.
10834         * cselib.h (cselib_invalidate_rtx): Declare.
10835         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
10836
10837 2004-09-13  Richard Henderson  <rth@redhat.com>
10838
10839         PR tree-opt/10528
10840         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
10841         after copying its argument.
10842
10843 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
10844
10845         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
10846         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
10847         in diagnostics.  Use %' for English apostrophes.
10848         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
10849         (pedwarn_c90, pedwarn_c99): Use it.
10850         * c-decl.c (lookup_label): Quote label name in diagnostic.
10851         * c-parse.in (yyprint): Use ' instead of ` for left quote.
10852         * c-typeck.c (warn_for_assignment): Likewise.
10853
10854 2004-09-13  Jan Hubicka  <jh@suse.cz>
10855
10856         * i386.c (x86_schedule): New global variable.
10857         (override_options): Disable scheduling when not supported.
10858         * i386.h (x86_schedule): Declare.
10859         (TARGET_SCHEDULE): New macro.
10860
10861 2004-09-12  Richard Henderson  <rth@redhat.com>
10862
10863         PR c++/16254
10864         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
10865         * tree.c, tree.h (has_cleanups): Remove.
10866
10867 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10868
10869         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
10870         arguments of the phi nodes correctly.
10871
10872 2004-09-12  Jan Hubicka  <jh@suse.cz>
10873
10874         * ggc-common.c (cmp_statistics): Fix sorting.
10875
10876 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
10877
10878         PR target/16795
10879         * expmed.c (expand_divmod): If cheap power of 2 divide is
10880         available, use it for negative constant as well.
10881
10882 2004-09-12  Andrew Pinski  <apinski@apple.com>
10883
10884         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
10885         size of 0.
10886
10887         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
10888
10889 2004-09-12  Richard Henderson  <rth@redhat.com>
10890
10891         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
10892         or minus one.
10893         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
10894         post-reload, and scratch NULL.
10895         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
10896         (x86_shift_adj_2): Use ix86_expand_clear.
10897         (ashldi3): Remove CMOVE expansion difference.
10898         (ashldi3_1): Remove.
10899         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
10900         add constraints for immediates.  New peephole for split-with-temp.
10901         Run splitter after peep2 pass.
10902         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
10903         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
10904         (setcc_2): Rename with *.
10905         * config/i386/predicates.md (reg_or_pm1_operand): New.
10906         (ashldi_input_operand): New.
10907
10908 2004-09-12  Richard Henderson  <rth@redhat.com
10909
10910         * print-rtl.c (print_decl_name): New.
10911         (print_mem_expr): Use it.
10912
10913 2004-09-12  Richard Henderson  <rth@redhat.com
10914
10915         PR 17186, part deux
10916         * except.c (sjlj_emit_function_exit): Fix logic locating
10917         sjlj_exit_after in final block.
10918
10919 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
10920
10921         * common.opt: Remove flags -fmove-all-movables and
10922         -freduce-all-givs.
10923         * loop-invariant.c (find_invariants_to_move):
10924         Remove all uses of flag_move_all_movables.
10925         * loop.c (move_movables): Remove all uses of
10926         flag_move_all_movables.
10927         (strength_reduce): Remove all uses of
10928         flag_reduce_all_givs.
10929         * doc/invoke.texi: Remove documentation of flags
10930         -fremove-all-movables and -freduce-all-givs.
10931
10932 2004-09-11  Roger Sayle  <roger@eyesopen.com>
10933
10934         PR middle-end/17411
10935         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
10936         change. elt->type may be a floating point type, so use fold_convert.
10937
10938 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
10939
10940         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
10941         the thing referenced as used, not the stub itself.
10942
10943 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10944
10945         * c-tree.h (enum c_storage_class): New.
10946         (struct c_declspecs): Add storage_class, inline_p and thread_p.
10947         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
10948         declarations and "auto" or "register" in file scope empty
10949         declarations.  Give more specific warnings for other cases of
10950         storage class specifiers in empty declarations.
10951         (grokdeclarator): Update for new structures.  Don't check for
10952         multiple storage classes.  Diagnose file-scope "register" if
10953         pedantic.
10954         (build_null_declspecs): Update.
10955         (declspecs_add_scspec): Update.  Diagnose multiple storage class
10956         specifiers and invalid uses of "__thread".
10957
10958 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
10959
10960         * tree.c (tree_code_size): New function, bulk of code from tree_size.
10961         (tree_size, make_node): Use it.
10962         * tree-ssa-pre.c (init_pre): Use it.
10963         * tree.h: Prototype it.
10964
10965 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10966
10967         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
10968         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
10969         redirect_immediate_use): Use PHI_DF.
10970         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
10971         (bb_for_stmt): Use PHI_BB.
10972         (get_immediate_uses): Use PHI_DF.
10973         * tree-ssa-dse.c (max_stmt_uid): New variable.
10974         (get_stmt_uid): New function.
10975         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
10976         node annotations.
10977         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
10978         (max_uid): Renamed to max_stmt_uid.
10979         (get_stmt_uid): New function.
10980         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
10981         phi node annotations.
10982         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
10983         * tree.h (PHI_BB, PHI_DF): New accessor functions.
10984         (struct tree_phi_node): Add bb and df fields.
10985
10986 2004-09-11  Richard Henderson  <rth@redhat.com>
10987
10988         PR middle-end/17416
10989         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
10990         in conflict loop.
10991
10992 2004-09-11  Jan Hubicka  <jh@suse.cz>
10993
10994         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
10995         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
10996         * i386.md (i387_cw): Add 'uninitialized' mode.
10997
10998         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
10999         (output_location): Break out from ....
11000         (branch_prob): ... here; handle gcov output on trees.
11001         * toplev.c (process_options): No longer be sorry about coverage for
11002         trees.
11003
11004 2004-09-11  Steven Bosscher  <stevenb@suse.de>
11005
11006         PR c++/17412
11007         * fold-const.c (fold): Do not try to fold the operand of a
11008         CLEANUP_POINT_EXPR if that operand does itself not have any
11009         operands.
11010
11011         PR middle-end/17417
11012         * langhooks.c (lhd_decl_printable_name): Make sure that this
11013         function is called with is a decl node that has an identifier.
11014         * tree-pretty-print.c (dump_function_name): New function to
11015         wrap PRINT_FUNCTION_NAME and dump_decl_name.
11016         (print_call_name): Use it.
11017
11018 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
11019
11020         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
11021         "config.h" if not.
11022
11023 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
11024
11025         * tree-ssa-alias.c (collect_points_to_info_r): Handle
11026         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
11027         to OFFSET.
11028
11029 2004-09-11  Richard Henderson  <rth@redhat.com>
11030
11031         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
11032         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
11033         operand of the ADDR_EXPR.
11034         (expand_expr_real_1): Update to match.
11035
11036 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
11037
11038         PR target/17277
11039         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
11040         choose 64-bit version.
11041
11042 2004-09-11  Richard Henderson  <rth@redhat.com>
11043
11044         PR c/17396
11045         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
11046
11047 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
11048
11049         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
11050         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
11051         Insert @: after i.e. or e.g.
11052
11053 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11054
11055         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
11056         D.xxx rather than <Dxxx>.
11057
11058 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11059
11060         * configure.ac (AC_MSG_CHECKING(what linker to use)):
11061         in_tree_ld_is_elf should be true for LynxOS.
11062         * configure: Regenerate.
11063
11064 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11065
11066         * Makefile.in (all.cross): Add srcextra.
11067
11068 2004-09-10  Roger Sayle  <roger@eyesopen.com>
11069
11070         PR middle-end/17024
11071         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
11072         floating point comparison operators.  Change aborts to gcc_asserts.
11073
11074 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11075
11076         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
11077
11078 2004-09-10  James E Wilson  <wilson@specifixinc.com>
11079
11080         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
11081         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
11082
11083         * convert.c (convert_to_vector): Replace recursive call with
11084         error_mark_node.
11085
11086         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
11087         Add integer argument named constant.  Use const_tiny_rtx instead of
11088         CONST0_RTX.
11089         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
11090         and CONST1_RTX.
11091         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
11092         vector types.
11093         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
11094         of gen_rtx_raw_CONST_VECTOR.
11095
11096 2004-09-10  Eric Christopher  <echristo@redhat.com>
11097
11098         PR c/16046
11099         * c-parse.in (attribute): Add NULL_TREE for error case
11100         for error recovery.
11101
11102 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
11103
11104         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
11105         (extract_interface_info): Delete prototype.
11106         * c-decl.c (extract_interface_info): Delete stub.
11107         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
11108         it's not already been done ...
11109         (init_c_lex): ... not here.
11110         (fe_file_change): Don't call extract_interface_info.
11111
11112 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11113
11114         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
11115         typedef_p and typedef_signed_p.
11116         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
11117         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
11118         Check typedef_p and typedef_signed_p, not typedef_decl.
11119         (grokfield): Check typedef_p, not typedef_decl.
11120         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
11121         not typedef_decl.
11122         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
11123         typedef_decl.
11124
11125 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11126
11127         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
11128
11129 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11130
11131         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
11132         temporary variables.
11133
11134         * dbxout.c (dbxout_block): Update for
11135         current_function_func_begin_label a string.
11136         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
11137         * except.c (dw2_output_call_site_table): Likewise.
11138         * toplev.c (current_function_func_begin_label): Likewise.
11139         * tree.h (current_function_func_begin_label): Likewise.
11140         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
11141
11142         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
11143         loop.
11144
11145         * config/darwin.c: Include target.h.
11146         (struct machopic_indirection): Make ptr_name a string.
11147         (machopic_indirection_hash): Update for ptr_name a string.
11148         (machopic_indirection_eq): Likewise.
11149         (machopic_indirection_name): Likewise.
11150         (machopic_output_indirection): Likewise.
11151         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
11152         string.  Don't expect stub names to be in the identifier hash table.
11153         Do call strip_name_encoding before looking up entry in ID hash table.
11154         * config/t-darwin (darwin.o): Add target.h to dependencies.
11155
11156         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
11157         of fprintf for register names.
11158
11159         * output.h (unlikely_section_label): Delete declaration.
11160         (unlikely_text_section_name): Likewise.
11161         * varasm.c (unlikely_section_label_printed): Make static.
11162         (unlikely_section_label): Likewise.
11163         (unlikely_text_section_name): Likewise.
11164         (assemble_start_function): Use reconcat.
11165
11166         * rtl.def (REG): Add comment to describe third field.
11167
11168 2004-09-10  Andrew Pinski  <apinski@apple.com>
11169
11170         * config/darwin.c (machopic_mcount_stub_name): Call
11171         machopic_indirection_name instead of making the string
11172         ourselves.
11173
11174 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
11175
11176         Revert
11177
11178         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
11179
11180             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
11181             memory tag is call clobbered, so are its aliases.
11182             (group_aliases): When two memory tags being grouped, if one is
11183             call clobbered, so are the other and its aliases.
11184             (add_may_alias): Remove call-clobbering stuff.
11185             (replace_may_alias): Likewise.
11186             (merge_pointed_to_info): Merge pt_global_mem
11187
11188 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11189
11190         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
11191         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
11192         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
11193         tree-scalar-evolution.c, tree-ssa-copyrename.c,
11194         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
11195
11196 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11197
11198         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
11199         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
11200         pair.  Remove match_dup from inputs.  Remove masaccs handling.
11201         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
11202         (masaccs, mdasaccs): Turn into define_insns.
11203
11204 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11205
11206         * tree-tailcall.c (process_assignment): Only do accumulator transforms
11207         for floating-point types if flag_unsafe_math_optimizations.
11208
11209 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11210
11211         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
11212         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
11213         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
11214         config/h8300/h8300.md, config/i386/gmm_malloc.h,
11215         config/ia64/ia64.md, config/ip2k/libgcc.S,
11216         config/mips/mips-ps-3d.md, config/mips/mips.c,
11217         config/rs6000/rs6000.c, config/s390/s390.c,
11218         config/sh/symbian.c: Fix comment typos.
11219
11220 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11221
11222         * config/s390/s390.c (s390_emit_prologue): Added missing
11223         "{}" brackets.
11224
11225 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11226
11227         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
11228         typos.  Follow spelling conventions.
11229
11230 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
11231
11232         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
11233         in diagnostic.  Don't dereference NULL TYPE_NAME.
11234
11235 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11236
11237         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
11238         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
11239         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
11240         value-prof.c: Fix comment typos.  Follow spelling conventions.
11241
11242 2004-09-10  Jan Hubicka  <jh@suse.cz>
11243
11244         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
11245         * tree-split_edge.c (tree_split_edge): Likewise.
11246         (thread_jumps): Likewise.
11247
11248 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11249
11250         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
11251         typos.
11252
11253 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
11254
11255         * cgraph.h (cgraph_dump_file): Do not declare.
11256         * cgraphunit.c (cgraph_dump_file): Declare as static.
11257         (init_cgraph): New.
11258         * toplev.c (cgraph_dump_file): Do not declare.
11259         (compile_file): Call init_cgraph.
11260         * tree-dump.c (dump_files): Add IPA dump file, remove
11261         XML dump of call graph.
11262         (get_dump_file_name): Support IPA dump file naming scheme.
11263         * tree.h (enum tree_dump_index): Add IPA dump file, remove
11264         XML dump of call graph.
11265         * doc/invoke.texi (Debugging Options): Document the new options.
11266
11267 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11268
11269         * doc/extend.texi: Document the FR-V built-in functions.
11270
11271 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11272
11273         * doc/sourcebuild.texi: Delete libbanshee reference.
11274
11275 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
11276
11277         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
11278
11279 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11280
11281         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
11282         before calling vector_types_convertible_p.
11283         (digest_init): Check that inside_init has VECTOR_TYPE before calling
11284         vector_types_convertible_p.  Don't give another error if
11285         convert_for_assignment returns error_mark_node.
11286
11287 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11288
11289         PR middle-end/17055
11290         * fold-const.c (build_zero_vector): New function to construct a
11291         vector (either floating point or integer) of zeros.
11292         (fold_convert): Internally, enable conversions of integer zero
11293         to arbitrary vector types, using the new build_zero_vector.
11294
11295 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11296
11297         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
11298         expand a left shift by an immediate constant as either an ashl or
11299         a sequence of additions.
11300         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
11301         instead of calling gen_ashlsi3 with a constant directly.
11302
11303 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11304
11305         * config/i386/i386.c (ix86_split_long_move): When optimizing for
11306         size, and the low and high parts of a DImode constant are equal,
11307         copy one register to another instead of loading the same immediate
11308         value twice.
11309
11310 2004-09-09  Richard Henderson  <rth@redhat.com>
11311
11312         PR middle-end/17367
11313         * function.c (assign_parm_setup_block): Only put PARALLELs into
11314         a register if use_register_for_decl.
11315
11316 2004-09-09  Eric Christopher  <echristo@redhat.com>
11317
11318         * ra-colorize.c (reset_lists): Move variable declaration inside
11319         ENABLE_CHECKING to avoid unused variable warnings when
11320         not --enable-checking.
11321         (check_colors): Ditto.
11322
11323 2004-09-09  Mike Stump  <mrs@apple.com>
11324
11325         * version.c (version_string): Bump to 4.0.0.
11326         * doc/include/gcc-common.texi (version-GCC): Likewise.
11327
11328 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
11329
11330         * doc/extend.texi (nothrow attribute): The attribute is not
11331         implemented in 3.2 and earlier.
11332
11333 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
11334
11335         * genrecog.c (compute_predicate_codes): Use op0_codes
11336         instead of codes.
11337
11338 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11339
11340         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
11341         implementation changes.
11342
11343 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11344
11345         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
11346         a PARALLEL instead of a SET due to added clobbers.
11347
11348 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11349
11350         * reload.c (find_reloads_address): Pass correct operand to
11351         maybe_memory_address_p.
11352
11353 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
11354
11355         * Makefile.in: Remove libbanshee, tree-alias-*.
11356         Remove tree-alias-common.h dependencies.
11357         * common.opt: Remove -ftree-points-to.
11358         * configure.ac: Remove libbanshee.
11359         * flags.h: Remove pta_type, flag_tree_points_to.
11360         * gengtype.c (open_base_files): Remove tree-alias-type.h.
11361         * opts.c (OPT_ftree_points_to): Remove.
11362         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
11363         * tree-dfa.c: Remove tree-alias-common.h
11364         * tree-into-ssa.c: Ditto.
11365         * tree-outof-ssa.c: Ditto.
11366         * tree-ssa-copyrename.c: Ditto.
11367         * tree-ssa-live.c: Ditto.
11368         * tree-optimize.c: Ditto.
11369         * tree-ssa.c: Ditto.
11370         Remove pass_build_pta, pass_del_pta.
11371         * tree-pass.h: Ditto.
11372         * tree-ssa-alias.c: Remove tree-alias-common.h.
11373         (struct alias_stats_d): Remove pta_queries, pta_resolved.
11374         (pass_may_alias): Remove PROP_pta requirement.
11375         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
11376         (get_tmt_for): Ditto.
11377         (dump_alias_stats): Ditto.
11378         * doc/passes.texi: Remove blurb about points-to analysis.
11379         * fortran/Make-lang.in: Remove tree-alias-*.o.
11380
11381 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
11382
11383         * genattrtab.c (write_insn_cases): New function, split out from
11384         write_attr_case.  Correctly handle define_peepholes when printing
11385         the instruction name.
11386         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
11387
11388 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
11389
11390         PR target/17377
11391         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
11392         * config/cris/cris.c (cris_return_address_on_stack): New function.
11393         * config/cris/cris.md ("return"): For location of return address,
11394         also check cris_return_address_on_stack.
11395
11396 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
11397
11398         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
11399         calling phi_ssa_name_p.
11400
11401 2004-09-09  Richard Henderson  <rth@redhat.com>
11402
11403         PR c/17322
11404         * c-typeck.c (valid_compound_expr_initializer): Use only
11405         initializer_constant_valid_p, and not TREE_CONSTANT.
11406         (digest_init): Likewise.
11407         (output_init_element): Likewise.
11408
11409 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11410
11411         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
11412         live_out_1, prune_hardregs_for_mode, init_one_web_common,
11413         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
11414         record_conflict, compare_and_free_webs, init_webs_defs_uses,
11415         parts_to_webs_1, parts_to_webs, reset_conflicts,
11416         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
11417         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
11418         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
11419         put_move, remove_move, combine, select_spill, colorize_one_web,
11420         try_recolor_web, insert_coalesced_conflicts, check_colors,
11421         break_precolored_alias, restore_conflicts_from_coalesce,
11422         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
11423         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
11424         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
11425         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
11426         check_df): Likewise.
11427         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
11428         real_arithmetic, real_compare, real_exponent, real_ldexp,
11429         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
11430         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
11431         real_digit, real_nan, real_maxval, round_for_format, real_convert,
11432         real_to_target, real_from_target, real_hash, encode_ieee_single,
11433         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
11434         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
11435         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
11436         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
11437         extract_insn, peep2_next_insn, peep2_reg_dead_p,
11438         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
11439         if_test_bypass_p): Likewise.
11440         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
11441         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
11442         emit_swap_insn, swap_to_top, move_for_stack_reg,
11443         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
11444         compensate_edge, convert_regs_1): Likewise.
11445         * regclass.c (init_reg_sets, init_reg_sets_1,
11446         memory_move_secondary_cost): Likewise.
11447         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
11448         Likewise.
11449         * reload.c (push_secondary_reload, find_valid_class, push_reload,
11450         operands_match_p, decompose, immune_p, find_reloads,
11451         find_reloads_toplev, find_reloads_address_1, subst_reloads,
11452         copy_replacements, refers_to_regno_for_reload_p,
11453         reg_overlap_mentioned_for_reload_p): Likewise.
11454         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
11455         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
11456         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
11457         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
11458         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
11459         do_output_reload, fixup_abnormal_edges): Likewise.
11460         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
11461         fill_slots_from_thread, relax_delay_slots): Likewise.
11462         * resource.c (mark_referenced_resources, mark_set_resources):
11463         Likewise.
11464         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
11465         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
11466         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
11467         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
11468         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
11469         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
11470         * rtlhooks.c (gen_lowpart_general): Likewise.
11471         * sbitmap.c (sbitmap_difference): Likewise.
11472         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
11473         sched_analyze, add_forward_dependence): Likewise.
11474         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
11475         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
11476         schedule_insns): Likewise.
11477         * sched-vis.c (print_pattern): Likewise.
11478         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
11479         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
11480         simplify_const_relational_operation, simplify_ternary_operation,
11481         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
11482         Likewise.
11483         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
11484         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
11485         resolve_operand_name_1, expand_return, expand_decl,
11486         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
11487         * stor-layout.c (put_pending_size, smallest_mode_for_size,
11488         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
11489         set_sizetype, get_mode_bounds): Likewise.
11490
11491 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
11492
11493         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
11494         * config/arm/pecoff.h, config/i386/beos-elf.h
11495         * config/i386/cygming.h, config/i386/i386-interix.h:
11496         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
11497         comment cloned from manual.
11498         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
11499
11500 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
11501
11502         * builtins.c (build_va_arg_indirect_ref): New function.
11503         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
11504         build_fold_indirect_ref.
11505         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
11506         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
11507         * tree.h: Declare new function.
11508
11509 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11510
11511         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
11512         dumping for development builds.
11513         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
11514         development builds only.
11515         * genattrtab.c (write_eligible_delay): Fix typo in previous
11516         commit.
11517         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
11518         gcc_assert.
11519
11520 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11521
11522         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
11523         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
11524         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
11525         hoist_code, extract_mentioned_regs_helper, compute_store_table,
11526         insert_store): Use gcc_assert and gcc_unreachable.
11527         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
11528         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
11529         ggc_record_overhead): Likewise.
11530         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
11531         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
11532         ggc_pop_context, clear_marks, validate_free_objects,
11533         ggc_pch_read): Likewise.
11534         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
11535         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
11536         ggc_push_context, check_cookies, ggc_collect,
11537         ggc_print_statistics): Likewise.
11538         * gimple-low.c (lower_function_body, lower_stmt,
11539         lower_bind_expr): Likewise.
11540         * gimplify.c (gimple_tree_eq, push_gimplify_context,
11541         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
11542         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
11543         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
11544         gimplify_case_label_expr, gimplify_exit_block_expr,
11545         canonicalize_component_ref, gimplify_compound_lval,
11546         gimplify_self_mod_expr, gimplify_call_expr,
11547         gimplify_init_ctor_eval, gimplify_init_constructor,
11548         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
11549         gimplify_expr, check_pointer_types_r,
11550         force_gimple_operand): Likewise.
11551         * global.c (global_alloc, build_insn_chain): Likewise.
11552         * graph.c (clean_graph_dump_file,
11553         finish_graph_dump_file): Likewise.
11554         gcov-io.c (gcov_open): Use GCOV_CHECK.
11555
11556 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
11557
11558         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
11559
11560 2004-09-09  Jan Hubicka  <jh@suse.cz>
11561
11562         middle-end/17128
11563         * tree-inline.c (expand_call_inline): Make overactive sanity check
11564         happy.
11565
11566 2004-09-09  Jan Hubicka  <jh@suse.cz>
11567
11568         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
11569         VIEW_CONVERT_EXPR.
11570
11571 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11572
11573         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
11574         (gengtype.o): Depend on errors.h.
11575         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
11576         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
11577         attr_alt_subset_p, attr_alt_subset_of_compl_p,
11578         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
11579         write_test_expr, write_attr_value, write_eligible_delay,
11580         make_internal_attr, make_numeric_value): Likewise.
11581         * genautomata.c (regexp_name, get_str_vect,
11582         gen_presence_absence_set, automaton_decl_hash,
11583         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
11584         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
11585         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
11586         test_unit_reserv, it_is_empty_reserv_sets,
11587         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
11588         reserv_sets_and, output_cycle_reservs, get_free_state,
11589         intersected_state_reservs_p, states_union, remove_arc,
11590         copy_insn_regexp, transform_1, transform_2, transform_3,
11591         regexp_transform_func, store_alt_unit_usage,
11592         check_regexp_units_distribution, process_seq_for_forming_states,
11593         process_alts_for_forming_states, make_automaton,
11594         form_arcs_marked_by_insn, create_composed_state,
11595         set_out_arc_insns_equiv_num, partition_equiv_class,
11596         process_insn_equiv_class, set_insn_equiv_classes,
11597         units_to_automata_heuristic_distr, form_regexp,
11598         longest_path_length, output_dfa_max_issue_rate, add_vect,
11599         out_state_arcs_num, add_vect_el, output_trans_table,
11600         output_state_alts_table, output_dead_lock_vect,
11601         output_max_insn_queue_index_def,
11602         output_min_insn_conflict_delay_func,
11603         output_internal_insn_latency_func, output_print_reservation_func,
11604         output_cpu_unit_reservation_p, output_state_arcs,
11605         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
11606         make_default_insn_latency_attr,
11607         form_important_insn_automata_lists): Likewise.
11608         * genemit.c (gen_exp, output_add_clobbers,
11609         output_added_clobbers_hard_reg_p): Likewise.
11610         * genextract.c (print_path, main): Likewise.
11611         * genflags.c (gen_macro): Likewise.
11612         * gengenrtl.c: Include errors.h
11613         (type_from_format, accessor_from_format): Likewise.
11614         * gengtype.c (get_file_basename, output_mangled_typename,
11615         walk_type, write_types_process_field,
11616         write_types_local_process_field): Likewise.
11617         * genmodes.c (complete_mode): Likewise.
11618         * genopinit.c (gen_insn): Likewise.
11619         * genoutput.c (output_insn_data, check_constraint_len,
11620         constraint_len): Likewise.
11621         * genpreds.c (add_mode_tests):Likewise.
11622         * gen-protos.c (add_hash): Likewise.
11623         * genrecog.c (find_operand, find_matching_operand,
11624         validate_pattern, add_to_sequence, maybe_both_true,
11625         nodes_identical_1, merge_trees, write_switch, write_cond,
11626         write_action, is_unconditional, make_insn_sequence,
11627         debug_decision_2): Likewise.
11628         * gensupport.c (is_predicable, collect_insn_data,
11629         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
11630
11631 2004-09-09  Jan Hubicka  <jh@suse.cz>
11632
11633         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
11634         * cfgbuild.c (compute_outgoing_frequencies): When probability is
11635         missing, guess it.
11636         (find_many_sub_basic_blocks): Do update profile only when it is
11637         present.
11638         * predict.c (set_even_probabilities): Break out from ...
11639         (combine_predictions_for_insn): ... here; deal with
11640         !can_predict_insn_p insns.
11641         (combine_predictions_for_bb): Use set_even_probabilities.
11642         (bb_estimate_probability_locally): Break out from ....
11643         (estimate_probability): ... here.
11644         (guess_outgoing_edge_probabilities): New entry point.
11645
11646 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11647
11648         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
11649         handle_braces, process_brace_body, main, used_arg,
11650         set_multilib_dir, print_multilib_info): Use fatal, not abort.
11651
11652         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
11653
11654         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
11655         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
11656         Morgan's theorem in last checkin.
11657
11658 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11659             Nathan Sidwell  <nathan@codesourcery.com>
11660
11661         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
11662         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
11663         * timevar.c (timevar_push, timevar_pop, timevar_start,
11664         timevar_stop): Likewise.
11665         * toplev.c (default_pch_valid_p): Likewise.
11666         * tracer.c (tail_duplicate): Likewise.
11667         * tree-alias-common.c (get_alias_var_decl,
11668         get_values_from_constructor, create_alias_var, delete_alias_vars,
11669         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
11670         Likewise.
11671         * tree.c (tree_size, make_node_stat, copy_node_stat,
11672         build_int_cst_wide, integer_all_onesp, list_length, chainon,
11673         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
11674         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
11675         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
11676         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
11677         build_method_type_directly, decl_type_context, get_callee_fndecl,
11678         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
11679         tree_fold_gcd): Likewise.
11680         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
11681         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
11682         cleanup_control_expr_graph, find_taken_edge,
11683         find_taken_edge_switch_expr, phi_alternatives_equal,
11684         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
11685         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
11686         tree_split_edge, tree_verify_flow_info, thread_jumps,
11687         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
11688         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
11689         chrec_fold_multiply_poly_poly): Likewise.
11690         * tree-complex.c (extract_component, expand_complex_division,
11691         expand_complex_comparison, expand_complex_operations_1,
11692         build_replicated_const, expand_vector_operations_1): Likewise.
11693         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
11694         build_classic_dir_vector): Likewise.
11695         * tree-dfa.c (compute_immediate_uses_for_phi,
11696         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
11697         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
11698         * tree-dump.c (dequeue_and_dump): Likewise.
11699         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
11700         record_in_finally_tree, replace_goto_queue_1,
11701         maybe_record_in_goto_queue, verify_norecord_switch_expr,
11702         do_return_redirection): Likewise.
11703         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
11704         add_to_dst_predicate_list, find_phi_replacement_condition,
11705         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
11706         Likewise.
11707         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
11708         initialize_inlined_parameters, declare_return_variable,
11709         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
11710         optimize_inline_calls, copy_tree_r): Likewise.
11711         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
11712         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
11713         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
11714         tsi_split_statement_list_after, tsi_split_statement_list_before):
11715         Likewise.
11716         * tree-mudflap.c (mf_varname_tree): Likewise.
11717         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
11718         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
11719         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11720         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
11721         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
11722         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
11723         Likewise.
11724         * tree-phinodes.c (resize_phi_node, add_phi_arg,
11725         remove_all_phi_nodes_for): Likewise.
11726         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
11727         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
11728         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
11729         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
11730         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
11731         generate_one_element_ref, generate_element_copy,
11732         generate_element_zero, scalarize_copy, scalarize_init,
11733         scalarize_ldst): Likewise.
11734         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
11735         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
11736         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
11737         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
11738         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
11739         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
11740         widen_bitfield, ccp_fold_builtin): Likewise.
11741         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
11742         replace_exp_1, propagate_tree_value): Likewise.
11743         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
11744         * tree-ssa-dce.c (set_control_dependence_map_bit,
11745         find_control_dependence, find_pdom, mark_operand_necessary,
11746         mark_stmt_if_obviously_necessary,
11747         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
11748         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
11749         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
11750         eliminate_redundant_computations, avail_expr_eq): Likewise.
11751         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
11752         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
11753         duplicate_blocks): Likewise.
11754         * tree-ssa-loop-im.c (for_each_index, set_level,
11755         is_call_clobbered_ref): Likewise.
11756         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
11757         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
11758         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
11759         peel_address, ptr_difference_cost, may_replace_final_value,
11760         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
11761         rewrite_use, rewrite_uses): Likewise.
11762         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
11763         check_loop_closed_ssa_use): Likewise.
11764         * tree-ssanames.c (make_ssa_name): Likewise.
11765         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
11766         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
11767         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
11768         get_indirect_ref_operands, add_stmt_operand): Likewise.
11769         * tree-ssa-pre.c (value_exists_in_set_bitmap,
11770         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
11771         phi_translate, valid_in_set, compute_antic,
11772         find_or_generate_expression, create_expression_by_pieces, insert_aux,
11773         create_value_expr_from, eliminate): Likewise.
11774         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
11775         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
11776         Likewise.
11777         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
11778         eliminate_tail_call): Likewise.
11779         * tree-vectorizer.c (vect_create_index_for_array_ref,
11780         vect_align_data_ref, vect_create_data_ref,
11781         vect_create_destination_var, vect_get_vec_def_for_operand,
11782         vect_finish_stmt_generation, vect_transform_stmt,
11783         vect_transform_loop_bound, vect_transform_loop,
11784         vect_analyze_operations): Likewise.
11785         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
11786         Likewise.
11787         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
11788         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
11789         bsi_after_labels, bsi_last): Likewise.
11790         * tree-ssa-live.c (var_union, change_partition_var,
11791         create_ssa_var_map, calculate_live_on_entry, root_var_init,
11792         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
11793         Likewise.
11794         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
11795         tpa_find_tree): Likewise.
11796         (register_ssa_partition_check): Declare.
11797         (register_ssa_partition): use it.
11798         * tree-ssa-live.c: Include errors.h.
11799         (register_ssa_partition_check): New.
11800         * tree-ssa-operands.c: Include errors.h.
11801         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
11802
11803 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
11804             Catherine Moore  <clm@redhat.com>
11805
11806         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
11807         (FRV_CPU_FR405): New processor enums.
11808         (frv_issue_rate, frv_acc_group): Declare.
11809         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
11810         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
11811         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
11812         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
11813         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
11814         handled by CPP_SPEC.
11815         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
11816         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
11817         (ACC_MASK): New macro.
11818         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
11819         (TARGET_MEDIA_FR450): New macro.
11820         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
11821         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
11822         (LABEL_ALIGN_AFTER_BARRIER): Define.
11823         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
11824         (IACC_FIRST, IACC_LAST): New pair of SPRs.
11825         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
11826         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
11827         (REGISTER_NAMES): Add entries for new registers.
11828         (REG_CLASS_CONTENTS): Update for new register ranges.
11829         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
11830         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
11831         (PACKING_FLAG_USED_P): Delete.
11832         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
11833         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
11834         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
11835         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
11836         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
11837         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
11838         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
11839         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
11840         (CPU_UNITS_QUERY): Define to 1.
11841         * config/frv/frv.c: Include gt-frv.h
11842         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
11843         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
11844         (frv_insn_group): New enumeration.
11845         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
11846         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
11847         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
11848         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
11849         gap left by REGSTATE_LIVE.
11850         (regstate_t): New typedef.
11851         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11852         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
11853         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
11854         Initialize frv_unit_codes[] and frv_type_to_unit[].
11855         (frv_conditional_register_usage): Remove redundant fixing of
11856         accumulator registers.
11857         (frv_insn_packing_flag): Update specification.
11858         (frv_function_prologue): Don't set frv_insn_packing_flag here.
11859         Zero out frv_nops[].
11860         (frv_expand_epilogue): Remove comments about the no-longer-present
11861         SIBCALL_P argument.
11862         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
11863         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
11864         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
11865         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
11866         packing is disabled and if INSN can only issue to M1.
11867         (call_operand): Check TARGET_LONG_CALLS.
11868         (acc_operand, even_acc_operand, quad_acc_operand)
11869         (accg_operand): Simplify.  Don't accept pseudo registers.
11870         (output_move_single): Handle SPR<-zero moves.
11871         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
11872         (frv_registers_update, frv_registers_used_p): Delete.
11873         (frv_registers_set_p): Delete.
11874         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
11875         (frv_issues_to_branch_unit_p): New function.
11876         (frv_packet): New structure.
11877         (frv_cond_flags, frv_regstate_conflict_p): New functions.
11878         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
11879         (frv_registers_update_1, frv_registers_update): New functions.
11880         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
11881         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
11882         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
11883         (frv_sort_insn_group, frv_reorder_packet): New functions.
11884         (frv_pack_insns): Use frv_reorder_packet.
11885         (frv_packet_address): New variable.
11886         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
11887         (frv_register_nop, frv_reorg): New functions.
11888         (bdesc_1arg): Add __SCUTSS.
11889         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
11890         __SUBSS, __SLASS and __SCAN.
11891         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
11892         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
11893         (frv_init_builtins): Register the above builtins.
11894         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
11895         registers.  Turn the referenced accumulators into global registers.
11896         (frv_read_iacc_argument): New function.
11897         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
11898         (frv_split_iacc_move): New function.
11899         (frv_expand_builtin): Handle the new builtins.
11900         * config/frv/frv.md: Replace old schedulers with new order-independent
11901         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
11902         packing algorithm.
11903         (cpu): Add fr550, fr450 and fr405.
11904         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
11905         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
11906         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
11907         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
11908         (fnop, mnop): New patterns.
11909         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
11910         New constants.
11911         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
11912         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
11913         registers.
11914         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
11915         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
11916         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
11917         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
11918         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
11919         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
11920         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
11921         (frv_prefetch0, frv_prefetch): New patterns.
11922         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
11923         -mcpu=simple.  Add -mcpu=fr550.
11924         (MULTILIB_DIRNAMES): Update accordingly.
11925         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
11926         -mcpu=fr450.
11927         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
11928         -mlong-calls and -malign-labels options for FR-V.
11929
11930 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11931
11932         PR c/8420
11933         * c-tree.h (struct c_declspecs): New.
11934         (struct c_declarator, struct c_type_name, struct c_parm): Update
11935         element types.
11936         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
11937         start_function, start_decl, build_c_parm,
11938         make_pointer_declarator): Update prototypes.
11939         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
11940         declspecs_add_scspec, declspecs_add_attrs): New.
11941         (split_specs_attrs): Remove.
11942         * c-parse.in (%union): Add dsptype.
11943         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
11944         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
11945         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
11946         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
11947         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
11948         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
11949         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
11950         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
11951         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
11952         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
11953         maybe_type_quals_attrs): Change to dsptype.
11954         (struct c_declspec_stack): New.
11955         (current_declspecs, declspec_stack): Change type.
11956         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
11957         structures.
11958         (extdefs): Likewise.
11959         (setspecs): Likewise.
11960         (fndef): Use current_declspecs for empty declspecs list.
11961         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
11962         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
11963         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
11964         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
11965         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
11966         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
11967         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
11968         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
11969         structures and helper functions.  Update comments.
11970         (typespec_nonattr): Correct comment.
11971         (maybe_type_quals_attrs, typename): Update to new structures.
11972         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
11973         shadow_tag, shadow_tag_warned, start_function, start_decl,
11974         build_c_parm, make_pointer_declarator,
11975         set_array_declarator_inner, groktypename): Update to new
11976         structures.
11977         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
11978         declspecs_add_scspec, declspecs_add_attrs): New.
11979         (split_specs_attrs): Remove.
11980         (shadow_tag_warned): Make warning for useless type names a
11981         pedwarn.  Give hard error for long, short, signed, unsigned or
11982         _Complex used with struct, union or enum in empty declaration.
11983         Make found_tag a bool.
11984         (grokdeclarator): Remove checks now done at parse time.
11985
11986 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11987
11988         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
11989         c_declarator, struct c_type_name, struct c_parm): New.
11990         (build_array_declarator, set_array_declarator_inner,
11991         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
11992         start_function, start_decl, build_c_parm, build_attrs_declarator,
11993         build_function_declarator, make_pointer_declarator, c_cast_expr,
11994         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
11995         (build_id_declarator): New.
11996         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
11997         structures.
11998         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
11999         ARG_INFO_OTHERS): Remove.
12000         (build_id_declarator): New.
12001         (build_array_declarator, set_array_declarator_inner, groktypename,
12002         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
12003         grokfield, start_function, store_parm_decls_newstyle,
12004         store_parm_decls_oldstyle, store_parm_decls,
12005         build_c_parm, build_attrs_declarator, build_function_declarator,
12006         make_pointer_declarator, grokdeclarator): Update to new
12007         structures.
12008         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
12009         parmtype.
12010         (declarator, notype_declarator, after_type_declarator,
12011         parm_declarator, parm_declarator_starttypename,
12012         parm_declarator_nostarttypename, array_declarator, typename,
12013         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
12014         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
12015         parmlist_1, parmlist_2, parmlist_or_identifiers,
12016         parmlist_or_identifiers_1): Use these types.
12017         (primary, after_type_declarator, parm_declarator_starttypename,
12018         notype_declarator, component_decl, component_declarator,
12019         component_notype_declarator, typename, absdcl,
12020         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
12021         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
12022
12023 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12024
12025         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
12026         in_typeof, record_maybe_used_decl, pop_maybe_used,
12027         c_expr_sizeof_expr, c_expr_sizeof_type): New.
12028         * c-decl.c (parser_obstack): New.
12029         (c_init_decl_processing): Initialize parser_obstack.
12030         (c_write_global_declarations_1): Check for used but undefined
12031         static functions.
12032         * c-parse.in (%union): Add otype.
12033         (save_obstack_position): New.
12034         (extdefs): Use it.
12035         (unary_expr): Update in_sizeof and in_alignof.  Use
12036         c_expr_sizeof_expr and c_expr_sizeof_type.
12037         (sizeof): Update in_sizeof.
12038         (alignof): Update in_alignof.
12039         (typeof): Update in_typeof.
12040         (typespec_nonreserved_nonattr): Call pop_maybe_used.
12041         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
12042         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
12043         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
12044         (build_external_ref): Set C_DECL_USED or call
12045         record_maybe_used_decl if appropriate.
12046         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
12047
12048 2004-09-08  Eric Christopher  <echristo@redhat.com>
12049
12050         * builtins.c: Fix prototype for fold_builtin_atan.
12051
12052 2004-09-08  Eric Christopher  <echristo@redhat.com>
12053
12054         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
12055         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
12056         fold_builtin_atan): New functions. Migrate function bodies...
12057         (fold_builtin_1): ... from here.
12058
12059 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
12060
12061         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
12062         save_size.
12063
12064 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
12065
12066         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
12067         * config/rs6000/power5.md (power5-lmul): Same.
12068
12069 2004-09-08  Richard Henderson  <rth@redhat.com>
12070
12071         PR rtl-opt/17186
12072         * function.c (expand_function_end): Have fall-off-the-end
12073         return path jump around return register setup.
12074
12075 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12076
12077         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
12078         (output_return): Do not test for the presence of the 'unimp' insn.
12079         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
12080         as predicates instead of custom ones.  Return raw strings when
12081         possible.
12082         (output_sibcall): Likewise.  Concatenate strings.
12083         (output_ubranch): Remove kludge for TurboSPARC.
12084         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
12085         (output_v9branch): Likewise.
12086         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
12087         <#>: Set sparc_indent_opcode if the delay slot is filled.
12088         <(>: Likewise.
12089         <)>: New operand to emit the displacement from the saved PC on return.
12090         <@>: Remove.
12091         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
12092         (ASM_OUTPUT_OPCODE): New macro.
12093         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
12094         * config/sparc/sparc.md (normal_branch, inverted_branch,
12095         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12096         inverted_fpe_branch): Adjust call to output_cbranch.
12097         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
12098         call to output_v9branch.
12099         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
12100         (output_v9branch): Likewise.
12101
12102 2004-09-08  Devang Patel  <dpatel@apple.com>
12103
12104         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
12105         -segs_read_only_addr and -segs_read_write_addr.
12106         (WORD_SWITCH_TAKES_ARG): Same.
12107         (LINK_SPEC): Same.
12108         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
12109         -segs_read_write_addr.
12110
12111 2004-09-08  Richard Henderson  <rth@redhat.com>
12112
12113         * function.c (reference_callee_copied): New.
12114         (assign_parm_setup_reg): Use it.
12115         * calls.c (initialize_argument_information): Likewise.
12116         (emit_library_call_value_1): Likewise.
12117         * function.h (reference_callee_copied): Declare.
12118
12119         * target.h (struct gcc_target): Add callee_copies.
12120         * target-def.h (TARGET_CALLEE_COPIES): New.
12121         (TARGET_PASS_BY_REFERENCE): Update default.
12122         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12123         * targhooks.c (hook_callee_copies_named): New.
12124         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
12125         hook_pass_by_reference_false.
12126         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
12127         * targhooks.h: Update decls.
12128         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
12129         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12130         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
12131         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
12132         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12133         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
12134         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12135         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
12136         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12137         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
12138         (mips_callee_copies): New.
12139         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12140         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
12141         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12142         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
12143         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12144         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
12145         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12146         * config/sh/sh.c (sh_callee_copies): New.
12147         (TARGET_CALLEE_COPIES): New.
12148         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12149         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
12150         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12151         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
12152         for FUNCTION_ARG_CALLEE_COPIES.
12153         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
12154
12155 2004-09-08  Devang Patel  <dpatel@apple.com>
12156
12157         * tree-if-conv.c (find_phi_replacement_condition): Return true
12158         edge block.
12159         (replace_phi_with_cond_modify_expr): Select conditional expr args
12160         based on true edge basic block.
12161
12162 2004-09-08  Jan Hubicka  <jh@suse.cz>
12163
12164         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
12165         variables being alias set.
12166
12167 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12168
12169         * final.c (shorten_branches, final, get_insn_template,
12170         output_alternate_entry_point, final_scan_insn, alter_subreg,
12171         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
12172         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
12173         * fix-header.c (lookup_std_proto): Likewise.
12174         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
12175         verify_local_live_at_start, update_life_info, mark_reg,
12176         calculate_global_regs_live, allocate_reg_life_data,
12177         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
12178         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
12179         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
12180         * fold-const.c (force_fit_type, div_and_round_double,
12181         may_negate_without_overflow_p, int_const_binop, const_binop,
12182         size_binop, size_diffop, fold_convert_const, fold_convert,
12183         invert_tree_comparison, swap_tree_comparison,
12184         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
12185         range_binop, make_range, fold_cond_expr_with_comparison,
12186         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
12187         fold_abs_const, fold_not_const, fold_relational_const, round_up,
12188         round_down): Likewise.
12189         * function.c (find_function_data, assign_stack_temp_for_type,
12190         instantiate_virtual_regs_lossage, aggregate_value_p,
12191         assign_parm_find_entry_rtl, assign_parm_setup_block,
12192         expand_function_start, expand_function_end, keep_stack_depressed,
12193         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
12194
12195 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
12196
12197         * Makefile.in (tree-loop-linear.o): Added.
12198         (OBJS-common): Add tree-loop-linear.o
12199         * common.opt: New flag, ftree-loop-linear.
12200         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
12201         * tree-flow.h: Add prototype for linear_transform_loops.
12202         * tree-optimize.c: Add linear transform after vectorization.
12203         * tree-pass.h: Add struct pass_linear_transform.
12204         * tree-ssa-loop.c: Add pass_linear_transform.
12205         * tree-loop-linear.c: New file.
12206         * lambda-code.c: gcc_assertify.
12207         (gcc_loop_to_lambda_loop): Handle all exit tests.
12208         Handle case where we have (invariant >= induction var).
12209         (find_induction_var_from_exit_cond): Ditto.
12210
12211 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
12212
12213         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
12214         memory tag is call clobbered, so are its aliases.
12215         (group_aliases): When two memory tags being grouped, if one is
12216         call clobbered, so are the other and its aliases.
12217         (add_may_alias): Remove call-clobbering stuff.
12218         (replace_may_alias): Likewise.
12219         (merge_pointed_to_info): Merge pt_global_mem
12220
12221 2004-09-08  Jan Hubicka  <jh@suse.cz>
12222
12223         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
12224         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
12225         (cgraph_expand_function): Remove stale cgraph edges of currently
12226         compiled function; fix non-unit-at-a-time code copying function
12227         node for later reuse.
12228
12229 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12230
12231         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
12232         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
12233         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
12234         (vec_gc_free, vec_heap_free): New.
12235         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
12236         (DEF_VEC_P): Add allocator argument. Adjust.
12237         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
12238         (DEF_VEC_O): Add allocator argument. Adjust.
12239         (VEC(free)): New.
12240
12241         * tree.h (tree): Define a GC'd vector.
12242         * lamba-code.c (lambda_loop): Likewise.
12243         * value-prof.h (histogram_value): Likewise.
12244
12245 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12246
12247         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
12248         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
12249         gen_lowpart_common, gen_highpart, gen_highpart_mode,
12250         subreg_highpart_offset, operand_subword, operand_subword_force,
12251         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
12252         set_mem_alias_set, change_address_1, verify_rtx_sharing,
12253         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
12254         try_split, add_insn_after, add_insn_before, remove_insn,
12255         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
12256         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
12257         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
12258         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
12259         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
12260         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
12261         record_path_before_1, check_path_after_1, check_path_after): Likewise.
12262         * except.c (gen_eh_region, resolve_one_fixup_region,
12263         remove_unreachable_regions, convert_from_eh_region_ranges_1,
12264         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
12265         connect_post_landing_pads, sjlj_emit_function_exit,
12266         remove_exception_handler_label, remove_eh_handler,
12267         reachable_next_level, collect_one_action_chain,
12268         output_function_exception_table): Likewise.
12269         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
12270         optimize_save_area_alloca, allocate_dynamic_stack_space,
12271         probe_stack_range, hard_function_value): Likewise.
12272         * expmed.c (mode_for_extraction, store_bit_field,
12273         store_fixed_bit_field, extract_bit_field, expand_shift,
12274         expand_mult_const, expand_mult, choose_multiplier,
12275         expand_mult_highpart, expand_divmod, emit_store_flag,
12276         do_cmp_and_jump): Likewise.
12277         * expr.c (convert_move, convert_modes, move_by_pieces,
12278         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
12279         move_block_from_reg, gen_group_rtx, emit_group_load,
12280         emit_group_move, emit_group_store, use_reg, use_regs,
12281         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
12282         emit_move_insn, emit_move_insn_1, emit_push_insn,
12283         expand_assignment, store_expr, count_type_elements,
12284         store_constructor, store_field, safe_from_p, expand_var,
12285         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
12286
12287 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12288
12289         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
12290         gcc_assert and gcc_unreachable.
12291         * ddg.c (create_ddg_dependence, add_deps_for_def,
12292         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
12293         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
12294         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
12295         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
12296         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
12297         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
12298         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
12299         dataflow_set_copy, hybrid_search, diagnostic.c,
12300         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
12301         * dojump.c (do_jump): Likewise.
12302         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
12303         compute_dom_fast_query, calculate_dominance_info,
12304         free_dominance_info, get_immediate_dominator,
12305         set_immediate_dominator, get_dominated_by,
12306         redirect_immediate_dominators, nearest_common_dominator,
12307         dominated_by_p, verify_dominators, recount_dominator,
12308         iterate_fix_dominators, add_to_dominance_info,
12309         delete_from_dominance_info): Likewise.
12310         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
12311         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
12312         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
12313         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
12314         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
12315         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
12316         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
12317         output_call_frame_info, output_loc_operands, build_cfa_loc,
12318         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
12319         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
12320         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
12321         splice_child_die, attr_checksum, same_dw_val_p,
12322         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
12323         unmark_dies, value_format, output_loc_list, output_die,
12324         output_pubnames, output_aranges, base_type_die, is_base_type,
12325         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
12326         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
12327         field_byte_offset, add_data_member_location_attribute,
12328         add_const_value_attribute, rtl_for_decl_location,
12329         add_location_or_const_value_attribute, add_byte_size_attribute,
12330         add_bit_offset_attribute, add_bit_size_attribute,
12331         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
12332         decl_start_label, gen_formal_parameter_die,
12333         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
12334         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
12335         force_decl_die, force_type_die, gen_decl_die,
12336         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
12337         dwarf2out_finish): Likewise.
12338
12339 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
12340
12341         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
12342         * builtins.c: Include tree-mudflap.h.
12343
12344 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
12345
12346         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
12347         force operand 0.0 into register in XFmode. Also do not force
12348         operand 0.0 into register if !TARGET_CMOVE.
12349         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
12350         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
12351         implement ftst x87 instruction.
12352         (*fp_jcc_7): New insn pattern. Change corresponding split
12353         pattern to handle "general_operand" instead of
12354         "nonimmediate_operand".
12355
12356 2004-09-08  Ben Elliston  <bje@au.ibm.com>
12357
12358         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
12359
12360 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
12361
12362         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
12363         generated from standard va_arg expansion.
12364         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
12365         marked nodes.
12366         (mf_varname_tree, mf_file_function_line_tree): Add some support
12367         for column numbers if compiled with USE_MAPPED_LOCATION.
12368
12369 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
12370
12371         * c-decl.c (groktypename_in_parm_context): Remove function.
12372         * c-tree.h (groktypename_in_parm_context): Remove prototype.
12373
12374 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
12375
12376         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
12377         * c-parse.in: Include c-common.h instead of objc-act.h.
12378         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
12379         myparms, myparm): Remove %type declarations.
12380         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
12381         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
12382         declarations.
12383         (objc_inherit_code, objc_public_flag): Remove.
12384         (typespec_nonreserved_nonattr): Call
12385         objc_get_protocol_qualified_type() instead of get_static_reference()
12386         and get_protocol_reference().
12387         (stmt_nocomp): Call grokparm() on @catch parameter.
12388         (objcdef): Move semantic action to objc_finish_implementation().
12389         (classdef): Move semantic action to objc_start_class_interface(),
12390         objc_continue_interface(), objc_finish_interface(),
12391         objc_start_class_implementation(), objc_continue_implementation(),
12392         objc_start_category_interface() and
12393         objc_start_category_implementation().
12394         (protocoldef): Move semantic actions to objc_start_protocol() and
12395         objc_finish_interface().
12396         (ivar_decl_list): Remove nonterminal.
12397         (visibility_spec): Move semantic actions to objc_set_visibility().
12398         (ivar_decls): Remove assignment to $$.
12399         (ivar_decl): Rephrase in terms of component_decl; call
12400         objc_add_instance_variable().
12401         (ivars, ivar_declarator): Remove nonterminals.
12402         (opt_semi): New nonterminal.
12403         (methodtype): Remove semantic actions.
12404         (methoddef): Move semantic actions to objc_set_method_type(),
12405         objc_start_method_definition() and objc_finish_method_definition().
12406         (methodproto): Move semantic actions to objc_set_method_type() and
12407         objc_add_method_declaration().
12408         (methoddecl): Use objc_typename instead of typename; move semantic
12409         actions to objc_build_method_signature().
12410         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
12411         (optparmlist): Express in terms of optparms and optellipsis.
12412         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
12413         nonterminals.
12414         (keyworddecl): Use objc_typename instead of typename.
12415         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
12416         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
12417
12418 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
12419
12420         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
12421         (MD_FALLBACK_FRAME_STATE_FOR): Update.
12422         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
12423         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
12424         (MD_FROB_UPDATE_CONTEXT): Remove default.
12425         (uw_update_context_1): Instead #ifdef invocation.
12426         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
12427         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
12428         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
12429         (MD_UNWIND_SUPPORT): Undefine this instead.
12430         * config/i386/gnu.h: Likewise.
12431         * config/alpha/linux-unwind.h: New file, macro converted to
12432         function, extracted from..
12433         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
12434         (MD_UNWIND_SUPPORT): Define.
12435         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
12436         * config/i386/linux-unwind.h, config/i386/linux.h,
12437         config/i386/linux64.h: Likewise.
12438         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
12439         MD_HANDLE_UNWABI too.
12440         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
12441         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
12442         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
12443         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
12444         * config/sparc/linux-unwind.h, config/sparc/linux.h,
12445         config/sparc/linux64.h: Likewise.
12446         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
12447         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
12448         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
12449         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
12450         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
12451
12452 2004-09-07  Jan Hubicka  <jh@suse.cz>
12453
12454         * cse.c (fold_rtx):  Avoid building of
12455         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
12456
12457         * tree-ssa-pre.c (grand_bitmap_obstack): New.
12458         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
12459         (init_pre): Initialize obstack.
12460         (fini_pre): Free obstack.
12461
12462 2004-09-07  David Daney  <ddaney@avtrex.com>
12463
12464         * config.gcc: Added support for --with-divide=[breaks|traps] for
12465         mips targets.
12466         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
12467         (TARGET_DIVIDE_TRAPS): New macro.
12468         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
12469         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
12470         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
12471         GENERATE_DIVIDE_TRAPS.
12472         (mips_output_division): Emit conditional trap if
12473         GENERATE_DIVIDE_TRAPS is set.
12474         * doc/install.texi: Document --with-divide.
12475         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
12476
12477 2004-09-07  Caroline Tice  <ctice@apple.com>
12478
12479         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
12480         EDGE_CROSSING, to flags test case.
12481
12482 2004-09-07  Jan Hubicka  <jh@suse.cz>
12483
12484         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
12485         class too.
12486
12487 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12488
12489         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
12490         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
12491         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
12492         or gcc_unreachable.
12493         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
12494         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
12495         alloc_aux_for_edges, free_aux_for_edges): Likewise.
12496         * cfgcleanup.c (try_forward_edges,
12497         merge_blocks_move_predecessor_nojumps,
12498         merge_blocks_move_successor_nojumps): Likewise.
12499         * cfgexpand.c (expand_gimple_cond_expr,
12500         expand_gimple_tailcall): Likewise.
12501         * cfghooks.c (duplicate_block): Likewise.
12502         * cfglayout.c (record_effective_endpoints,
12503         insn_locators_initialize, change_scope, fixup_reorder_chain,
12504         verify_insn_chain, fixup_fallthru_exit_predecessor,
12505         duplicate_insn_chain, cfg_layout_finalize): Likewise.
12506         * cfgloopanal.c (check_irred): Likewise.
12507         * cfgloop.c (superloop_at_depth, flow_loops_free,
12508         flow_loop_entry_edges_find, flow_loops_find,
12509         flow_loop_outside_edge_p, get_loop_body,
12510         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
12511         get_loop_exit_edges, num_loop_branches, cancel_loop,
12512         verify_loop_structure): Likewise.
12513         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
12514         duplicate_loop_to_header_edge, create_preheader,
12515         create_loop_notes): Likewise.
12516         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
12517         edirect_branch_edge, force_nonfallthru_and_redirect,
12518         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
12519         commit_edge_insertions, commit_edge_insertions_watch_calls,
12520         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
12521         cfg_layout_redirect_edge_and_branch_force,
12522         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
12523         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
12524         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
12525         cgraph_varpool_node): Likewise.
12526         * cgraphunit.c (cgraph_finalize_function,
12527         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
12528         cgraph_expand_function, cgraph_remove_unreachable_nodes,
12529         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12530         cgraph_mark_inline, cgraph_expand_all_functions,
12531         cgraph_build_static_cdtor): Likewise.
12532         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
12533         simplify_logical, distribute_notes, insn_cuid): Likewise.
12534         * conflict.c (conflict_graph_add, print_conflict): Likewise.
12535         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
12536         coverage_checksum_string): Likewise.
12537         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
12538         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
12539         cse_cc_succs, cse_condition_code_reg): Likewise.
12540         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
12541         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
12542         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
12543         cselib_record_set): Likewise.
12544
12545 2004-09-07  Jan Hubicka  <jh@suse.cz>
12546
12547         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
12548
12549 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12550
12551         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
12552         fold_convert.
12553         (fold_builtin_strpbrk): Likewise.
12554         * expr.c (array_ref_low_bound): Likewise.
12555         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
12556         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
12557         * tree-sra.c (generate_element_zero): Likewise.
12558         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
12559         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
12560         add_old_iv_candidates, add_iv_candidates): Likewise.
12561         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
12562
12563 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12564
12565         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
12566         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
12567         c_expand_expr, boolean_increment, nonnull_check_p,
12568         check_function_arguments_recurse, fold_offsetof_1): Likewise.
12569         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
12570         builtin_define_type_max): Likewise.
12571         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
12572         implicit_decl_warning, builtin_function, build_compound_literal,
12573         complete_array_type, grokdeclarator, get_parm_info,
12574         start_function, store_parm_decls_oldstyle,
12575         c_write_global_declarations): Likewise.
12576         * c-format.c (get_constant, decode_format_attr,
12577         maybe_read_dollar_number, get_flag_spec, check_format_arg,
12578         check_format_types, format_type_warning,
12579         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
12580         init_dynamic_diag_info, handle_format_attribute): Likewise.
12581         * c-gimplify.c (push_context, pop_context, finish_bc_block):
12582         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
12583         * c-objc-common.c (c_tree_printer): Likewise.
12584         * c-pch.c (pch_init): Likewise.
12585         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
12586         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
12587         * c-typeck.c (c_incomplete_type_error, composite_type,
12588         common_pointer_type, common_type, same_translation_unit_p,
12589         tagged_types_tu_compatible_p, finish_init, pop_init_level,
12590         set_designator, set_nonincremental_init_from_string,
12591         process_init_element, c_finish_if_stmt): Likewise.
12592         * caller-save.c (init_caller_save, save_call_clobbered_regs,
12593         insert_restore, insert_save, insert_one_insn): Likewise.
12594         * calls.c (emit_call_1, compute_argument_block_size,
12595         precompute_arguments, expand_call, emit_library_call_value_1,
12596         store_one_arg): Likewise.
12597
12598 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12599
12600         * configure.ac (enable-checking): Add release option. Reorganize
12601         to avoid repetition.
12602         * configure: Rebuilt.
12603         * doc/install.texi (enable-checking): Amend documentation.
12604
12605 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12606
12607         PR bootstrap/17313
12608         * Makefile.in (specs.ready): Depend on cc1$(exeext).
12609
12610 2004-09-06  James E Wilson  <wilson@specifixinc.com>
12611
12612         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
12613         movdf_hardfloat_32bit): Split fG into two alternatives.
12614         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
12615
12616         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
12617
12618 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12619
12620         * final.c (output_in_slot): Delete.
12621         (final_scan_insn): Revert 2004-09-03 change.
12622         (output_asm_insn): Likewise.
12623         * config/sparc/sparc.c (output_return): Likewise.
12624         (output_sibcall): Likewise.
12625
12626 2004-09-06  Jan Hubicka  <jh@suse.cz>
12627
12628         * loop.c (loop_dump_aux): Do not print RTL when not available.
12629         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
12630         frontend specific type nodes.
12631         (produce_memory_decl_rtl): Break out from ...
12632         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
12633         (get_computation_at): Avoid random tree sharing.
12634         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
12635
12636 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
12637
12638         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
12639         unnecessary commands.
12640
12641 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
12642
12643         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
12644         (bitmap.o): Likewise.
12645
12646 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
12647
12648         Unify the management of RTL and tree-level dump files.
12649
12650         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
12651         Don't print function name to the dump file, the pass manager
12652         would do this for us. Add code from the top of
12653         rest_of_compilation, up to the initial RTL dump.
12654         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
12655         close the DFI_sibling dump file.
12656         (rest_of_compilation): Don't do that here.  Remove code up to the
12657         initial RTL dump.
12658         (init_optimization_passes): Remove.
12659         (pass_rest_of_compilation): Change pass name to NULL.
12660         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
12661         Do not call init_optimization_passes.
12662         * toplev.h (init_optimization_passes): Remove.
12663
12664         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12665         finish_graph_dump_file): Remove SUFFIX parameter.
12666         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
12667         finish_graph_dump_file): Likewise.
12668
12669         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
12670         * cfgexpand.c (pass_expand): Adjust.
12671         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
12672         * passes.c (pass_rest_of_compilation): Adjust.
12673         * predict.c (pass_profile): Adjust.
12674         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
12675         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
12676         pass_split_crit_edges, pass_warn_function_return): Adjust.
12677         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
12678         * tree-dfa.c (pass_referenced_vars): Adjust.
12679         * tree-eh.c (pass_lower_eh): Adjust.
12680         * tree-if-conv.c (pass_build_ssa): Adjust.
12681         * tree-into-ssa.c (pass_build_ssa): Adjust.
12682         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
12683         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
12684         * tree-nrv.c (pass_nrv): Adjust.
12685         * tree-optimize.c (pass_gimple, pass_all_optimizations,
12686         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12687         pass_init_datastructures): Adjust.
12688         * tree-outof-ssa.c (pass_del_ssa): Adjust.
12689         * tree-profile.c (pass_tree_profile): Adjust.
12690         * tree-sra.c (pass_sra): Adjust.
12691         * tree-ssa-alias.c (pass_may_alias): Adjust.
12692         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
12693         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
12694         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
12695         * tree-ssa-dom.c (pass_dominator): Adjust.
12696         * tree-ssa-dse.c (pass_dse): Adjust.
12697         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
12698         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
12699         * tree-ssa-loop-ch.c (pass_ch): Adjust.
12700         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
12701         pass_loop_done, pass_complete_unroll, pass_iv_canon,
12702         pass_iv_optimize, pass_vectorize): Adjust.
12703         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
12704         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
12705         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
12706         pass_late_warn_uninnitialized): Adjust.
12707         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
12708
12709         * Makefile.in (tree-dump.o): Add new dependencies.
12710         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
12711         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
12712         Likewise.
12713         * toplev.c (dump_file_name): New.
12714         * tree-dump.c (dump_enable_all): Add LETTER parameter.
12715         (struct dump_file_info): Add NUM and LETTER fields.
12716         (dump_files): Adjust and add RTL dump files.
12717         (dump_register): Add NUM and LETTER fields.
12718         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
12719         (dump_begin): Use get_dump_file_name.
12720         (dump_switch_p_1): Adjust call to dump_enable_all.
12721         * tree-dump.h (dump_register): Adjust prototype.
12722         * tree-optimize.c (register_one_dump_file): Take dump file index.
12723         Support flags for RTL dumps.
12724         (register_dump_files): Fill in NUM field of struct dump_file_info.
12725         Track properties both when the gate is executed and when it is not.
12726         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
12727         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
12728         dumps of RTL.
12729         * tree-pass.h (dump_file_name): New.
12730         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
12731         New.
12732
12733         * Makefile.in (passes.o): Add new dependencies.
12734         * passes.c (struct dump_file_info, enum dump_file_index,
12735         dump_file_tbl, init_optimization_passes): Remove.
12736         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
12737         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
12738         dump_enabled_p.
12739         (finish_optimization_passes): Update finish_graph_dump_file loop.
12740         (enable_rtl_dump_file): Remove.
12741         * tree-dump.c (dump_files): Adjust and add RTL dump files.
12742         (enable_rtl_dump_file): Add here.
12743         * tree.h (enum tree_dump_index): Add RTL dump file indices.
12744         * doc/invoke.texi (Debugging options): Document new RTL debugging
12745         options.  Update.
12746
12747 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
12748
12749         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
12750         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
12751         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
12752         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
12753         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
12754         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
12755         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
12756         vec.h: Fix comment formatting.
12757
12758 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
12759
12760         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
12761         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
12762         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
12763         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
12764         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
12765         tree-ssa-loop-niter.c, tree-ssa-operands.c,
12766         tree-ssa-operands.h, tree-ssa-propagate.c,
12767         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
12768         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
12769
12770 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
12771
12772         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
12773         vectorizer is enabled.
12774
12775 2004-09-05  Andreas Jaeger  <aj@suse.de>
12776
12777         * tree-if-conv.c: Spell check comments and clean up whitespace.
12778
12779 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12780
12781         * tree-ssa-loop-ivopts.c: New file.
12782         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
12783         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
12784         target_pres_cost, target_spill_cost): Declare.
12785         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
12786         spill_cost): Renamed to ...
12787         (target_avail_regs, target_res_regs, target_small_cost,
12788         target_pres_cost, target_spill_cost): ... and exported.
12789         (init_set_costs, global_cost_for_size): Work with renamed variables.
12790         * common.opt (flag_ivopts): New flag.
12791         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
12792         REF_ORIGINAL.
12793         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
12794         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
12795         generating SSA form.
12796         (force_gimple_operand): New function.
12797         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
12798         * tree-cfg.c (stmt_bsi): New function.
12799         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
12800         PARAM_IV_MAX_CONSIDERED_USES): New.
12801         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
12802         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
12803         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
12804         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
12805         * tree-nested.c (build_addr): Export.
12806         * tree-optimize.c (init_tree_optimization_passes): Add
12807         pass_iv_optimize.
12808         * tree-pass.h (pass_iv_optimize): Declare.
12809         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
12810         IMAGPART_EXPR.
12811         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
12812         as a phi node argument.
12813         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
12814         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
12815         functions.
12816         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
12817         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
12818         pass_iv_optimize): New pass.
12819         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
12820         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
12821         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
12822         * tree.h (REF_ORIGINAL): New macro.
12823         (build_int_cst_type, unsigned_type_for, zero_p,
12824         cst_and_fits_in_hwi, build_addr): Declare.
12825         * doc/invoke.texi (-fivopts): Document.
12826         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
12827         PARAM_IV_MAX_CONSIDERED_USES): Document.
12828         * doc/passes.texi: Document induction variable optimizations pass.
12829
12830 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12831
12832         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
12833         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
12834         * c-common.c (c_common_attribute_table): Accept parameters to
12835         sentinel attribute.
12836         (check_function_sentinel, handle_sentinel_attribute): Likewise.
12837         * doc/extend.texi: Update accordingly.
12838
12839 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12840
12841         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
12842         New.
12843         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
12844         attribute.
12845         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
12846         New functions.
12847         (c_common_attribute_table): Add `sentinel' attribute.
12848         (check_function_arguments): Handle `sentinel' attribute.
12849         * doc/extend.texi: Document `sentinel' attribute.
12850
12851 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
12852
12853         * configure: Regenerated.
12854
12855 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12856
12857         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
12858
12859         * tree.c (save_expr): No longer TREE_READONLY.
12860
12861 2004-09-04  Jan Hubicka  <jh@suse.cz>
12862
12863         * passes.c (rest_of_clean_state):  Fix merge conflict made during
12864         commiting the patch.
12865
12866 2004-09-04  Jan Hubicka  <jh@suse.cz>
12867
12868         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
12869
12870 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
12871
12872         * doc/md.texi (shift patterns): New anchor.  Add reference to
12873         TARGET_SHIFT_TRUNCATION_MASK.
12874         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
12875         * target.h (shift_truncation_mask): New target hook.
12876         * targhook.h (default_shift_truncation_mask): Declare.
12877         * targhook.c (default_shift_truncation_mask): Define.
12878         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
12879         (TARGET_INITIALIZER): Include it.
12880         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
12881         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
12882         reject all out-of-range values.  Fix sign-extension code for modes
12883         whose width is smaller than HOST_BITS_PER_WIDE_INT.
12884         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
12885         (expand_superword_shift, expand_subword_shift): Likewise.
12886         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
12887         (expand_binop): Use them to implement double-word shifts.
12888         * config/arm/arm.c (arm_shift_truncation_mask): New function.
12889         (TARGET_SHIFT_TRUNCATION_MASK): Define.
12890
12891 2004-09-04  Jan Hubicka  <jh@suse.cz>
12892
12893         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
12894         (mix): New macro copied from hashtab.c
12895         (iterative_hash_hashval_t, iterative_hash_pointer,
12896         iterative_hash_host_wide_int): New functions based on hashtab.c
12897         implementation.
12898
12899 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
12900
12901         * config/mips/mips.md (mask): New mode attribute.
12902         (zero_extendsidi2): Add memory alternative.
12903         (*zero_extendsidi2_mem): Delete.
12904         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
12905         memory_operand in the TARGET_MIPS16 check.
12906         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
12907         Redefine using :GPR and :SHORT.
12908         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
12909
12910 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
12911
12912         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
12913         using rint_optab.
12914         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
12915         expand_builtin_mathfn.
12916         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
12917         btrunc?f patterns for btrunc_optab. Implement rint_optab using
12918         rint?f patterns.
12919         * optabs.c (init_optabs): Initialize rint_optab.
12920         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
12921         Add new OTI_rint.
12922         (btrunc_optab): Rename macro from trunc_optab.
12923         (rint_optab): Define corresponding macro.
12924
12925         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
12926         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
12927
12928         * config/i386/i386-protos.h (emit_i387_cw_initialization):
12929         Change prototype. Add new int parameter.
12930         * config/i386/i386.c (emit_i387_cw_initialization):
12931         Handle new rounding modes.
12932
12933         * config/i386/i386.h (enum fp_cw_mode): Delete.
12934         (MODE_NEEDED): Handle new rounding modes.
12935         (EMIT_MODE_SET): Change condition to handle new rounding modes.
12936
12937         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
12938         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
12939         represent different rounding modes of frndint insn.
12940         (type): Add frndint type.
12941         (i387, length, memory): Handle this type.
12942         (i387_cw): New attribute definition.
12943         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
12944         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
12945         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
12946         Add "i387_cw" attribute defined to "trunc".
12947         (x86_fnstcw_1): Remove comment.
12948         (*frndintxf2): Rename insn definition to frndintxf2. Move
12949         insn definition near rint?f2 expanders.
12950         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
12951         rintf and rintl built-ins as inline x87 intrinsics.
12952         (frndintxf2_floor): New pattern to implement floor rounding
12953         mode with frndint x87 instruction.
12954         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
12955         floorf and floorl built-ins as inline x87 intrinsics.
12956         (frndintxf2_ceil): New pattern to implement ceil rounding
12957         mode with frndint x87 instruction.
12958         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
12959         ceilf and ceill built-ins as inline x87 intrinsics.
12960         (frndintxf2_trunc): New pattern to implement trunc rounding
12961         mode with frndint x87 instruction.
12962         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
12963         truncf and truncl built-ins as inline x87 intrinsics.
12964         (frndintxf2_mask_pm): New pattern to implement rounding
12965         mode with exceptions with frndint x87 instruction.
12966         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
12967         implement nearbyint, nearbyintf and nearbyintl built-ins as
12968         inline x87 intrinsics.
12969
12970 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
12971
12972         * config/mips/mips.md (SHORT): New mode macro.
12973         (size): New mode attribute.
12974         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
12975         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
12976         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
12977         !ISA_HAS_SEB_SEH.
12978         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
12979         *extend[qh]isi2_hw patterns and extending them to di.
12980         (extendqihi2): Implement as define_insn_and_split that produces
12981         extendqisi2 after reload.
12982
12983 2004-09-03  Devang Patel  <dpatel@apple.com>
12984
12985         * Makefile.in (OBJS-common): Add tree-if-conv.o
12986         (tree-if-conv.o): New rule.
12987         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
12988         (get_loop_body_in_bfs_order): New.
12989         * cfgloop.h (get_loop_body_in_bfs_order): New.
12990         * tree-flow.h (enum move_pos): Move here from ..
12991         * tree-ssa-loop-im.c (enum move_pos): here.
12992         (movement_possibility): Make externally visible.
12993         * tree-optimize.c (init_tree_optimization_passes): New entry for
12994         if conversion pass.
12995         * tree-pass.h (pass_if_conversion): New.
12996         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
12997         * tree-if-conv.c: New file.
12998         * doc/passes.texi: Document tree if-conversion pass.
12999         * doc/tree-ssa.texi: Same.
13000
13001 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13002
13003         PR target/14925:
13004         Makefile.in (LIB2ADDEHSTATIC): New.
13005         (LIB2ADDEHSHARED): New.
13006         (LIBUNWIND): New.
13007         (LIBUNWINDDEP): New.
13008         (SHLIBUNWIND_LINK): New.
13009         (SHLIBUNWIND_INSTALL): New.
13010         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
13011         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
13012         (clean): Remove libunwind*
13013         (stage1-start): Remove and copy stage1/libunwind*.
13014         (stage2-start): Remove and copy stage2/libunwind*.
13015         (stage3-start): Remove and copy stage3/libunwind*.
13016         (stage4-start): Remove and copy stage4/libunwind*.
13017         (stageprofile-start): Remove and copy stageprofile/libunwind*.
13018         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
13019
13020         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
13021         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
13022         tmake_file if --with-system-libunwind isn't used.
13023
13024         * config/ia64/t-glibc-libunwind: New file.
13025         * config/t-libunwind-elf: Likewise.
13026         * unwind-compat.c: Likewise.
13027         * unwind-compat.h: Likewise.
13028         * unwind-dw2-fde-compat.c: Likewise.
13029
13030         * config/ia64/t-glibc (LIB2ADDEH): Updated.
13031         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13032
13033         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
13034         aliases if needed.
13035         * unwind-dw2-fde-glibc.c: Likewise.
13036         * unwind-dw2.c: Likewise.
13037
13038         * config/t-libunwind (LIB2ADDEH): Updated.
13039         (LIB2ADDEHSTATIC): New.
13040         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13041         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
13042
13043         * configure.ac: Change --enable-libunwind-exceptions to
13044         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
13045         * configure: Regenerated.
13046         * config.in: Updated.
13047
13048         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
13049         above and mention --with-system-libunwind.
13050         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
13051         removed in gcc 3.4.3 and later.
13052
13053         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
13054         USE_LIBUNWIND_EXCEPTIONS is defined.
13055
13056         * mklibgcc.in: Support libunwind.
13057
13058 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13059
13060         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
13061         m_NOCONA.
13062
13063 2004-09-03  Richard Henderson  <rth@redhat.com>
13064
13065         PR middle-end/9997
13066         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
13067         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
13068         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
13069         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
13070         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
13071         resize_stack_vars_conflict, add_stack_var_conflict,
13072         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
13073         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
13074         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
13075         expand_one_static_var, expand_one_hard_reg_var,
13076         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
13077         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
13078         (expand_used_vars): Rewrite.
13079         * Makefile.in (cfgexpand.o): Update dependencies.
13080
13081 2004-09-04  Jan Hubicka  <jh@suse.cz>
13082
13083         * cfg.c (free_edge): Use ggc_free.
13084         (expunge_block): Use ggc_free.
13085         * passes.c (rest_of_clean_state): Free after compilation.
13086         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
13087         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
13088
13089 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13090
13091         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
13092         DECL_EXTERNAL check.
13093
13094 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13095
13096         * final.c (output_in_slot): New global variable.
13097         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
13098         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
13099         'output_in_slot' before invoking output_asm_insn.
13100         (output_asm_insn): Add a space after the tab if 'output_in_slot'
13101         is set.
13102         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
13103         final_scan_insn.
13104         (output_sibcall): Likewise.
13105
13106 2004-09-03  Jan Hubicka  <jh@suse.cz>
13107
13108         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
13109         * tree-ssanames (init_ssanames): Likewise.
13110
13111 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13112
13113         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
13114         objc_declare_protocols, objc_start_protocol,
13115         objc_start_class_interface, objc_start_category_interface,
13116         objc_continue_interface, objc_finish_interface,
13117         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
13118         objc_start_class_implementation, objc_start_category_implementation,
13119         objc_continue_implementation, objc_finish_implementation,
13120         objc_add_method_declaration, objc_start_method_definition,
13121         objc_finish_method_definition, objc_build_keyword_decl,
13122         objc_build_method_signature, objc_build_encode_expr,
13123         objc_build_protocol_expr, objc_build_selector_expr,
13124         objc_build_message_expr, objc_build_string_object,
13125         objc_get_class_reference, objc_get_protocol_qualified_type,
13126         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
13127
13128 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13129
13130         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
13131
13132         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
13133         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
13134         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
13135         (mips_recip1_<fmt>): Use frdiv1 type.
13136         (mips_recip2_<fmt>): Use frdiv2 type.
13137         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
13138         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
13139         and frsqrt1.
13140         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
13141
13142 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
13143
13144         * reload.c (find_reloads): Swap operand_loc pointers for
13145         find_dummy_reload if we have swapped two operands.
13146
13147 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
13148
13149         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
13150         to get the tablejump-insn before the jump-table label.
13151
13152 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13153
13154         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
13155         objc_declare_protocols, objc_build_message_expr,
13156         objc_finish_message_expr, objc_build_selector_expr,
13157         objc_build_protocol_expr, objc_build_encode_expr,
13158         objc_build_string_object, objc_get_protocol_qualified_type,
13159         objc_get_class_reference, objc_get_class_ivars,
13160         objc_start_class_interface, objc_start_category_interface,
13161         objc_start_protocol, objc_continue_interface, objc_finish_interface,
13162         objc_start_class_implementation, objc_start_category_implementation,
13163         objc_continue_implementation, objc_finish_implementation,
13164         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
13165         objc_add_method_declaration, objc_start_method_definition,
13166         objc_finish_method_definition, objc_add_instance_variable,
13167         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
13168         objc_finish_try_stmt, objc_begin_catch_clause,
13169         objc_finish_catch_clause, objc_build_finally_clause,
13170         objc_build_synchronized, objc_static_init_needed_p,
13171         objc_generate_static_init_call): New prototypes.
13172
13173 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
13174
13175         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
13176         is only one reg.
13177         (ia64_function_value): Ditto.
13178
13179 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13180
13181         * config.gcc: Resurrect NetWare as a target. Handle special case of
13182         Novell linker to be used (specified through --with-ld=) and threading
13183         model of either Posix (default) or NKS.
13184         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
13185         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
13186         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
13187         * config/i386/netware.c, config/i386/netware.h: New.
13188         * config/i386/nwld.c, config/i386/nwld.h: New.
13189         * config/i386/netware-crt0.c: New.
13190         * config/i386/netware-libgcc.c: New.
13191         * config/i386/netware-libgcc.def: New.
13192         * config/i386/netware-libgcc.exp: New.
13193         * config/i386/t-netware, config/i386/t-nwld: New.
13194         * gthr-nks.h: New.
13195         * doc/install.texi: Document NKS threading model.
13196
13197 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13198
13199         PR c/7054
13200         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
13201         * tree.h (initial_max_fld_align): Declare
13202         * stor-layout.c (initial_max_fld_align): Define and initialize.
13203         (maximum_field_alignment): Initialize to the same value.
13204         * common.opt: Add -fpack-struct= variant of switch.
13205         * opts.c: Handle -fpack-struct= variant of switch.
13206         * c-pragma.c: Change #pragma pack() handling so that it becomes
13207         compatible to other compilers: accept individual 'push' argument,
13208         make final pop restore (command line) default, correct interaction
13209         of push/pop and sole specification of a new alignment (so that the
13210         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
13211         to #pragma pack(push, <n>).
13212         * doc/extend.texi: New node "Structure-Packing Pragmas" under
13213         "Pragmas", describing #pragma pack.
13214         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
13215         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
13216         Document new TARGET_DEFAULT_PACK_STRUCT.
13217
13218 2004-09-03  Devang Patel  <dpatel@apple.com>
13219
13220         * dwarf2out.c (gen_field_die). Equate decl number to die.
13221
13222 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
13223
13224         PR target/15832
13225         * global.c (modify_reg_pav): New function.
13226         (make_accurate_live_analysis): Call the new function.  Move pavin
13227         modification by earlyclobber set into the new function.
13228
13229 2004-09-03  Andreas Schwab  <schwab@suse.de>
13230
13231         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
13232         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
13233         extended.
13234
13235 2004-09-02  Jan Beulich  <jbeulich@novell.com>
13236
13237         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
13238         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
13239         not unwind code specific ones.
13240         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
13241         Remove unwind code specific dependencies.
13242         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
13243         Remove gbl-ctors.h.
13244         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
13245         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
13246         * tsystem.h: Declare memcpy and memset when inhibit_libc.
13247
13248 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13249
13250         * combine.c (try_combine): Delay modifying of insns which cannot
13251         be easily undone.
13252
13253 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
13254
13255         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
13256         tree-loop-im.
13257         * gcc/tree-ssa-loop.c: Ditto
13258         * gcc/tree-ssa-loop-ivcanon.c: Ditto
13259         * gcc/doc/invoke.texi: Ditto.
13260
13261 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
13262
13263         * c-decl.c (store_parm_decls_newstyle): Make static.
13264         (store_parm_decls_from): New function.
13265         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
13266         (store_parm_decls_from): New prototype.
13267
13268 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
13269
13270         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
13271         HImode with STRICT_ALIGNMENT.
13272
13273 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
13274
13275         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
13276         (TARGET_OS_CPP_BUILTINS): Likewise.
13277         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
13278         TARGET_BPABI_CPP_BUILTINS.
13279
13280 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13281
13282         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
13283
13284 2004-09-02  Eric Christopher  <echristo@redhat.com>
13285
13286         * builtins.c (expand_builtin_cabs): Delete.
13287         (expand_builtin): If unable to fold the values do a normal
13288         library call for builtin_cab*.
13289         (fold_builtin_cabs): Depend on optimize and optimize_size.
13290         * optabs.c (expand_cmplxdiv_straight): Delete.
13291         (expand_cmplxdiv_wide): Ditto.
13292         (expand_vector_binop): Ditto.
13293         (expand_vector_unop): Ditto.
13294         (expand_complex_abs): Delete.
13295         (expand_binop): Remove calls to above functions.
13296         Remove open coding of complex arithmetic.
13297         (expand_unop): Ditto.
13298         * optabs.h: Remove prototypes.
13299
13300 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
13301
13302         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
13303         * c-tree.h (store_parm_decls_newstyle): New prototype.
13304
13305 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
13306
13307         * config/rs6000/rs6000.c (expand_block_clear): Use vector
13308         instructions if available.
13309         (expand_block_move): Likewise.
13310
13311 2004-09-03  Jan Hubicka  <jh@suse.cz>
13312
13313         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
13314
13315 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
13316
13317         * config/arm/symbian.h (LIB_SPEC): Define to empty.
13318         * config/arm/t-symbian (SHLIB_LC): Likewise.
13319
13320 2004-09-02  Paul Brook  <paul@codesourcery.com>
13321
13322         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
13323
13324 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13325
13326         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
13327         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
13328         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
13329         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
13330         (mips_issue_rate): Remove unreachable abort.
13331         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
13332         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
13333         (mips_block_move_straight, print_operand_address, mips_file_start)
13334         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
13335         (mips_output_conditional_branch, mips_expand_builtin_direct)
13336         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
13337         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
13338         with gcc_assert.
13339
13340 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13341
13342         * config/mips/mips.md (*lea_high64): Change split condition to
13343         flow2_completed.  Add a peephole2 to generate a more parallel version.
13344
13345 2004-09-02  Jan Hubicka  <jh@suse.cz>
13346
13347         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
13348         GGC.
13349
13350         * ggc-page.c: include tree-flow.h.
13351         (extra_order_size_table): Add stmt_ann_d.
13352         (STAT_LABEL): Rename from ....
13353         (LABEL): ... this one.
13354         * Makefile.in (ggc-page.o): Add dependency.
13355
13356         * ggc-common.c (ggc_force_collect): New global variable.
13357         (loc_description): Add fields "freed", "collected"
13358         (ptr_hash): New static hash
13359         (ptr_hash_entry): New structure.
13360         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
13361         (ggc_record_overhead): Take ptr argument, record it
13362         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
13363         (cmp_statistics): Imrove sorting.
13364         (dump_ggc_loc_statistics): Output newly collected statistics
13365         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
13366         (ggc_free): Call ggc_free_overhead.
13367         (ggc_collect): Force collection when asked to be forced.
13368         (ggc_collect): Call ggc_prune_overhead_list.
13369         * ggc.h (ggc_force_collect): Declare
13370         (ggc_record_overhead): Update prototype.
13371         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
13372
13373 2004-09-02  James E Wilson  <wilson@specifixinc.com>
13374
13375         * common.opt (ftrapping-math): Default to on.
13376
13377 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
13378
13379         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
13380
13381 2004-09-02  Denis Chertykov  <denisc@overta.ru>
13382
13383         PR target/16884
13384         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
13385         match_scratch.
13386         (*movmemqi_insn): Likewise.
13387         (*movmemhi): Likewise.
13388         (clrmemhi): Likewise.
13389         (*clrmemqi): Likewise.
13390         (*clrmemhi): Likewise.
13391
13392 2004-09-02  Paul Brook  <paul@codesourcery.com>
13393
13394         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
13395         default_use_cxa_atexit=yes.
13396
13397 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
13398
13399         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
13400         (struct kernel_old_ucontext): Delete.
13401         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
13402         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
13403         when IN_LIGGCC2.
13404
13405 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13406
13407         * toplev.c (process_options): Fix typo.
13408
13409 2004-09-01  Richard Henderson  <rth@redhat.com>
13410
13411         PR middle-end/17258
13412         * calls.c (initialize_argument_information): Tighten pass-through
13413         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
13414         Use build_fold_addr_expr.
13415         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
13416         that assumes ADDR_EXPR allocates stack space.
13417         * fold-const.c (build_fold_addr_expr_with_type): Look through
13418         WITH_SIZE_EXPR.
13419
13420 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
13421
13422         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
13423         * ggc.h (ggc_alloc_rtx): Delete.
13424
13425 2004-09-01  Roger Sayle  <roger@eyesopen.com>
13426
13427         * expmed.c (enum alg_code): Remove long unused enumeration values.
13428         (struct mult_cost): New structure to hold the "score" of a synthetic
13429         multiply sequence, including both a rtx_cost and a latency field.
13430         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
13431         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
13432         (struct algorithm): Change type of cost field to be mult_cost.
13433         (synth_mult): Change type of cost_limit argument to be a
13434         pointer to a mult_cost.  Update all cost comparisons to use the
13435         new mult_cost infrastructure.  For alg_add_factor and
13436         alg_sub_factor operations, latency is lower than the rtx_cost.
13437         (choose_mult_variant):  Update calls to synth_mult.  Perform
13438         cost comparisons using the new mult_cost infrastructure.
13439         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
13440         to optain the total rtx_cost of a synth_mult "algorithm".
13441
13442 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
13443
13444         * config/rs6000/power4.md: Increase store latency to 12.
13445         * config/rs6000/power5.md: Same.
13446
13447 2004-09-01  James E Wilson  <wilson@specifixinc.com>
13448
13449         PR target/14064
13450         * config/avr/avr.c (avr_unique_section): Delete prototype and
13451         definition.
13452         (TARGET_ASM_UNIQUE_SECTION): Delete.
13453
13454 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
13455
13456         * c-parse.in (primary): Call objc_build_message_expr(),
13457         objc_build_selector_expr(), objc_build_protocol_expr(),
13458         objc_build_encode_expr() and objc_build_string_object() instead of
13459         build_message_expr(), build_selector_expr(), build_protocol_expr(),
13460         build_encode_expr() and build_objc_string_object(), respectively.
13461         (component_decl_list2): Call objc_get_class_ivars() instead of
13462         get_class_ivars_from_name().
13463         (keyworddecl): Call objc_build_keyword_decl() instead of
13464         build_keyword_decl().
13465         (receiver): Call objc_get_class_reference() instead of
13466         get_class_reference().
13467         (reswords): Add blank line before @@ifobjc section, for clarity.
13468
13469 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
13470
13471         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
13472         to Altivec vetors.
13473
13474 2004-09-01  Wu Yongwei  <adah@sh163.net>
13475             Danny Smith  <dannysmith@users.sourceforge.net>
13476
13477         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
13478         not Windows 'DWORD'.
13479         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
13480         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
13481         (__gthr_win32_recursive_mutex_init_function): Add prototype for
13482         __GTHREAD_HIDE_WIN32API case..
13483         (__gthr_win32_recursive_mutex_lock): Likewise.
13484         (__gthr_win32_recursive_mutex_trylock): Likewise.
13485         (__gthr_win32_recursive_mutex_unlock): Likewise.
13486         (__gthread_recursive_mutex_init_function); Add definition for
13487         __GTHREAD_HIDE_WIN32API case.
13488         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
13489         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
13490         call to InterlockedDecrement.
13491
13492 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13493
13494         * tree-tailcall.c (find_tail_calls): Also fail is statement has
13495         volatile operands.
13496
13497         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
13498
13499         * doc/c-tree.texi: Document new operands for ARRAY_REF and
13500         COMPONENT_REF.
13501
13502 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13503
13504         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
13505         * common.opt (fspeculative-prefetching): New.
13506         * flags.h (flag_speculative_prefetching_set): Declare.
13507         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
13508         values.
13509         * opts.c (flag_sepculative_prefetching_set): New variable.
13510         (common_handle_option): Handle -fspeculative-prefetching.
13511         * passes.c (rest_of_compilation): Ditto.
13512         * profile.c (instrument_values, compute_value_histograms, branch_prob):
13513         Use vectors instead of arrays.
13514         * toplev.c (process_options): Handle -fspeculative-prefetching.
13515         * rtl-profile.c: Include ggc.h.
13516         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
13517         rtl_gen_one_value_profiler_no_edge_manipulation,
13518         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
13519         argument changed.
13520         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
13521         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
13522         argument changed.
13523         * value-prof.c: Include ggc.h.
13524         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
13525         macros.
13526         (insn_prefetch_values_to_profile, find_mem_reference_1,
13527         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
13528         speculative_prefetching_transform): New.
13529         (value_profile_transformations): Call speculative_prefetching_transform.
13530         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
13531         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
13532         tree_find_values_to_profile, find_values to profile): Use vectors
13533         instead of arrays.
13534         (free_profiled_values): Removed.
13535         * value-prof.h (struct histogram_value): Renamed to
13536         struct histogram_value_t.
13537         (histogram_value, histogram_values): New types.
13538         (find_values_to_profile): Declaration changed.
13539         (free_profiled_values): Removed.
13540         (struct profile_hooks): Type of argument of the hooks changed to
13541         histogram_value.
13542         * doc/invoke.texi (-fspeculative-prefetching): Document.
13543
13544 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13545
13546         PR rtl-optimization/16408
13547         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
13548
13549 2004-09-01  Richard Henderson  <rth@redhat.com>
13550
13551         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
13552         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
13553
13554 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13555
13556         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
13557
13558 2004-09-01  Mike Stump  <mrs@apple.com>
13559
13560         * config/darwin.c (machopic_symbol_defined_p): In addition to
13561         being SYMBOL_REF_LOCAL_P, a symbol must also be
13562         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
13563         defined in this output file, or translation unit in the case
13564         of IMA not being used.
13565         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
13566         never need .indirect_symbol when indirecting.
13567
13568 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13569
13570         * Makefile.in (bb-reorder.o): Add several dependencies.
13571
13572 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13573
13574         * fold-const.c (operand_equal_p): Require equal sign also for
13575         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
13576
13577 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13578
13579         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
13580         for use in configargs.h.  Put the cname in a separate variable.  Use
13581         that to set target_cpu_default2.
13582
13583 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
13584             Nick Clifton  <nickc@redhat.com>
13585
13586         * config/sh/sh.md ("length"): Increase branch length when
13587         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
13588         constant, 2 byte for aligning the constant.
13589
13590 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13591
13592         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
13593         CPU.
13594         (arm7tdmi-s): New CPU name.
13595         * arm/arm.c (ARM_CORE): Update for new format.
13596         * arm/arm.h (ARM_CORE): Likewise.
13597         * arm/gentune.sh: Update for extra field.
13598         * config.gcc: Likewise.
13599         * arm/arm-tune.md: Regenerate.
13600         * doc/invoke.texi: Document the real processor names for ARM cpus.
13601
13602 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13603
13604         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
13605         (floatdidf): New functions.
13606         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
13607         (floatdisf): New functions.
13608         * t-arm-elf: Use them.
13609
13610 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
13611
13612         * c-common.h (lookup_interface): Remove prototype.
13613         (is_class_name): Rename to objc_is_class_name.
13614         (lookup_objc_ivar): Rename to objc_lookup_ivar.
13615         (get_current_scope): Rename to objc_get_current_scope.
13616         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
13617         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
13618         (yylexname): Call objc_is_class_name() instead of is_class_name().
13619         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
13620         instead of lookup_objc_ivar().
13621         * stub-objc.c (lookup_interface): Remove stub.
13622         (is_class_name): Rename to objc_is_class_name.
13623         (lookup_objc_ivar): Rename to objc_lookup_ivar.
13624
13625 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13626
13627         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
13628         * config/arm/lib1funcs.asm: Do not include supplemental .S files
13629         when compiling for Symbian.
13630         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
13631         (TARGET_OS_CPP_BUILTINS): Likewise.
13632         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
13633
13634 2004-08-31  Stan Shebs  <shebs@apple.com>
13635
13636         * toplev.c (process_options): Ensure debug_hooks is initialized.
13637
13638 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13639
13640         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
13641         * target.h (cxx): Add export_class_data.
13642         * config/arm/arm.c (arm_cxx_export_class_data): New function.
13643         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
13644         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
13645
13646 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
13647
13648         * config/sh/sh.c (output_branch): Check the insn length possibly
13649         in the delayed slot.
13650
13651 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13652
13653         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
13654         blank after ')'.
13655         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
13656
13657         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
13658         (c_sizeof_of_alignof_type): Likewise.
13659         * expr.c (array_ref_element_size): Likewise.
13660         (highest_pow2_factor_for_target): Likewise.
13661         * gimplify.c (canonicalize_addr_expr): Likewise.
13662         (gimplify_compound_lval): Likewise.
13663         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
13664         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
13665         * varasm.c (assemble_variable): Likewise.
13666         (output_constant_def_contents): Alignments are unsigned.
13667
13668 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13669             Jeff Law  <law@redhat.com>
13670
13671         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
13672         gets modified.
13673
13674 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13675
13676         * hooks.c (hook_bool_void_true): New function.
13677         * hooks.h (hook_bool_void_true): Declare.
13678         * target-def.h (TARGET_CXX): Add
13679         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
13680         * target.h (struct cxx): Add key_method_may_be_inline.
13681         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
13682         function.
13683         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
13684         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
13685         __THUMB_INTERWORK.
13686
13687 2004-08-31  Denis Chertykov  <denisc@overta.ru>
13688
13689         PR target/15417
13690         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
13691         frame pointer register only in Pmode while reload in progress.
13692
13693 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
13694
13695         PR target/15334
13696         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
13697         because it breaks the 32-bit shift patterns that rely on a match_dup.
13698
13699 2004-08-31  Matt Austern  <austern@apple.com>
13700
13701         * config/darwin.c (darwin_make_decl_one_only): Allocate section
13702         names once per compilation, instead of once per symbol.
13703
13704 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
13705
13706         * Makefile.in (build_subdir): New substitution.
13707         (fixinc.sh): Simplify heavily since fixincludes is already built.
13708         (stmp-fixinc): Depend on specs.ready.
13709         (install-mkheaders): Use new location of fixincludes.
13710         (clean): Do not descend into fixinc.
13711         (FORBUILD): Replace with ../$(build_subdir).
13712         * configure.ac (build_subdir): Substitute.
13713         (FORBUILD): Do not set.
13714         (all_outputs): Remove fixinc/Makefile.
13715         (default commands): Do not create links in fixinc.
13716         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
13717         the fixincludes configuration steps and substituting
13718         @FIXINCL@ in fixinc.in.
13719         * fixinc.in: New, from fixinc/fixincl.sh.
13720
13721         * fixinc/*: Removed.
13722
13723 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13724
13725         * attribs.c (strip_attrs): Remove.
13726         (split_specs_attrs): Move ...
13727         * c-decl.c: ... to here.
13728         * tree.h (split_specs_attrs, strip_attrs): Remove.
13729         * c-tree.h (split_specs_attrs): Declare.
13730
13731 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
13732
13733         * read-rtl.c: Disable RTL checking.
13734         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
13735
13736 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
13737
13738         * config/mips/mips.md (fcond): New code macro and attribute.
13739         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
13740         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
13741         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
13742
13743 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
13744
13745         Revert:
13746         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
13747         PR rtl-optimization/16590
13748         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
13749
13750 2004-08-30  Andrew Pinski  <apinski@apple.com>
13751
13752         * hard-reg-set.h:
13753         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
13754         * ChangeLog: Fix previous ChangeLog entry.
13755
13756         PR rtl-opt/13987
13757         * config.host (use_long_long_for_widest_fast_int): New, default is
13758         off.
13759         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
13760         * configure.ac: If use_long_long_for_widest_fast_int, then
13761         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
13762         * configure: Regenerate.
13763         * config.in: Regenerate.
13764         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
13765         New: widest integer type supported efficiently in hardware for the
13766         host.
13767         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
13768         HOST_BITS_PER_WIDEST_FAST_INT.
13769         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
13770         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
13771         HOST_WIDEST_FAST_INT
13772         instead of HOST_WIDE_INT.
13773         (HARD_REG_SET_LONGS): Likewise.
13774         (UHOST_BITS_PER_WIDE_INT): Likewise.
13775         Change the checks for the fast cases to be based on
13776         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
13777
13778 2004-08-30  Steven Bosscher  <stevenb@suse.de>
13779
13780         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
13781         not the pointers.
13782
13783 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
13784
13785         PR 12738
13786         PR 17205
13787         Radar 3460526
13788         Radar 3775729
13789         * c-decl.c (grokdeclarator): Produce error for 'static' on local
13790         function declaration.
13791
13792 2004-08-30  Richard Henderson  <rth@redhat.com>
13793
13794         * expr.c (array_ref_element_size): Force aligned_size back to
13795         sizetype.
13796         (component_ref_field_offset): Similarly for aligned_offset.
13797         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
13798         low-bound, element-size, field-offset fields rather than
13799         computed values.
13800
13801 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
13802
13803         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
13804         redundant code.
13805
13806 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
13807
13808         * c-tree.h (struct language_function): Add arg_info element.
13809         * c-decl.c (current_function_arg_info): New.
13810         (grokdeclarator, store_parm_decls): Use it instead of
13811         DECL_ARGUMENTS.
13812         (c_push_function_context, c_pop_function_context): Save and
13813         restore it.
13814
13815 2004-08-30  Richard Henderson  <rth@redhat.com>
13816
13817         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
13818         COMPONENT_REF to pointer arithmetic.
13819         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
13820         constant "c" as a valid constant initializer.  Allow narrowing of
13821         differences against the same base object, for any base object.
13822
13823 2004-08-30  Richard Henderson  <rth@redhat.com>
13824
13825         * expr.c (expand_expr_addr_expr): New.
13826         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
13827
13828 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
13829
13830         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
13831         (mips_fp_condition): New enum.
13832         (mips_fp_conditions): New array.
13833         (print_fcc_operand): Delete.
13834         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
13835         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
13836         (builtin_description): Add "cond" field.
13837         (DIRECT_BUILTIN): Initialize it.
13838         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
13839         into INSN and CODE.  Initialize the "cond" field.
13840         (CMP_BUILTINS): Update accordingly.
13841         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
13842         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
13843         mips_fp_condition as argument.  Make it the final operand of the
13844         comparison instruction.
13845         (mips_expand_builtin): Update accordingly.
13846         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
13847         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
13848         the gaps.
13849         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
13850         Don't use the 'Q' operand prefix; just print the operand normally.
13851         (mips_cabs_*, mips_c_*): Delete, replacing with...
13852         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
13853         patterns.  Split the 4s versions into 2 ps patterns after reload.
13854
13855 2004-08-30  Richard Henderson  <rth@redhat.com>
13856
13857         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
13858         assuming an ADDR_EXPR is non-null.
13859
13860 2004-08-30  Jason Merrill  <jason@redhat.com>
13861
13862         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
13863
13864 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
13865
13866         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
13867         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
13868         gcc_assert and gcc_unreachable instead of abort.
13869         * alloc-pool.c (abort, fancy_abort): Remove.
13870         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
13871         gcc_assert or gcc_unreachable.
13872         * attribs.c (init_attributes, decl_attributes): Likewise.
13873         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
13874         mark_bb_for_unlikely_executed_section,
13875         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
13876         fix_crossing_unconditional_branches):  Likewise.
13877         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
13878         bitmap_operation):  Likewise.
13879         * bt-load.c (insn_sets_btr_p, augment_live_range,
13880         move_btr_def):  Likewise.
13881         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
13882         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
13883         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
13884         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
13885         expand_builtin_memcmp, expand_builtin_args_info,
13886         std_gimplify_va_arg_expr, expand_builtin_unop,
13887         expand_builtin_fputs, expand_builtin_profile_func,
13888         expand_builtin_fork_or_exec, fold_builtin_bitop,
13889         fold_builtin_classify, fold_builtin_fputs): Likewise.
13890
13891 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
13892
13893         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
13894         * gcov.c (abort): Remove undef.
13895
13896         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
13897         (struct tree_binfo): Remove primary field.
13898
13899 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
13900
13901         * fixinc/Makefile.in (machname.h): Remove.
13902         (fixincl.x): Do not pass $@ to genfixes.
13903         * fixinc/genfixes: Remove code to produce machname.h.
13904         * fixinc/fixincl.sh: Move it here instead.
13905         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
13906         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
13907         return a bool indicating whether pz_mn_name_pat is NULL.
13908         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
13909         Declare extern C variables for the ENV_TABLE.
13910         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
13911         instead use the result of mn_get_regexps.
13912         * fixinc/fixtests.c: Likewise.
13913
13914 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
13915
13916         * configure.ac: Do not run fixincludes after stage1 during
13917         toplevel bootstrap.
13918         * configure: Regenerate.
13919
13920 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
13921
13922         * sched-deps.c (get_condition): Partially revert previous, by never
13923         trying to extract the condition from a condjump.
13924
13925 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
13926
13927         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
13928         (handle_visibility_attribute, c_determine_visibility): Likewise.
13929         * c-common.h (my_friendly_assert): Remove.
13930
13931 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
13932
13933         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
13934         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
13935         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
13936         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
13937         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
13938
13939 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
13940
13941         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
13942         in COMPONENT_REF nodes.
13943
13944 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13945
13946         PR c++/15378
13947         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
13948         global_dc->warning_as_error_requested.
13949         * diagnostic.c (diagnostic_initialize): Tidy.
13950         * diagnostic.h (diagnostic_context::x_data): Remove
13951         (diagnostic_context::issue_warnings_are_errors_message): Rename
13952         from warnings_are_errors_message.
13953         (diagnostic_context::warning_as_error_requested): New.
13954
13955 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
13956
13957         * sched-deps.c (get_condition): Fix breakage in previous patch.
13958
13959 2004-08-30  Paul Brook  <paul@codesourcery.com>
13960
13961         * doc/install.texi: Fix broken mpfr link.
13962
13963 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
13964
13965         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
13966         other FreeBSD platforms.
13967
13968 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
13969
13970         * arm.h (REVERSE_CONDITION): Define.
13971         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
13972
13973 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
13974
13975         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
13976         just the codes, call reversed_comparison_code ().
13977         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
13978         (not_reg_cond): Use reversed_comparison_code.
13979         (and_reg_cond): Likewise.
13980         * ifcvt.c (cond_exec_process_if_block): Likewise.
13981         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
13982
13983 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
13984
13985         * sched-deps.c (get_condition): Rewrite using jump support functions.
13986         Use reversed_comparison_code.
13987         (conditions_mutex_p): Use reversed_comparison_code.
13988
13989 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
13990
13991         * config/mips/mips.c (override_options): Disable hot/cold partitioning
13992         for MIPS16.
13993
13994 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
13995
13996         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
13997         (mips_function_type): Move to mips.c.
13998         * config/mips/mips.c (mips_builtin_type): New enum.
13999         (builtin_description): Replace code and ftype with builtin_type
14000         and function_type.
14001         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
14002         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
14003         (CODE_FOR_mips_abs_ps): Define.
14004         (mips_bdesc): Use new macros.
14005         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
14006         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
14007         (mips_expand_builtin_direct): New function.
14008         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
14009         builtin.  Replace boolean parameter with builtin_type.
14010         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
14011         (mips_expand_4s_compare_builtin): Delete, replacing with...
14012         (mips_expand_builtin_compare): ...this new function.
14013
14014 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14015
14016         PR rtl-optimization/16590
14017         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14018
14019 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14020
14021         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
14022         * tree-ssa-propagate.c: Fix documentation.
14023
14024 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14025
14026         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
14027         (mov[sd]fcc): Likewise.
14028
14029 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14030
14031         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
14032
14033 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14034
14035         * config/mips/mips.md (divide_condition): New mode attribute.
14036         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
14037         (sqrt[sd]f3): Redefine using SCALARF.
14038         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
14039         patterns.
14040
14041 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14042
14043         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
14044         (loadx, storex, fmt, UNITMODE): New mode attributes.
14045         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
14046         (mul[sd]f3): Redefine using :SCALARF.
14047         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
14048         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
14049         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
14050         Check TARGET_FUSED_MADD for V2SF too.
14051         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
14052         were already named.
14053         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
14054         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
14055
14056 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14057
14058         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
14059         V2SF_type_node if it will be needed.
14060
14061 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14062
14063         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
14064         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
14065         (mips_prepare_builtin_target): New function.
14066         (mips_expand_builtin): Use them.  Update calls to subroutines.
14067         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
14068         cmp_choice with a boolean argument to select between movt and movf.
14069         Take the comparison's icode as an argument, not the function's fcode.
14070         (mips_expand_compare_builtin): New function.  Rename existing function
14071         to mips_expand_scalar_compare_builtin.
14072         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
14073         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
14074         comparison's icode as an argument, not the builtin's fcode.
14075
14076 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14077
14078         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
14079         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
14080         registers are false and -1 if all registers are true.
14081         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
14082         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
14083         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
14084         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
14085         (bc1any2t, bc1any2f): Likewise CCV2.
14086         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
14087
14088 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14089
14090         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
14091         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
14092         UNSPEC rather than an IF_THEN_ELSE.
14093         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
14094         mips_cond_move_tf_ps by name.
14095
14096 2004-08-29  Chao-ying Fu  <fu@mips.com>
14097             James E Wilson  <wilson@specifixinc.com>
14098
14099         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
14100         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
14101         * config/mips/mips-ps-3d.md: New file.
14102         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
14103         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14104         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
14105         (mips_output_move): Emit "mov.ps" for V2SFmode.
14106         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
14107         MODE_VECTOR_FLOAT.
14108         (override_options): Check if TARGET_MIPS3D and there was an explicit
14109         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
14110         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
14111         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
14112         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
14113         and allow CCV2 and CCV4 to occupy two and four CC registers.
14114         (print_fcc_operand): New function.
14115         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
14116         %Z to call print_fcc_operand.
14117         (mips_function_value): Handle MODE_VECTOR_FLOAT.
14118         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
14119         (mips_vector_mode_supported_p): New function.
14120         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
14121         (builtin_description): New struct.
14122         (mips_bdesc): New array of struct builtin_description.
14123         (mips_expand_builtin, mips_init_builtins,
14124         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
14125         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
14126         functions.
14127         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
14128         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
14129         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
14130         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
14131         "-mips3d", and "-mno-mips3d".
14132         (ASM_SPEC): Map -mips3d to -mips3d in gas.
14133         (EXTRA_CONSTRAINT_Y): New macro.
14134         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
14135         multi-letter constraint 'Y'.
14136         (CONSTRAINT_LEN): New macro.
14137         (enum mips_builtins): New for MIPS builtin functions.
14138         (enum mips_function_type): New for the types of MIPS builtin functions.
14139         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
14140         * config/mips/mips.md: New constants for paired single and MIPS-3D
14141         instructions.  Include the new mips-ps-3d.md file.
14142         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
14143         movv2sf_hardfloat_64bit): New named patterns.
14144         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
14145         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
14146         sdxc1_v2sf_di): New unnamed patterns.
14147         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
14148         const_vector support.
14149         (const_0_or_1_operand): New predicate.
14150         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
14151
14152 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14153
14154         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
14155         (tree-ssa-propagate.o): New rule.
14156         (GTFILES): Add tree-ssa-propagate.c.
14157         * tree-flow.h (struct stmt_ann_d): Remove field
14158         in_ccp_worklist.
14159         * tree-ssa-propagate.c: New file.
14160         * tree-ssa-propagate.h: New file.
14161         * tree-ssa-ccp.c: Re-write to use the routines from
14162         tree-ssa-propagate.c.
14163
14164 2004-08-28  Andrew Pinski  <apinski@apple.com>
14165
14166         * tree-ssa-loop.c: Remove extra include of basic-block.h.
14167
14168 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
14169
14170         * c-common.h: Update comments about ObjC/ObjC++ entry points.
14171         (objc_is_reserved_word): New prototype.
14172         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
14173         separate section; these are call-backs.
14174         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
14175         ObjC/ObjC++ "@" keywords.
14176         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
14177         prototypes; they already live in c-common.h.
14178         * stub-objc.c: Update copyright notice.
14179         (objc_is_reserved_word): New stub.
14180
14181 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
14182
14183         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
14184         even when not checking.
14185
14186 2004-08-27  Jason Merrill  <jason@redhat.com>
14187
14188         PR c++/13684
14189         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
14190         (gimple_push_cleanup): Add eh_only parm.
14191         (gimplify_target_expr): Pass it.
14192         * c.opt (-fno-threadsafe-statics): New option.
14193         * c-opts.c (c_common_handle_option): Handle it.
14194         * c-common.h (flag_threadsafe_statics): Declare it.
14195         * c-common.c (flag_threadsafe_statics): Record it.
14196         * doc/invoke.texi: Document it.
14197         * tsystem.h (_GNU_SOURCE): Define.
14198         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
14199         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
14200         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
14201         (__gthread_recursive_mutex_init_function): New fn.
14202         (__gthread_recursive_mutex_lock): New fn.
14203         (__gthread_recursive_mutex_trylock): New fn.
14204         (__gthread_recursive_mutex_unlock): New fn.
14205         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
14206         * gthr-win32.h, gthr-vxworks.h: Likewise.
14207         * gthr.h: Document.
14208
14209 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
14210
14211         * config/rs6000/rs6000.c (rs6000_override_options): Increase
14212         maximum skip to 15.  Set function alignment, jump alignment, and
14213         loop alignment to 16 for processors that form dispatch groups.
14214         (rs6000_rtx_costs): outer_code is used.
14215
14216 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14217
14218         * stor-layout.c (sizetype_set): Remove.
14219         (set_sizetype): Don't test or set it.
14220
14221         * tree.h (size_int_type): Remove.
14222         * fold-const.c: Do not #include gt-fold-const.h.
14223         (size_htab_hash, size_htab_eq): Remove.
14224         (size_int_kind): Use build_int_cst.
14225         (new_const, size_htab): Remove.
14226         (size_int_type): Remove.
14227         (round_up): Use build_int_cst.
14228         (round_down): Likewise. Remove spurious constant build.
14229
14230 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14231
14232         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
14233         Add is_release variable, use it for --enable-werror and
14234         --enable-checking defaults.
14235         * system.h (gcc_assert, gcc_unreachable): New.
14236         * doc/install.texi (--enable-checking): Update.
14237         * configure, config.in: Rebuilt.
14238
14239 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
14240
14241         * rtl.h (read_rtx): Change prototype.
14242         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
14243         line number.  Return true on success.
14244         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
14245         callers accordingly.
14246
14247 2004-08-26  Richard Henderson  <rth@redhat.com>
14248
14249         * c-typeck.c (build_offsetof): Remove.
14250         * c-tree.h (build_offsetof): Remove.
14251         * c-common.c (fold_offsetof_1, fold_offsetof): New.
14252         * c-common.h (fold_offsetof): Declare.
14253         * c-parse.in (offsetof_base): New.
14254         (offsetof_member_designator): Use it.  Build references, not just
14255         a tree list.
14256         (primary): Use fold_offsetof, not build_offsetof.
14257
14258 2004-08-26  Richard Henderson  <rth@redhat.com>
14259
14260         * tree.c (staticp): Return the static object.
14261         * tree.h (staticp): Update decl.
14262         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
14263         * langhooks.c (lhd_staticp): Return NULL_TREE.
14264         * langhooks-def.h (lhd_staticp): Update decl.
14265         * c-common.c (c_staticp): Return the static object.
14266         * c-common.h (c_staticp): Update decl.
14267
14268 2004-08-26  Richard Henderson  <rth@redhat.com>
14269
14270         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
14271         modes.
14272
14273 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
14274
14275         PR c/13801
14276         * c-decl.c (struct c_binding): Add type and inner_comp fields.
14277         (bind): Set type and inner_comp fields.
14278         (pop_scope): Restore type of decl to the correct type from an
14279         outer scope.  Give error when popping file scope for incomplete
14280         arrays completed incompatibly with default initialization in an
14281         inner scope.
14282         (diagnose_mismatched_decls): Handle externs with initializers at
14283         block scope.
14284         (pushdecl): Set type of external declaration at block scope based
14285         only on the visible declarations.  Save type when changing the
14286         type of a declaration.  Merge an external declaration at block
14287         scope with a visible static declaration at file scope.
14288         (implicitly_declare): Give recycled old declaration the new type
14289         except for incompatible declarations of built-in functions, saving
14290         the old type.
14291
14292 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
14293
14294         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
14295
14296 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
14297
14298         * tree-alias-common.c (gate_pta): New function.
14299         (pass_build_pta): Use it.
14300         (pass_del_pta): Use it.
14301         (delete_alias_vars): Don't check flag_tree_points_to.
14302
14303 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14304
14305         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
14306         TFmode as additional register mode cloberred by call.
14307
14308 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14309
14310         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
14311         parallel pattern for library call returning DImode in
14312         mixed mode.
14313
14314 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14315
14316         * config/rs6000/rs6000.c (function_arg): Generate parallel
14317         pattern for more split args.
14318
14319 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14320
14321         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
14322         either gen_movdi_di_update or gen_movdi_si_update depending on
14323         target mode.
14324         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
14325         to generate two versions.
14326
14327 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
14328
14329         * Makefile.in (lambda-code.o): New.
14330         (lambda-trans.o): Ditto.
14331         (TREE_DATA_REF_H): Ditto.
14332         (LAMBDA_H): Ditto.
14333         (lambda-mat.o): Use LAMBDA_H.
14334         (tree-data-ref.o): Ditto.
14335         * lambda-code.c: New file.  Lambda code generation algorithm.
14336         * lambda-trans.c: Ditto. Lambda transformation matrix support.
14337         * lambda.h: Add lambda loop structures.
14338         Add lambda loopnest structures.
14339         Add lambda body vector structure.
14340         Add lambda linear expression structures.
14341         Add prototypes for functions in new files.
14342         * lambda-mat.c: Include tree.h
14343
14344 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
14345             Sebastian Pop  <pop@cri.ensmp.fr>
14346
14347         * tree-data-ref.h: Include lambda.h
14348         (free_dependence_relation): Declared here.
14349         (free_dependence_relations): Ditto.
14350         (free_data_refs): Ditto.
14351         * tree-data-ref.c (free_dependence_relation): New function.
14352         (free_dependence_relations): Ditto.
14353         (free_data_refs): Ditot.
14354         (analyze_all_data_dependences): Free datarefs and dependence_relations.
14355         (build_classic_dist_vector): Store in the dependence_relations the
14356         information. Each arc in the dependence_relations graph is labelled
14357         with the distance and direction vectors.
14358         (build_classic_dir_vector): Ditto.
14359         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
14360         Now computes again the whole dependence graph including read-read
14361         relations.
14362         (compute_data_dependences_for_loop): Now dependence_relations contains
14363         all the data, and thus it doesn't need to initialize the classic_dir
14364         and classic_dist vectors.
14365         (analyze_all_data_dependences): Adjusted for using the new interface of
14366         compute_data_dependences_for_loop.  Remove the statistics dump.
14367
14368 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
14369
14370         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
14371         (xtensa_expand_block_move): Update comment.
14372         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
14373
14374 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
14375
14376         PR target/13506
14377         * toplev.c (crash_signal): If we crashed while emitting
14378         a user asm, then die more gracefully.
14379
14380 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14381
14382         PR target/17119.
14383         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
14384         checking for a valid constant, regardless of sign.
14385
14386 2004-08-25  Richard Henderson  <rth@redhat.com>
14387
14388         PR target/16974
14389         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
14390         if the constant satisfies add_operand.
14391
14392 2004-08-25  Richard Henderson  <rth@redhat.com>
14393
14394         PR debug/10695
14395         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
14396         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
14397         unwind info for >16-bit frames.
14398
14399 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
14400
14401         PR target/17171
14402         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
14403
14404 2004-08-25  Richard Henderson  <rth@redhat.com>
14405
14406         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
14407         (TARGET_CANNOT_FORCE_CONST_MEM): New.
14408
14409 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
14410
14411         * doc/tree-ssa.texi: Document new operand iterator.
14412
14413 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
14414
14415         PR target/16480
14416         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
14417         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
14418         as PLUS base regs.
14419
14420 2005-08-28  Paul Brook  <paul@codesourcery.com>
14421
14422         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
14423         -mfpu=vfp -march=armv5t
14424         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
14425
14426 2004-08-25  Richard Henderson  <rth@redhat.com>
14427
14428         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
14429         * target.h (struct gcc_target): Add scalar_mode_supported_p.
14430         * targhooks.c (default_scalar_mode_supported_p): New.
14431         * targhooks.h (default_scalar_mode_supported_p): Declare.
14432         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
14433
14434         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
14435         before attempting to create types.  Tidy.
14436         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
14437
14438         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
14439         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
14440
14441 2004-08-25  Richard Henderson  <rth@redhat.com>
14442
14443         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
14444         set REAL_MODE_FORMAT for TFmode.
14445
14446 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
14447
14448         * c-decl.c (grokparm): New function.
14449         * c-tree.h (grokparm): New prototype.
14450
14451 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
14452
14453         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
14454         iterator controlling structure.
14455         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
14456         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
14457         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
14458         iterator flags.
14459         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
14460         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
14461         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
14462         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
14463         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
14464         Empty operand pointers.
14465         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
14466         (op_iter_next_use): New.  Return next use_operand_p.
14467         (op_iter_next_def): New.  Return next def_operand_p.
14468         (op_iter_next_tree): New.  Return next operands as a tree.
14469         (op_iter_init): New.  Initialize an iterator structure.
14470         (op_iter_init_use): New.  Initialize structure and get the first use.
14471         (op_iter_init_def): New.  Initialize structure and get the first def.
14472         (op_iter_init_tree): New.  Initialize structure and get the first tree.
14473         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
14474         (op_iter_init_maydef): New.  Initialize structure and get the first
14475         V_MAY_DEF operands.
14476         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
14477         * tree-dfa.c (compute_immediate_uses_for_stmt,
14478         redirect_immediate_uses): Use new operand iterator.
14479         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
14480         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
14481         operands instead of using *_disappeared_p routines.
14482         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
14483         ssa_rewrite_stmt): Use new operand iterator.
14484         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
14485         rewrite_trees): Use new operand iterator.
14486         * tree-pretty-print.c (dump_vops): Use new operand iterator.
14487         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
14488         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
14489         dump_points_to_info): Use new operand iterator.
14490         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
14491         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
14492         operand iterator.
14493         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
14494         propagate_necessity): Use new operand iterator.
14495         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
14496         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
14497         a parameter instead of a stmt_ann_t.
14498         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
14499         build_tree_conflict_graph): Use new operand iterator.
14500         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
14501         rewrite_mem_refs): Use new operand iterator.
14502         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
14503         check_loop_closed_ssa_use): Use new operand iterator.
14504         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
14505         * tree-ssanames.c (release_defs): Use new operand iterator.
14506         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
14507
14508 2004-08-25  Adam Nemet  <anemet@lnxw.com>
14509
14510         * tlink.c (initial_cwd): New variable.
14511         (tlink_init): Initialize it.
14512         (recompile_files): Use tlink_execute() instead of system().  Don't
14513         duplicate verbose output of collect_execute.  Restore initial_cwd.
14514         Update comment before the function.
14515
14516 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
14517
14518         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
14519         accept) a cast from one Objective-C pointer type to another.
14520
14521 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
14522
14523         * doc/install.texi: Document that libstdc++-v3 requires
14524         now automake 1.9.1.
14525
14526 2004-08-25  Caroline Tice  <ctice@apple.com>
14527
14528         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
14529         to comments at start of function.
14530         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
14531         comment.
14532         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
14533         merge_blocks_move_predecessor_nojumps,
14534         merge_blocks_move_successor_nojumps, merge_blocks_move,
14535         try_crossjump_to_edge, try_crossjump_bb): Likewise.
14536         * cfglayout.c (fixup_reorder_chain): Likewise.
14537         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
14538         cfg_layout_can_merge_blocks_p):  Likewise.
14539         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
14540         * passes.c (rest_of_compilation): Update comments for calling
14541         optimization that partitions hot/cold basic blocks.
14542         * doc/invoke.texi:  Update documentation of
14543         freorder-blocks-and-partition flag.
14544
14545 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
14546
14547         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
14548         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
14549
14550 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
14551
14552         * config/mips/mips.md (any_shift): New code macro.
14553         (optab, insn): New code attributes.
14554         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
14555         Use the standard rather than internal patterns for the MIPS16
14556         double-shift optimization.
14557         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
14558         Redefine using :GPR and any_shift.
14559         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
14560         to cover all three shifts.
14561         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
14562         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
14563         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
14564
14565 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
14566
14567         * gimplify.c (lookup_tmp_var): Separate temporaries when not
14568         optimizing.
14569
14570 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14571
14572         PR libstdc++/17005 (fix for HP-UX 11.11)
14573         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
14574         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
14575         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
14576         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
14577         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
14578         (LINK_SPEC): Handle march=1.0 option.
14579         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
14580         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
14581         (SUBTARGET_OPTIONS): New define.
14582         (LINK_SPEC): Handle march=1.0 option.
14583         (STARTFILE_SPEC): New define.
14584         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
14585         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
14586         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
14587         (SUBTARGET_OPTIONS): New define.
14588         (LINK_SPEC): Handle march=1.0 option.
14589         (STARTFILE_SPEC): New define.
14590         * config/pa/pa.c (override_options): Add code to process -munix= option.
14591         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
14592         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
14593         defines.
14594         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
14595         (SUBTARGET_OPTIONS): Provide default define.
14596         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
14597         STANDARD_STARTFILE_PREFIX_2): New defines.
14598         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
14599         (ENDFILE_SPEC): Use %O.
14600         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
14601         Mention issue caused by changing namespace and runtime to UNIX 95/98.
14602         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
14603         Document -munix=std option.
14604
14605 2004-08-25  Steven Bosscher  <stevenb@suse.de>
14606
14607         * cse.c (cse_around_loop, cse_check_loop_start,
14608         cse_set_around_loop): Remove.
14609         (cse_basic_block): Remove the around_loop argument.
14610         (cse_end_of_basic_block): Remove the after_loop argument.
14611         (cse_main): Likewise.
14612         * rtl.h (cse_main): Update prototype.
14613         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
14614         rest_of_handle_gcse): Update cse_main calls.
14615
14616 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14617
14618         * tree.h  (build_int_cst): New, sign extended constant.
14619         (build_int_cstu): New, zero extended constant.
14620         (build_int_cst_wide): Renamed from build_int_cst.
14621         * tree.c (build_int_cst, build_int_cstu): New.
14622         (build_int_cst_wide): Renamed from build_int_cst.
14623         (make_vector_type, build_common_tree_nodes,
14624         build_common_tree_nodes_2): Adjust build_int_cst calls.
14625         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
14626         expand_builtin_strpbrk, expand_builtin_fputs,
14627         build_string_literal, expand_builtin_printf,
14628         expand_builtin_sprintf, fold_builtin_classify_type,
14629         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
14630         fold_builtin_toascii, fold_builtin_isdigit,
14631         simplify_builtin_strstr, simplify_builtin_strpbrk,
14632         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
14633         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
14634         DEF_ATTR_INT): Likewise.
14635         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
14636         Likewise.
14637         * c-lex.c (interpret_integer, lex_charconst): Likewise.
14638         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
14639         * c-pretty-print.c (pp_c_integer_constant): Likewise.
14640         * c-typeck.c (really_start_incremental_init, push_init_level,
14641         set_nonincremental_init_from_string): Likewise.
14642         * calls.c (load_register_parameters): Likewise.
14643         convert.c (convert_to_pointer): Likewise.
14644         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
14645         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
14646         build_gcov_info): Likewise.
14647         * except.c (init_eh, assign_filter_values): Likewise.
14648         * expmed.c (store_fixed_bit_field, extract_bit_field,
14649         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
14650         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
14651         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
14652         * expr.c (convert_move, emit_group_load, emit_group_store,
14653         expand_assignment, store_constructor, store_field,
14654         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
14655         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
14656         invert_truthvalue, optimize_bit_field_compare,
14657         decode_field_reference, all_ones_mask_p, constant_boolean_node,
14658         fold_div_compare, fold, fold_read_from_constant_string,
14659         fold_negate_const, fold_abs_const, fold_not_const, round_up,
14660         round_down): Likewise.
14661         * function.c (assign_parm_setup_block): Likewise.
14662         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
14663         Likewise.
14664         * stor-layout.c (layout_type, initialize_sizetypes,
14665         set_min_and_max_values_for_integral_type): Likewise.
14666         * tree-chrec.c (chrec_fold_multiply_poly_poly,
14667         reset_evolution_in_loop): Likewise.
14668         * tree-chrec.h (build_polynomial_chrec): Likewise.
14669         * tree-complex.c (build_replicated_const): Likewise.
14670         * tree-eh.c (honor_protect_cleanup_actions,
14671         lower_try_finally_onedest, lower_try_finally_copy,
14672         lower_try_finally_switch): Likewise.
14673         * tree-mudflap.c (mf_build_string, mx_register_decls,
14674         mudflap_register_call, mudflap_enqueue_constant): Likewise.
14675         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
14676         * tree-pretty-print.c (dump_generic_node): Likewise.
14677         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
14678         Likewise.
14679         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
14680         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14681         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
14682         Likewise.
14683         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
14684         canonicalize_loop_induction_variables): Likewise.
14685         * tree-vectorizer.c (vect_create_index_for_array_ref,
14686         vect_transform_loop_bound, vect_compute_data_ref_alignment):
14687         Likewise.
14688
14689         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
14690         alpha_gimplify_va_arg_1): Likewise.
14691         * config/arm/arm.c (arm_get_cookie_size): Likewise.
14692         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
14693         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
14694         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
14695         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
14696         mips_gimplify_va_arg_expr): Likewise.
14697         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
14698         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
14699         add_compiler_branch_island): Likewise.
14700         * config/s390/s390.c (s390_va_start): Likewise.
14701         * config/sh/sh.c (sh_va_start): Likewise.
14702         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
14703         Likewise.
14704         * config/xtensa/xtensa.c (xtensa_va_start,
14705         xtensa_gimplify_va_arg_expr): Likewise.
14706
14707         * objc/objc-act.c (build_objc_string_object,
14708         build_objc_symtab_template, init_def_list, init_objc_symtab,
14709         init_module_descriptor, generate_static_references,
14710         build_selector_translation_table, get_proto_encoding,
14711         build_typed_selector_reference, build_selector_reference,
14712         build_next_objc_exception_stuff,
14713         build_method_prototype_list_template, generate_descriptor_table,
14714         generate_protocols, build_protocol_initializer,
14715         build_ivar_list_template, build_method_list_template,
14716         build_ivar_list_initializer, generate_ivars_list,
14717         generate_dispatch_table, generate_protocol_list,
14718         build_category_initializer, build_shared_structure_initializer,
14719         generate_shared_structures, handle_impent,
14720         generate_objc_image_info): Likewise.
14721
14722 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
14723
14724         * cfglayout.c (duplicate_insn_chain): Remove references to
14725         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
14726         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
14727         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
14728         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
14729         and NOTE_INSN_LOOP_CONT.
14730         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
14731         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
14732         and NOTE_INSN_LOOP_CONT.
14733         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
14734         check_dbra_loop, loop_dump_aux): Remove references to removed notes
14735         and fields.
14736         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
14737         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
14738         references to removed notes and fields.
14739         (subtract_reg_term, ujump_to_loop_cont): Remove.
14740
14741 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
14742
14743         * doc/install.texi: Document that libcpp does not require
14744         Automake any longer.  Document that Automake 1.9.1 should
14745         work everywhere.
14746
14747 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
14748
14749         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
14750         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
14751         DWARF_DEBUGGING_INFO from choice-of-definition chain;
14752         restructure using C89 features (#elif, #error).
14753         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
14754         * config/sh/sh.h: Remove references to DWARF_DEBUG.
14755         * doc/invoke.texi: Remove references to DWARF version 1;
14756         clarify why -gdwarf-2<n> doesn't work.
14757
14758 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
14759
14760         * basic-block.h (BB_SET_PARTITION): Clear old value first.
14761         * cfg.c (clear_bb_flags): Don't clear partition setting.
14762         * ifcvt.c (find_if_case_1): Remove ??? comment.
14763
14764 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
14765
14766         PR target/17052
14767         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
14768         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
14769         current_function_stdarg in place of sysv_varargs_p.
14770         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
14771         sysv_varargs_p.
14772
14773 2004-08-24  Richard Henderson  <rth@redhat.com>
14774
14775         PR target/16298
14776         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
14777         random codes within CONST.
14778
14779 2004-08-24  James E Wilson  <wilson@specifixinc.com>
14780
14781         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
14782         -freorder-blocks-and-partition.
14783
14784 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14785
14786         PR middle-end/17044
14787         * tree-ssa-threadupdate.c (redirection_data): Make static.
14788         (thread_block): Use ggc_alloc_cleared to allocate struct
14789         redirection_data.  Don't free elements in redirection_data.
14790
14791 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14792
14793         * config/mips/predicates.md (small_data_pattern): Match prefetches.
14794
14795 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14796
14797         PR tree-optimization/17016
14798         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14799         number_of_iterations_exit): Use POINTER_TYPE_P instead
14800         of testing for POINTER_TYPE.
14801
14802 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14803
14804         * tree-ssa-loop-ivcanon.c: New file.
14805         * tree-ssa-loop-manip.c (create_iv): New function.
14806         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
14807         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
14808         * cfgloop.c (mark_single_exit_loops): New function.
14809         (verify_loop_structure): Verify single-exit loops.
14810         * cfgloop.h (struct loop): Add single_exit field.
14811         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
14812         (mark_single_exit_loops): Declare.
14813         (tree_num_loop_insns): Declare.
14814         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
14815         (duplicate_loop_to_header_edge): Use it.
14816         * common.opt (fivcanon): New flag.
14817         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
14818         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
14819         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
14820         (bsi_insert_on_edge_immediate): New function.
14821         * tree-flow.h (bsi_insert_on_edge_immediate,
14822         canonicalize_induction_variables, tree_unroll_loops_completely,
14823         create_iv): Declare.
14824         * tree-optimize.c (init_tree_optimization_passes): Add
14825         pass_iv_canon and pass_complete_unroll.
14826         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
14827         * tree-scalar-evolution.c (get_loop_exit_condition,
14828         get_exit_conditions_rec, number_of_iterations_in_loop,
14829         scev_initialize): Use single_exit information.
14830         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
14831         missing assumptions.
14832         (loop_niter_by_eval):  Return number of iterations as unsigned
14833         int.
14834         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
14835         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
14836         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
14837         New passes.
14838         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
14839         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
14840         the defining statement is ready.
14841         * tree-vectorizer.c (vect_create_iv_simple): Removed.
14842         (vect_create_index_for_array_ref, vect_transform_loop_bound):
14843         Use create_iv.
14844         (vect_transform_loop_bound): Use single_exit information.
14845         (vect_analyze_loop_form): Cleanup bogus tests.
14846         (vectorize_loops): Do not call flow_loop_scan.
14847         * tree.h (may_negate_without_overflow_p): Declare.
14848         * fold-const.c (may_negate_without_overflow_p): Split out from ...
14849         (negate_expr_p): ... this function.
14850         (tree_expr_nonzero_p): Handle overflowed constants correctly.
14851         * doc/invoke.texi (-fivcanon): Document.
14852         * doc/passes.texi: Document canonical induction variable creation.
14853
14854 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14855
14856         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
14857         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
14858         using the mode of the operand to decide between them.
14859         * config/mips/mips.md (MOVECC): New mode macro.
14860         (ccreg): New mode attribute.
14861         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
14862         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
14863         (mov[sd]icc): Redefine using :GPR.
14864
14865 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14866
14867         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
14868         (mips_prefetch_cookie): New function.
14869         * config/mips/mips.c (print_operand_address): Fix handling of
14870         ADDRESS_CONST_INT.
14871         (mips_emit_prefetch): Delete.
14872         (mips_prefetch_cookie): New function.
14873         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
14874         mode of QImode for the address_operand.  Use mips_prefetch_cookie
14875         to calculate the first "pref" operand.
14876         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
14877         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
14878
14879 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
14880
14881         * arm.md: Include predicates.md.
14882         * predicates.md: New file.
14883         * arm.c (s_register_operand, arm_hard_register_operand)
14884         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
14885         (arm_immediate_operand, arm_neg_immediate_operand)
14886         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
14887         (arm_add_operand, arm_addimm_operand, arm_not_operand)
14888         (offsettable_memory_operand, alignable_memory_operand)
14889         (arm_reload_memory_operand, arm_float_rhs_operand)
14890         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
14891         (index_operand, shiftable_operator, logical_binary_operator)
14892         (shift_operator, equality_operator, arm_comparison_operator)
14893         (minmax_operator, cc_register, dominant_cc_register)
14894         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
14895         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
14896         (const_shift_operand, load_multiple_operation)
14897         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
14898         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
14899         (cirrus_register_operand, cirrus_fp_register)
14900         (cirrus_shift_const): Delete, replaced with equivalents in
14901         predicates.md.
14902         (shift_op): Handle ROTATE.
14903         * arm-protos.h: Delete declarations for above.
14904         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
14905         * t-arm (MD_INCLUDES): Add predicates.md.
14906         (s-preds): Depends on MD_INCLUDES.
14907
14908 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14909
14910         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
14911         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
14912         patterns.  Redefine using :GPR.  Give the match_operator a mode.
14913         Use '%2' rather than '%z2' for operand 2.
14914
14915 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14916
14917         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
14918         attribute.
14919
14920 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14921
14922         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
14923         of internal patterns.
14924         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
14925         Redefine using :P.
14926         (tablejump): Use expand_binop to calculate address.  Adjust names
14927         of internal patterns.
14928         (tablejump[sd]i): Renamed from tablejump_internal[12].
14929         Redefine using :P.
14930         (tablejump_mips16[12]): Delete.
14931
14932 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14933
14934         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
14935         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
14936         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
14937         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
14938         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
14939
14940 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14941
14942         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
14943         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
14944         using :GPR.
14945         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
14946         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
14947         (*branch_equality[sd]i_inverted): Likewise
14948         branch_equality{,_di}_inverted.
14949         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
14950         Redefine using :GPR.
14951
14952 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
14953
14954         * rtl.def: Reorganize, placing all codes used only in machine
14955         descriptions at the end.
14956
14957         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
14958         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
14959         rtx_name, rtx_format arrays by direct reference to rtl.def,
14960         first undefining GENERATOR_FILE.  Define enum insn_note and
14961         note_insn_name array by direct reference to insn-notes.def.
14962         (adjust_field_rtx_def): Remove local definition of rtx_name.
14963         Use symbolic names for insn notes.
14964         * Makefile.in (gengtype.o): Update dependencies.
14965
14966 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
14967
14968         * basic-block.h (struct basic_block_def): Reorder fields to
14969         eliminate interior padding.  Remove 'partition' field.
14970         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
14971         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
14972         (BB_COPY_PARTITION): New macros.
14973         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
14974         Replace all references to the 'partition' field of a basic
14975         block with new macros.
14976
14977         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
14978         * final.c (final_scan_insn): Don't handle it.
14979         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
14980         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
14981         * sched-rgn.c (sched_is_disabled_for_current_region_p):
14982         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
14983
14984 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14985
14986         * c-decl.c (c_init_decl_processing): Adjust
14987         build_common_tree_nodes call.
14988         * expmed.c (const_mult_add_overflow_p): Use
14989         build_distinct_type_copy.
14990         * stor-layout.c (early_type_list): Remove.
14991         (layout_type): Don't append to early_type_list.
14992         (initialize_sizetypes): Add signed_p argument.
14993         (set_sizetype): Overwrite the stub type nodes directly.
14994         * tree.c (copy_node_stat): Clear a type's value cache here ...
14995         (build_distinct_type): ... not here.
14996         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
14997         * tree.h (initialize_sizetypes): Add signed_p argument.
14998         (build_common_tree_nodes): Likewise.
14999
15000         * objc/objc-act.c (get_static_reference): Use
15001         build_variant_type_copy.
15002         (get_protocol_reference): Likewise.
15003         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
15004
15005 2004-08-24  Richard Henderson  <rth@redhat.com>
15006             Andrew Pinski  <apinski@apple.com>
15007
15008         * gimplify.c (gimplify_array_ref_to_plus): Delete.
15009         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
15010         for ARRAY_REF.
15011
15012         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
15013         ARRAY_REF also to get to the STRING_CST.
15014
15015 2004-08-24  Paul Brook  <paul@codesourcery.com>
15016
15017         * config/arm/arm.c (arm_override_options): Update error message.
15018         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
15019         TARGET_HARD_FLOAT_ABI.
15020         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
15021         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
15022
15023 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15024
15025         PR target/17093
15026         * config/m32r.md (movsi_sda): Add SI mode specification to
15027         UNSPEC.
15028
15029 2004-08-24  Nick Clifton  <nickc@redhat.com>
15030
15031         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
15032         of seth_add3_operand.
15033
15034 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15035
15036         * Makefile.in (PROTO_OBJS): Add errors.o.
15037         * protoize.c (fancy_abort): Remove.
15038         * mips-tfile.c (fancy_abort): Add parameters.
15039
15040 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
15041
15042         * doc/trouble.texi (C++ misunderstandings): Fix example code.
15043
15044 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
15045
15046         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
15047         (host-default.o): Add dependency on HOOKS_H.
15048         * config/x-linux: Likewise.
15049         * config/x-solaris: Likewise.
15050         * config/i386/x-mingw32: Likewise.
15051         * config/rs6000/x-darwin: Likewise.
15052
15053 2004-08-23  James E Wilson  <wilson@specifixinc.com>
15054
15055         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
15056         DEF_REG_NOTE.
15057
15058 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
15059
15060         PR c/14492
15061         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
15062
15063 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
15064
15065         * cfg.c (check_bb_profile): Fix typos.
15066         * function.c (assign_parm_is_stack_parm): Likewise.
15067         * tree-nested.c: Likewise.
15068
15069 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
15070
15071         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
15072         Remove TYPECODE.
15073         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
15074
15075 2004-08-23  Eric Christopher  <echristo@redhat.com>
15076
15077         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
15078         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
15079         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
15080         * target.h: Ditto.
15081         * hooks.h: Include machmode.h.
15082         (hook_bool_mode_false): Declare.
15083         * hooks.c (hook_bool_mode_false): Define.
15084         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
15085         * stor-layout.c (layout_type): Ditto.
15086         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
15087         Define to target macro.
15088         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
15089         * config/arm/arm.c: Ditto. Use.
15090         * config/arm/arm.h: Ditto.
15091         * config/arm/arm-protos.h: Ditto.
15092         * config/i386/i386.c: Ditto.
15093         * config/i386/i386.h: Ditto.
15094         * config/rs6000/rs6000.c: Ditto.
15095         * config/rs6000/rs6000.h: Ditto.
15096         * config/sh/sh.c: Ditto.
15097         * config/sh/sh.h: Ditto.
15098         * config/sh/sh-protos.h: Ditto.
15099         * config/sh/sh.md: Use.
15100         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
15101         to TARGET_VECTOR_MODE_SUPPORTED_P.
15102
15103 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
15104
15105         * Makefile.in (BUILD_ERRORS): Set to build-errors.
15106         (errors.o): New target for host.
15107         (build-errors.o): New target for build.
15108         (genobjs): Replace errors.o with build-errors.
15109         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
15110         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
15111         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
15112         (fix-header.o): Add errors.h
15113         * collect2.c (fancy_abort): Add parameters.
15114         * collect2.h (fancy_abort): Don't declare.
15115         * errors.h (fancy_abort): Don't declare.
15116         * errors.c: Include either bconfig.h or config.h.
15117         (fancy_abort): Trim filename.
15118         * fix-header.c (v_fatal, fatal): Remove.
15119         (progname): Remove definition.
15120         (main): Set progname here.
15121         * gcc.c (fancy_abort): Add parameters.
15122         * gcc.h (fancy_abort): Remove declaration.
15123         * gcov.c (fancy_abort): Remove.
15124         * rtl.h (fancy_abort): Don't declare.
15125         (abort): Don't define.
15126         * tree.h (fancy_abort): Don't declare.
15127         (abort): Don't define.
15128         * system.h (fancy_abort): Declare.
15129         (abort): Define to fancy_abort.
15130         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
15131
15132         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
15133         (usize_type, ubitsizetype): Remove.
15134         * stor-layout.c (set_sizetype): Don't initialize usizetype,
15135         ubitsizetype.
15136         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
15137
15138         * tree.h (build_distinct_type_copy): New.
15139         (build_type_copy): ... here.  Rename to ...
15140         (build_variant_type_copy): ... here.
15141         * tree.c (build_qualified_type): Rename build_type_copy call.
15142         (build_distinct_type_copy): New, broken out of ...
15143         (build_type_copy): ... here.  Rename to ...
15144         (build_variant_type_copy): ... here.  Use
15145         build_distinct_type_copy.
15146         (build_common_tree_nodes_2): Rename build_type_copy call.
15147         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
15148         call.
15149         (handle_packed_attribute, handle_unused_attribute,
15150         handle_transparanet_union_attribute, handle_aligned_attribute,
15151         handle_deprecated_attribute): Likewise.
15152         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
15153         Likewise.
15154         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
15155         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
15156         build_distinct_type_copy.
15157
15158 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15159
15160         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
15161         attribute.
15162
15163 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15164
15165         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
15166         loads and stores.
15167         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
15168         formerly unnamed patterns.  Redefine using :P for the address.  Remove
15169         explicit length attributes.
15170
15171 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15172
15173         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
15174         New functions.
15175         (single_reachable_address): Use them.
15176         (schedule_sm): Add dump.
15177         (is_call_clobbered_ref): New function.
15178         (determine_lsm_reg): Check whether the reference is call clobbered.
15179         Only work for gimple_reg_type values.
15180
15181 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15182
15183         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
15184         $31 store insns.  Redefine using :GPR.
15185
15186 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15187
15188         * config/mips/mips.md (P): New mode macro.
15189         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
15190         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
15191         Add mode attributes.
15192
15193 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15194
15195         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
15196         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
15197         later constants to cover the gap.
15198         (load, store): New mode attributes.
15199         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
15200         Use new unspec constants.
15201
15202 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15203
15204         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
15205         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
15206         to use register_operand rather than uns_arith_operand as the predicate
15207         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
15208         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
15209         Redefine using :GPR.  Make same predicate change here.  Extend the
15210         commutativity of operands 1 and 2 from the SImode version to the
15211         DImode one.
15212         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
15213         but with no predicate changes.
15214         (*nor[sd]i3): Redefine using :GPR.
15215
15216 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15217
15218         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
15219         noreturn functions.
15220
15221 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15222
15223         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
15224         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
15225         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
15226         rather than "%z2" (with a fake const0_rtx for operand 2).
15227         (ffs[sd]i2): Redefine using :GPR.
15228         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
15229
15230 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15231
15232         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
15233
15234 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15235
15236         * config/mips/mips.md (any_extend): New code macro.
15237         (u, su): New code attributes.
15238         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
15239         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
15240         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
15241         (*{s,u}mul_acc_di): Redefine using any_extend.
15242         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
15243         to reflect real insn names.
15244         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
15245         with an any_extend template.
15246         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
15247         Add '*' to name.
15248
15249 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15250
15251         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
15252         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
15253         (mul[sd]i3_r4000): Redefine using :GPR.
15254         (mulsi3_mult3): Don't check TARGET_MAD separately.
15255         (muldi3_mult3): Moved after mulsi_mult3.
15256
15257 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15258
15259         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
15260         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
15261         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
15262         (TARGET_GAS, TARGET_MIPS_AS): Delete.
15263         (TARGET_GPWORD): Define to true for n32 on IRIX.
15264         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
15265         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
15266         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
15267         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
15268         (MDEBUG_ASM_SPEC): Delete, folding into...
15269         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
15270         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
15271         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
15272         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
15273         to define asm_abi_default_spec.
15274         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
15275         (TARGET_ASM_SELECT_SECTION): Delete.
15276         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
15277         for non-mips16 code, removing previous workaround for SGI assemblers.
15278         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
15279         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
15280         (override_options): Remove !TARGET_GAS and !have_named_sections code.
15281         (print_operand): Fold TARGET_GAS conditionals into asm strings.
15282         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
15283         ASM_STABS_OP and ASM_STABN_OP.
15284         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
15285         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
15286         (mips_output_function_prologue): Remove !TARGET_GAS code.
15287         (mips_select_rtx_section): Remove !have_named_sections code.
15288         (mips_select_section): Delete.
15289         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
15290         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
15291         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
15292         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
15293         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
15294         * config/mips/windiss.h (ASM_SPEC): Likewise.
15295
15296 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15297
15298         * read-rtl.c (map_value, mapping, macro_group): New structures.
15299         (BELLWETHER_CODE): New macro.
15300         (modes, codes, bellwether_codes): New variables.
15301         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
15302         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
15303         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
15304         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
15305         (add_map_value, initialize_macros): New functions.
15306         (def_hash, def_hash_eq_p): Generalize to anything that points to,
15307         or starts with, a char * field.
15308         (find_macro, read_mapping, check_code_macro): New functions.
15309         (read_rtx_1): New, split out from read_rtx.  Handle the new
15310         define_{mode,code}_{macro,attr} constructs.  Use find_macro
15311         to parse the name of a code or mode.  Use BELLWETHER_CODE to
15312         extract the format and to choose a suitable code for rtx_alloc.
15313         Modify recursive invocations to use read_rtx_1.
15314         (read_rtx): Call initialize_macros.  Apply code and mode macros
15315         to the rtx returned by read_rtx_1.  Cache everything after the
15316         first macro expansion for subsequent read_rtx calls.
15317         * doc/md.texi: Document new .md constructs.
15318         * config/mips/mips.md (GPR): New mode macro.
15319         (d, si8_di5): New mode attributes.
15320         (any_cond): New code macro.
15321         (add[sd]i3): Redefine using :GPR.
15322         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
15323         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
15324         previously unnamed MIPS16 patterns.
15325         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
15326         lines.  Don't match (plus (const_int 0) ...).
15327         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
15328         Use a define_split to generate the addition.
15329         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
15330         (subsi3_internal): Delete.
15331         (*subsi3_extended): Renamed from subsi3_internal_2.
15332         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
15333         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
15334         using an any_cond template.
15335
15336 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15337
15338         * read-rtl.c (read_rtx): Tidy use of format_ptr.
15339
15340 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15341
15342         * read-rtl.c (string_obstack): New file-scope variable.
15343         (read_string, read_quoted_string, read_braced_string)
15344         (read_escape): Remove obstack parameter and use string_obstack instead.
15345         (read_rtx): Remove function-local rtl_obstack and initialize
15346         string_obstack instead.  Update call to read_string.
15347
15348 2004-08-22  Andrew Pinski  <apinski@apple.com>
15349
15350         PR c/15262
15351         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
15352         expression is not constant.
15353         (c_finish_return): Do not go through INDIRECT_REF when looking
15354         for the inner expression of an ADDR_EXPR for warning about.
15355
15356 2004-08-22  Richard Henderson  <rth@redhat.com>
15357
15358         PR 17075
15359         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
15360         create new blocks and fall through.
15361         (expand_gimple_basic_block): Update to match.
15362
15363 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
15364
15365         * reload.c (find_reloads_address): Make return value tri-state.
15366         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
15367         (find_reloads): Assume that reloaded addresses match 'o' or
15368         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
15369         returned 1 (not -1).  Omit optional reloads for address operands
15370         only if find_reloads_address returned 1 (not -1).
15371
15372         * config/s390/s390.c (legitimize_reload_address): New function.
15373         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
15374         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
15375         legitimize_reload_address.
15376
15377 2004-08-22  Richard Hendersion  <rth@redhat.com>
15378
15379         * tree.h (SAVE_EXPR_RESOLVED_P): New.
15380         * gimplify.c (gimplify_save_expr): Use it.
15381         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
15382         on the temporary variable.
15383
15384 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
15385
15386         * fold-const.c (rtl_expr_nonnegative_p): Delete.
15387         * tree.h (rtl_expr_nonnegative_p): Remove.
15388
15389 2004-08-22  Steven Bosscher  <stevenb@suse.de>
15390
15391         * config/i386/ppro.md (ppro_complex_insn): Add missing check
15392         for cpu==pentiumpro.
15393
15394         * combine.c (struct reg_stat): Fix comment typo.
15395
15396 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15397
15398         * c-tree.h (c_sizeof_nowarn): Remove.
15399
15400 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
15401
15402         * c-decl.c (set_array_declarator_type): Rename to
15403         set_array_declarator_inner.
15404         (build_c_parm, build_attrs_declarator, build_function_declarator):
15405         New functions.
15406         (make_pointer_declarator): Call build_attrs_declarator.
15407         * c-tree.h (set_array_declarator_type): Rename to
15408         set_array_declarator_inner.
15409         (build_c_parm, build_attrs_declarator, build_function_declarator):
15410         New prototypes.
15411         * c-parse.in (after_type_declarator,
15412         parm_declarator_starttypename, parm_declarator_nostarttypename,
15413         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
15414         firstparm): Use these functions
15415
15416 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
15417
15418         * c-decl.c (build_array_declarator, set_array_declarator_type,
15419         start_decl, grokdeclarator, grokparms): Change boolean parameters
15420         to type bool.
15421         * c-tree.h (build_array_declarator, set_array_declarator_type,
15422         start_decl): Update prototypes.
15423         * c-decl.c, c-parse.in: All callers changed.
15424
15425 2004-08-21  Mike Stump  <mrs@apple.com>
15426
15427         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
15428         (darwin_fix_and_continue): Likewise.
15429         (darwin_fix_and_continue_switch): Likewise.
15430         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
15431         (darwin_fix_and_continue): Likewise.
15432         (darwin_fix_and_continue_switch): Likewise.
15433
15434 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
15435
15436         PR  c++/16030
15437         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
15438         Remove, merging into ...
15439         (gen_stdcall_or_fastcall_suffix): New function, returning tree
15440         rather than const char*, and accepting additional parameter.
15441         Don't add suffix to '*'-prefixed symbols or variadic functions.
15442         (i386_pe_encode_section_info): Adjust for call to new function.
15443         Call change_decl_assembler_name.
15444
15445 2004-08-20  Mike Stump  <mrs@apple.com>
15446
15447         * config/darwin.c (machopic_indirect_data_reference): Mark
15448         stubs as defined.
15449         * config/386/386.c (darwin_local_data_pic): Add.
15450         (legitimate_constant_p): Reorder so that PLUS handling runs
15451         before darwin_local_data_pic to match the ordering in
15452         legitimate_pic_address_disp_p and so that MINUS runs after
15453         darwin_local_data_pic as otherwise the darwin_local_data_pic
15454         logic can be skipped, which would be very bad.
15455         (legitimate_pic_address_disp_p): Move from from here to
15456         darwin_local_data_pic so it can be reused.
15457
15458 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
15459
15460         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
15461         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
15462         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
15463         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
15464         (RS6000_ABI_NAME): Define as "linux".
15465         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
15466         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
15467         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
15468         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
15469         * config/rs6000/rs6000.c (dot_symbols): New global var.
15470         (rs6000_output_function_entry): New function, modified for
15471         !DOT_SYMBOLS..
15472         (print_operand <case 'z'>): ..extracted from here.
15473         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
15474         (rs6000_output_function_epilogue): Likewise.
15475         (rs6000_elf_declare_function_name): Likewise.
15476         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
15477         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
15478         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
15479         * configure: Regenerate.
15480         * config.in: Regenerate.
15481
15482 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
15483
15484         * reload.c (find_reloads_address): Fix thinko in previous change.
15485
15486         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
15487         a CONST_INT.
15488
15489 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
15490
15491         PR rtl-optimization/17099
15492         * combine.c (force_to_mode): Check if inner_mask has any bits set
15493         outside of GET_MODE (x) instead of op_mode.
15494
15495 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
15496
15497         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
15498         fragment.
15499         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
15500         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
15501         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
15502         architecture.
15503         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
15504         configurations.
15505         * config/arm/t-symbian: New file.
15506
15507 2004-08-20  Andrew Pinski  <apinski@apple.com>
15508
15509         * regrename.c (kill_value_regno): ANSIfy.
15510
15511 2004-08-20  Dale Johannesen  <dalej@apple.com>
15512
15513         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
15514
15515 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
15516
15517         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
15518         (kill_value_regno): New function, derived from kill_value.
15519         (kill_value): Update.
15520         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
15521
15522 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
15523
15524         Fix PR tree-optimization/17111
15525         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
15526         of non-value_handles.
15527         (bitmap_set_contains): All constants are in every set.
15528
15529 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
15530
15531         * fold-const.c (round_up, round_down): Use build_int_cst.
15532         Optimize common case.
15533
15534 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
15535             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15536
15537         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
15538         one_only_data_section): Rename to som_readonly_data_section,
15539         som_one_only_readonly_data_section and som_one_only_data_section.
15540         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
15541         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
15542         conditional defines.
15543         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
15544         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
15545         string values.
15546         (pa_select_section): Use renamed section functions.
15547         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
15548         SOM_READONLY_DATA_SECTION_FUNCTION,
15549         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
15550         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
15551         Define here ...
15552         * config/pa/som.h: ... not here.
15553         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
15554         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
15555         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
15556         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
15557         (READONLY_DATA_SECTION): Use som_readonly_data_section.
15558
15559 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
15560
15561         * fold-const.c (int_const_binop): Don't generate non-overflowing
15562         size-types specially.
15563         (fold_convert_const): Likewise.
15564
15565         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
15566         clear cache on copied sizetype.
15567
15568 2004-08-20  Ben Elliston  <bje@au.ibm.com>
15569
15570         * configure.ac: Don't escape apostrophe in --enable-coverage help.
15571         * configure: Regenerate.
15572
15573 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
15574
15575         PR 5620
15576         * gcc.c (struct stat input_stat): Don't define if
15577         HOST_LACKS_INODE_NUMBERS
15578         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
15579         than stat to determine if temp file is same as input file.
15580         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
15581         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
15582
15583 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
15584
15585         * configure.ac (mips*-*-*): Print an error if not using GAS.
15586         * configure: Regenerated.
15587         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
15588         comments about buggy MIPSpro assemblers.
15589         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
15590         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
15591         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
15592         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
15593         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
15594         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
15595         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
15596         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
15597         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
15598         of more general IRIX 6 definitions.
15599         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
15600         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
15601         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
15602         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
15603         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
15604         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
15605         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
15606         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
15607         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
15608         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
15609         (LINK_SPEC): Move most of definition to iris.h.
15610         (SUBTARGET_LINK_SPEC): New macro.
15611         (IRIX_STARTFILE_SPEC): Fold into...
15612         (STARTFILE_SPEC): ...here.
15613         (IRIX_ENDFILE_SPEC): Fold into...
15614         (ENDFILE_SPEC): ...here.
15615         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
15616         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
15617         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
15618         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
15619         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
15620         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
15621         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
15622         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
15623         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
15624         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
15625         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
15626         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
15627         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
15628         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
15629         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
15630         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
15631         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
15632         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
15633         (TARGET_IRIX6): Define to 1.
15634         (DRIVER_SELF_SPECS): Define.
15635         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
15636         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
15637         (SUBTARGET_LINK_SPEC): New macro.
15638         (IRIX_STARTFILE_SPEC): Fold into...
15639         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
15640         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
15641         (LIB_SPEC, LIBGCC_SPEC): Use them.
15642         (LIB_SPEC): Remove !mabi=* case.
15643         (IRIX_ENDFILE_SPEC): Fold into...
15644         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
15645         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
15646         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
15647         (TARGET_IRIX6): New macro.
15648         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
15649         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
15650         (LABEL_AFTER_LOC): Delete.
15651         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
15652         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
15653         (mips_build_builtin_va_list): Check TARGET_IRIX6.
15654         (override_options): Remove TARGET_SGI_O32_AS-related code.
15655         (irix_output_external_libcall): Make static.
15656         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
15657         LABEL_AFTER_LOC.
15658         (mips_file_start): Tidy guard for ABI sections.  Remove use of
15659         ABICALLS_ASM_OP; use .abicalls instead.
15660         (mips_output_aligned_decl_common, mips_declare_object_name)
15661         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
15662         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
15663         .globl foo .text directives.
15664         (irix_asm_named_section_1, irix_asm_named_section)
15665         (irix_section_align_entry, irix_section_align_htab)
15666         (irix_orig_asm_out_file, irix_section_align_entry_eq)
15667         (irix_section_align_entry_hash, irix_asm_output_align)
15668         (irix_file_start, irix_section_align_1, copy_file_data)
15669         (irix_file_end, irix_section_type_flags): Delete.
15670         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
15671         Use standard section syntax.  Remove protective "jr $31".
15672         (__gcc_fini): Likewise .gcc_fini.
15673         * config/mips/irix-crtn.asm: Adjust sections accordingly.
15674         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
15675         iris5gas.h.
15676         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
15677         from t-irix-gld.
15678         (EXTRA_MULTILIB_PARTS): Define.
15679         * config/mips/t-iris6: Remove bogus comment.
15680         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
15681         * config/mips/iris5gas.h, config/mips/iris5gld.h,
15682         config/mips/iris6gas.h, config/mips/iris6gld.h,
15683         config/mips/t-iris5-as, config/mips/t-iris5-gas
15684         config/mips/t-irix-gld: Delete.
15685         * config/mips/iris.h: New file.
15686         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
15687
15688 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
15689
15690         * postreload.c (reload_cse_move2add): Allow any condjump, but check
15691         that the implicit set isn't clobbered in the jump insn.
15692
15693 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
15694
15695         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
15696         * optabs.c (init_optabs): Don't check it.
15697         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
15698         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
15699
15700 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
15701
15702         * config/s390/s390.md (s390_warn_framesize_string)
15703         (s390_warn_dynamic_string, s390_stack_size_string)
15704         (s390_stack_guard_string): New global string variables.
15705         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
15706         (s390_stack_guard): New global variables.
15707         (override_options): Added checks for the new options.
15708         (s390_emit_prologue): Emit stack check and trap code and perform
15709         compile time stack size checking.
15710
15711         * config/s390/s390.h (TARGET_OPTIONS): Added new options
15712         "warn-framesize", "warn-dynamicstack", "stack-size" and
15713         "stack-guard".
15714
15715         * doc/invoke.texi: Added documentation for the new options.
15716
15717 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
15718
15719         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
15720         to eliminate warning.
15721         (linear_search_fdes): Declare p as unsigned.
15722         (binary_search_mixed_encoding_fdes): Likewise.
15723         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
15724         to eliminate warning.
15725         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
15726         type cast.
15727
15728 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
15729
15730         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
15731         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
15732         instead of one.  Check for strictly legitimate address.
15733         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
15734         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
15735
15736 2004-08-19  Eric Christopher  <echristo@redhat.com>
15737
15738         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
15739         * langhooks.h (unsave_expr_now): Ditto.
15740         * tree.h (unsave_expr_1): Remove prototype.
15741         (lhd_unsave_expr_now): Rename to unsave_expr_now.
15742         * tree-inline.c (unsave_expr_1): Move here
15743         from tree.c. Make static.
15744         (unsave_expr_now): Rename from lhd_unsave_expr_now.
15745         * tree-sra.c: Fix up for rename.
15746         * tree-ssa-copy.c: Ditto.
15747         * tree-eh.c: Ditto.
15748         * tree.c (unsave_expr_1): Move to tree-inline.c.
15749
15750 2004-08-19  Caroline Tice  <ctice@apple.com>
15751
15752         * config/i386/cygming.h (switch_to_section):  Fix typo (change
15753         in_unlikely_text_section to in_unlikely_executed_text).
15754
15755 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
15756
15757         * vec.h (VEC_lower_bound): New macro.
15758
15759 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
15760
15761         PR target/16446
15762         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
15763         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
15764         treat each ABI separately.  Deal with n32/n64 complex float arguments.
15765         (function_arg): Add associated complex handling here.
15766
15767 2004-08-19  Richard Henderson  <rth@redhat.com>
15768
15769         * config/arm/arm.c (arm_gen_load_multiple): Use
15770         adjust_automodify_address.  Take base memory and offset instead
15771         of unchanging/struct/scalar bits.
15772         (arm_gen_store_multiple): Likewise.
15773         (arm_gen_movmemqi): Use adjust_automodify_address.
15774         * config/arm/arm-protos.h: Update decls.
15775         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
15776         (store_multiple): Similarly.
15777
15778 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
15779
15780         * regclass.c (globalize_reg): Update call_really_used_regs.
15781
15782 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15783
15784         * doc/invoke.texi (integer-share-limit): Document.
15785
15786         * tree.h (TYPE_CACHED_VALUES_P): New.
15787         (TYPE_CACHED_VALUES): New.
15788         (TYPE_ORIG_SIZE_TYPE): Adjust.
15789         * tree.def (INTEGER_CST): Update documentation.
15790         * tree.c: Inlcude params.h.
15791         (build_int_cst): Cache small values.
15792         (build_type_copy): Do not copy the value cache.
15793         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
15794         unneeded zeroing.
15795         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
15796         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
15797         cache.
15798         * fold-const.c (force_fit_type): Copy value when setting
15799         overflows.
15800         (int_const_binop): Likewise.
15801         * stor-layout.c: Include params.h
15802         (set_sizetype): Create values cache.
15803         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
15804         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
15805         * params.h (INTEGER_SHARE_LIMIT): New.
15806         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
15807
15808 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
15809
15810         * gimplify.c (gimplify_minimax_expr): Remove.
15811         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
15812
15813 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
15814
15815         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
15816         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
15817
15818 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
15819
15820         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
15821
15822 2004-08-18  Andrew Pinski  <apinski@apple.com>
15823
15824         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
15825
15826 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
15827
15828         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
15829         (__aeabi_ul2f): Likewise.
15830
15831 2004-08-18  Richard Henderson  <rth@redhat.com>
15832
15833         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
15834         move to rtl completely.
15835         (struct meminsnbuf, xtensa_emit_block_move): Remove.
15836         (xtensa_find_mode_for_size): Remove.
15837         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
15838         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
15839
15840 2004-08-18  Richard Henderson  <rth@redhat.com>
15841
15842         * config/mcore/mcore.c (mode_from_align): Remove DImode.
15843         (block_move_sequence): Rewrite to use adjust_address.
15844         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
15845         Return boolean indicating success/failure.
15846         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
15847         * config/mcore/mcore.md (movmemsi): Update to match.
15848
15849 2004-08-18  Mike Stump  <mrs@apple.com>
15850
15851         * doc/invoke.texi (-mfix-and-continue): Add support for
15852         fast turn around debugging.
15853         (-ffix-and-continue): Likewise.
15854         (-mindirect-data): Likewise.
15855         (-findirect-data): Likewise.
15856         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
15857         (indirect_data): Likewise.
15858         (machopic_data_defined_p): Likewise.
15859         (machopic_output_indirection): Likewise.
15860         (darwin_encode_section_info): Likewise.
15861         (darwin_fix_and_continue): Likewise.
15862         (darwin_fix_and_continue_switch): Likewise.
15863         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
15864         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
15865         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
15866         (SUBTARGET_OPTIONS): Likewise.
15867         (darwin_fix_and_continue): Likewise.
15868         (darwin_fix_and_continue_switch): Likewise.
15869         (TARGET_FIX_AND_CONTINUE): Likewise.
15870         * config/rs6000.c (rs6000_emit_prologue): Likewise.
15871
15872 2004-08-19  Steven Bosscher  <stevenb@suse.de>
15873
15874         * basic-block.h (struct edge_def): Remove crossing_edge.
15875         (EDGE_CROSSING): New define.
15876         (EDGE_ALL_FLAGS): Update.
15877         * bb-reorder.c (find_traces_1_round, better_edge_p,
15878         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
15879         find_jump_block, fix_crossing_conditional_branches,
15880         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
15881         Replace all occurences of crossing_edge with an edge flag check
15882         or set/reset.
15883         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15884         try_crossjump_bb): Likewise.
15885         * cfglayout.c (fixup_reorder_chain): Likewise.
15886         * cfgrtl.c (force_nonfallthru_and_redirect,
15887         commit_one_edge_insertion): Likewise.
15888
15889         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
15890         * tree-flow.h (compute_dominance_frontiers): Move prototype...
15891         * basic-block.h:  ...here.
15892         * tree-cfg.c (compute_dominance_frontiers_1,
15893         compute_dominance_frontiers): Move from here...
15894         * cfganal.c: ...to here.  Include timevar.h.
15895
15896 2004-08-18  James E Wilson  <wilson@specifixinc.com>
15897
15898         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
15899         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
15900
15901         * config/mips/mips.md (type): Add frdiv.
15902         (divsf3+1, divsf3+2): Change type to frdiv.
15903         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
15904         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
15905
15906         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
15907         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
15908         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
15909         * config/mips/5000.md (r5k_fdiv_single): Likewise.
15910         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
15911         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
15912         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
15913         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
15914         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
15915         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
15916         Likewise.
15917         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
15918
15919 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
15920
15921         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
15922         get regression tester working again.
15923
15924 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
15925
15926         * insn-notes.def, reg-notes.def: New files.
15927         * rtl.h: Use them to define enum insn_note and enum reg_note.
15928         * rtl.c: Use them to define note_insn_name and reg_note_name.
15929         * Makefile.in (RTL_BASE_H): Update.
15930
15931         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
15932         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
15933
15934 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
15935
15936         * arm.c (arm_size_rtx_costs): New function.
15937         (arm_override_options): Use it if optimizing for space.
15938
15939 2004-08-18  Richard Henderson  <rth@redhat.com>
15940
15941         * emit-rtl.c (gen_const_mem): New.
15942         * rtl.h (gen_const_mem): Declare.
15943         * expr.c (do_tablejump): Use it.
15944         * varasm.c (force_const_mem): Likewise.
15945         * config/darwin.c (machopic_indirect_data_reference): Likewise.
15946         (machopic_legitimize_pic_address): Likewise.
15947         * config/arm/arm.c (legitimize_pic_address): Likewise.
15948         * config/i386/i386.c (legitimize_pic_address): Likewise.
15949         (legitimize_tls_address): Likewise.
15950         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
15951         * config/ia64/ia64.md (load_fptr): Likewise.
15952         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
15953         * config/pa/pa.c (legitimize_pic_address): Likewise.
15954         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
15955         (rs6000_emit_move): Likewise.
15956         * config/s390/s390.c (legitimize_pic_address): Likewise.
15957         (legitimize_tls_address): Likewise.
15958         * config/s390/s390.md (casesi): Likewise.
15959         * config/sh/sh.c (sh_reorg): Likewise.
15960         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
15961         * config/v850/v850.md (casesi): Likewise.
15962
15963         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
15964         * config/sh/sh.c (prepare_move_operands): Remove incorrect
15965         use of MEM_READONLY_P.
15966
15967 2004-08-18  Steven Bosscher  <stevenb@suse.de>
15968
15969         * Makefile.in (OBJS-common): Add postreload-gcse.c.
15970         Add new postreload-gcse.o.
15971         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
15972         (lookup_as_function, insert, rehash_using_reg, use_related_value,
15973         equiv_constant): Use SAFE_HASH instead of safe_hash.
15974         (exp_equiv_p): Export.  Add for_gcse argument when comparing
15975         for GCSE.
15976         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
15977         find_comparison_args, fold_rtx, cse_insn): Update callers.
15978         (hash_rtx): New function derived from old canon_hash and bits
15979         from gcse.c hash_expr_1.
15980         (canon_hash_string): Rename to hash_rtx_string.
15981         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
15982         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
15983         (cselib_lookup): Update this caller.
15984         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
15985         Make static.
15986         (hash_expr): Call hash_rtx.
15987         (ldst_entry): Likewise.
15988         (expr_equiv_p): Call exp_equiv_p.
15989         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
15990         reg_used_on_edge, reg_set_between_after_reload_p,
15991         reg_used_between_after_reload_p, get_avail_load_store_reg,
15992         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
15993         get_bb_avail_insn, hash_scan_set_after_reload,
15994         compute_hash_table_after_reload,
15995         eliminate_partially_redundant_loads, gcse_after_reload,
15996         get_bb_avail_insn, gcse_after_reload_main): Remove.
15997         * postreload-gcse.c: New file, reincarnating most of the above.
15998         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
15999         (gcse_after_reload_main): Update prototype.
16000         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
16001         * passes.c (rest_of_handle_gcse2): Use it.
16002
16003 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16004
16005         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
16006         (pass_loop_done): Likewise.
16007
16008 2004-08-18  Andrew Pinski  <apinski@apple.com>
16009
16010         * config/rs6000/darwin.md: Delete the altivec patterns which are
16011         handled differently now.
16012         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
16013         (macho_correct_pic_di): Likewise.
16014         (call_indirect_nonlocal_darwin64): Likewise.
16015         Delete the save world/saveFP/saveVec patterns.
16016
16017         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
16018         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16019         * config/rs6000/rs6000.md: Include darwin.md.
16020         (builtin_setjmp_receiver): Add DImode case.
16021         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16022         Darwin bits.
16023
16024 2004-08-18  Matt Austern  <austern@apple.com>
16025
16026         Dead code stripping
16027         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
16028         * darwin.c (darwin_file_end): Mark file as potentially strippable.
16029
16030 2004-08-18  Richard Henderson  <rth@redhat.com>
16031
16032         * alias.c (readonly_fields_p): Remove.
16033         (objects_must_conflict_p): Don't call it.
16034         * tree.h (readonly_fields_p): Remove.
16035         * langhooks.h (struct lang_hooks): Remove honor_readonly.
16036         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
16037
16038 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16039
16040         * tree-dfa.c (add_referenced_var): Only global variables are
16041         call-clobbered.
16042         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
16043         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
16044         all pointers dereferenced if the statement dereferences them.
16045         (create_name_tags): Do not create memory tags for pointers
16046         that have PT_ANYTHING set.
16047         Also check if PT_VARS is not empty before creating a name tag.
16048         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
16049         variables that share the same alias set with a pointer that
16050         may point anywhere.
16051         (add_may_alias): Add FIXME comment to remove clobbering
16052         aliased variables and tags.
16053         (replace_may_alias): Likewise.
16054         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
16055         (merge_pointed_to_info): If the original variable has not
16056         points-to information, call set_pt_anything.
16057         (add_pointed_to_var): Do not prevent adding a pointed-to
16058         variable if the pointers is PT_ANYTHING.
16059         If the variable is a global, set PT_GLOBAL_MEM.
16060         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
16061         pointer type only come in PTR+OFFSET flavours.
16062         Always call merge_pointed_to_info on PHI arguments that are
16063         SSA_NAMEs.
16064         (get_nmt_for): Mark call-clobbered tags whose pointer points
16065         to global memory.
16066         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
16067         values.
16068         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
16069         FLAGS.
16070         (add_stmt_operand): Abort if the caller tried to add a killing
16071         definition for a memory tag.
16072         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
16073         unnecessary checks.
16074
16075 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
16076
16077         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
16078         from call_used_regs.  Update call_really_used_regs.
16079         (CALL_REALLY_USED_REGISTERS): Define.
16080         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
16081         Replace call_used_regs with call_really_used_regs.
16082         (calc_live_regs, sh_media_register_for_return): Likewise.
16083         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
16084         * sh.md (return_media): Likewise.
16085
16086 2004-08-18  Andrew Pinski  <apinski@apple.com>
16087
16088         * config/darwin.c (machopic_legitimize_pic_address): Only set
16089         MEM_READONLY_P in the non TARGET_TOC case.
16090
16091 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16092
16093         * rtl.def (NIL): Delete.
16094         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
16095         Tighten the syntax a little.
16096
16097         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
16098         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
16099         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
16100         * config/i386/predicates.md, config/m32r/m32r.h
16101         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
16102         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
16103         * config/sparc/sparc.h, doc/tm.texi:
16104         Replace all occurrences of NIL with UNKNOWN.
16105
16106 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16107
16108         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
16109         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
16110         sequence inline.  Move drop_through_label code into this
16111         block, being the only place it is used.  Adjust comments.
16112
16113 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
16114
16115         * config/rs6000/altivec.md: Add new patterns for calls to
16116         save_world/rest_world functions.
16117
16118         * config/rs6000/rs6000-protos.h: (save_world_operation,
16119         restore_world_operation) new declarations.
16120
16121         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
16122         field added.
16123         (rs6000_stack_info): Set world_save_p field.
16124         (save_world_operation): New function.
16125         (restore_world_operation): New function.
16126         (compute_save_world_info): New function.
16127         (rs6000_stack_info): Call compute_save_world_info.
16128         (rs6000_emit_prologue): Check for world_save_p and generate
16129         pattern to call save_world for saving all non-volatile and
16130         special registers.
16131         (rs6000_emit_epilogue): Check for world_save_p and generate
16132         pattern to call rest_world to restore saved registers.
16133
16134         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
16135         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
16136         (rs6000_reg_names): New entries added for save_world_operation and
16137         restore_world_operation.
16138
16139 2004-08-18  Caroline Tice  <ctice@apple.com>
16140
16141         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
16142         "-freorder-blocks-and-partition" to the flags used in second
16143         stage of profiledbootstrap.
16144         * bb-reorder.c (push_to_next_round_p): Add new variable,
16145         next_round_is_last; set and use variable to make sure, when
16146         partitioning, that the last trace construction round consists
16147         of all (and only) cold basic blocks.
16148         (rotate_loop): Don't copy blocks that end in a section
16149         crossing jump.
16150         (copy_bb): Correctly initialize "partition" of duplicated bb.
16151         (add_unlikely_executed_notes): Add a comment.
16152         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
16153         to make sure, if function contains hot blocks, that the
16154         successors of ENTRY_BLOCK_PTR are hot; also, only look for
16155         crossing edges if the architecture supports named sections.
16156         (mark_bb_for_unlikely_executed_section): Modify to always
16157         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
16158         the basic block note insn.
16159         (fix_crossing_unconditional_branches): Remove extra space.
16160         (fix_edges_for_rarely_executed_code): Modify to only do
16161         partitioning work if the architecture supports named sections.
16162         (reorder_basic_blocks): Modify to only add
16163         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
16164         supports named sections.
16165         * c-common.c (handle_section_attribute): Initialize new global
16166         variable, user_defined_section_attribute, to true if user has
16167         specified one.
16168         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
16169         forward edges that cross section boundaries.
16170         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
16171         partitioning information if the architecture supports named
16172         sections.
16173         * cfgrtl.c (target.h): Add statement to include this.
16174         (rtl_split_block): Make sure newly created bb gets correct
16175         partition.
16176         (try_redirect_by_replacing_jump): Make sure redirection isn't
16177         attempting to cross section boundaries.
16178         (force_nonfallthru_and_redirect): Only do partition fix up if
16179         architecture supports named sections.
16180         (rtl_split_edge): Make sure newly created bb ends up in
16181         correct partition.
16182         (commit_one_edge_insertion): Remove code that incorrectly
16183         updated basic block partition; Make sure partition fix up only
16184         happens if architecture supports named sections and it's not
16185         already done.
16186         (rtl_verify_flow_info_1): Fix if-condition on test/error
16187         condition that fallthru edges are not allowed to cross section
16188         boundaries.
16189         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
16190         * final.c (final_scan_insn): Remove redundant test from if-statement;
16191         change calls to text_section into calls to function_section; add code
16192         to only to partitioning fix up if architecture supports named
16193         sections.
16194         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
16195         partition.
16196         (if_convert): Add targetm.have_named_sections to test.
16197         * output.h (unlikely_section_label): Extern declaration for new global
16198         variable.
16199         (unlikely_text_section_name): Likewise.
16200         * opts.c (decode_options): If both partitioning and DWARF debugging
16201         are turned on, issue a warning that this doesn't work, and change
16202         partitiong to basic block reordering (without hot/cold partitions).
16203         * passes.c (rest_of_handle_final): Re-set new global variable,
16204         user_defined_section_attribute, to false.
16205         (rest_of_compilation): Change options for calling partitioning
16206         function: Don't call if the user defined the section attribute, and
16207         don't call if DECL_ONE_ONLY is true for the current function.
16208         * predict.c (choose_function_section): Return immediately if we
16209         are doing hot/cold partitioning (i.e. let the basic block partitioning
16210         determine where the function belongs).
16211         * reg-stack.c (emit_swap_insn): Add condition to step over
16212         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
16213         * toplev.c (user_defined_section_attribute): New global variable.
16214         * toplev.h (user_defined_section_attribute): Extern declaration
16215         for new global variable.
16216         * varasm.c (unlikely_section_label): New global variable.
16217         (unlikely_text_section_name): New global variable.
16218         (unlikely_text_section): Add code to initialize
16219         unlikely_text_section_name if necessary; modify to use
16220         unlikely_text_section_name and unlikely_section_label; also to use
16221         named_section properly.
16222         (in_unlikely_text_section):  Modify to work correctly with
16223         named_section and to use unlikely_text_section_name.
16224         (named_section):  Add code to work properly with cold section.
16225         (function_section): Clean up if-statement.
16226         * config/darwin.c (darwin_asm_named_section): Return to original
16227         code, removing use of SECTION_FORMAT_STRING.
16228         * config/arm/pe.h (switch_to_section):  Add case for
16229         in_unlikely_executed_text to switch statement.
16230         * config/i386/cygming.h (switch_to_section): Likewise.
16231         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16232         (SECTION_FORMAT_STRING): Likewise.
16233         * config/mcore/mcore.h (switch_to_section): Likewise.
16234         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16235         (SECTION_FORMAT_STRING): Remove.
16236
16237 2004-08-18  Roger Sayle  <roger@eyesopen.com>
16238
16239         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
16240         -ffixed-reg safe, by preserving the meanings of zero and one.
16241         (CALL_USED_REGISTERS): Likewise.
16242         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
16243
16244 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16245
16246         * config/sh/sh.c (split_branches): Check the result of
16247         next_active_insn.
16248         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
16249         Call rtl_register_cfg_hooks.
16250
16251 2004-08-18  Richard Henderson  <rth@redhat.com>
16252
16253         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
16254         * alias.c (true_dependence): Update to match new semantics.
16255         (canon_true_dependence, write_dependence_p): Likewise.
16256         (anti_dependence, output_dependence): Update write_dependence_p args.
16257         (unchanging_anti_dependence): Remove.
16258         * calls.c (purge_mem_unchanging_flag): Remove.
16259         (fixup_tail_calls): Don't call it.
16260         (expand_call): Don't add unchanging memory to function usage.
16261         * expr.c (emit_block_move_via_libcall): Likewise.
16262         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
16263         (get_subtarget): Don't use RTX_UNCHANGING_P.
16264         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
16265         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
16266         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
16267         * cse.c (insert): Don't use RTX_UNCHANGING_P.
16268         (cse_insn, canon_hash): Use MEM_READONLY_P.
16269         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
16270         instead of RTX_UNCHANGING_P.
16271         * explow.c (maybe_set_unchanging): Remove.
16272         * expr.h (maybe_set_unchanging): Remove.
16273         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
16274         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
16275         (assign_parm_setup_reg, expand_function_start): Likewise.
16276         * integrate.c (copy_rtx_and_substitute): Likewise.
16277         * ra-rewrite.c (emit_colors): Likewise.
16278         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
16279         (fixup_match_1): Likewise.
16280         * reload1.c (reload, alter_reg): Likewise.
16281         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
16282         not RTX_UNCHANGING_P.
16283         (equiv_init_varies_p): Likewise.
16284         * loop-invariant.c (check_maybe_invariant): Likewise.
16285         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
16286         * loop.c (note_addr_stored): Likewise.
16287         (prescan_loop): Likewise. Don't check function usage for clobbered
16288         unchanging memory.
16289         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
16290         not RTX_UNCHANGING_P.
16291         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
16292         * varasm.c (force_const_mem): Likewise.
16293         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
16294         * web.c (entry_register): Likewise.
16295         * tree-gimple.h (get_base_address): Move decl ...
16296         * tree.h: ... here.
16297         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
16298
16299         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
16300         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
16301         (alpha_set_memflags): Update to match.
16302
16303         * config/darwin.c (machopic_indirect_data_reference): Set
16304         MEM_READONLY_P instead of RTX_UNCHANGING_P.
16305         (machopic_indirect_call_target): Likewise.
16306         (machopic_legitimize_pic_address): Likewise.
16307         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
16308         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
16309         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
16310         * config/frv/frv.md (symGOT2reg): Likewise.
16311         * config/i386/i386.c (legitimize_pic_address,
16312         legitimize_tls_address, ix86_split_to_parts): Likewise.
16313         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16314         * config/ia64/ia64.md (load_fptr): Likewise.
16315         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
16316         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
16317         * config/mcore/mcore.c (block_move_sequence): Likewise.
16318         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
16319         * config/pa/pa.c (legitimize_pic_address): Likewise.
16320         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16321         (rs6000_emit_move): Likewise.
16322         * config/s390/s390.c (legitimize_pic_address): Likewise.
16323         (legitimize_tls_address): Likewise.
16324         * config/s390/s390.md (casesi): Likewise.
16325         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
16326         * config/sh/sh.md (symGOT2reg): Likewise.
16327         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
16328         * config/v850/v850.md (casesi): Likewise.
16329
16330         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
16331         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
16332         * config/mips/mips.c (mips_restore_gp): Likewise.
16333         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
16334         * config/sh/sh.c (sh_reorg): Likewise.
16335
16336 2004-08-18  Richard Henderson  <rth@redhat.com>
16337
16338         * tree.h (struct tree_decl): Add gimple_formal_temp.
16339         (DECL_GIMPLE_FORMAL_TEMP_P): New.
16340         * gimplify.c (pop_gimplify_context): Clear it.
16341         (lookup_tmp_var): Set it, if is_formal.
16342         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
16343         Use is_gimple_val for VECTOR.  Simplify return value.
16344         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
16345         (gimplify_expr): Likewise.
16346         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
16347         is_gimple_tmp_rhs for clarity.  Update all callers.
16348         (is_gimple_reg_rhs): Simplify logic.
16349         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
16350         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
16351         (is_gimple_formal_tmp_reg): Similarly.
16352         * tree-gimple.h: Update decls.
16353         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
16354         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
16355         * tree-ssa-live.c (var_union, type_var_init): Likewise.
16356
16357 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
16358
16359         * c4x.c (legitimize_operands): Remove calls to
16360         preserve_subexpressions_p.
16361
16362 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
16363
16364         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
16365         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
16366
16367 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
16368
16369         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
16370         Objective-C++ extensions.
16371         * gengtype.c (get_file_basename): Match entire subdirectory name
16372         ('cp', 'objc', 'objcp') rather than just its suffix.
16373         (get_base_file_bitmap): Allow for files to belong to more than one
16374         language.
16375         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
16376         used by more than one front-end.
16377
16378 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
16379
16380         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
16381         avoid use of preserve_subexpressions_p.
16382
16383 2004-08-17  Richard Henderson  <rth@redhat.com>
16384
16385         PR 17051
16386         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
16387
16388 2004-08-17  DJ Delorie  <dj@redhat.com>
16389
16390         * doc/extend.texi: Document new xstormy16 attribute.
16391
16392         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
16393         (xstormy16_splittable_below100_or_register): New.
16394         (combine_bnp): New.
16395         (xstormy16_reorg): New.
16396         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16397
16398         * config/stormy16/stormy16.md (movqi_internal): Make name public.
16399         (movhi_internal): Likewise.
16400         (cbhranchhi): Likewise.
16401         (cbhranchhi_neg): Likewise.
16402         (andhi3): Only allow splittable below100 operands.
16403         (iorhi3): Likewise.
16404         (peephole2): New and/zero_extend->and peephole.
16405         (peephole2): New load/ior/save->set1 peephole.
16406         (peephole2): New load/and/save->clr1 peephole.
16407         (bclrx, bclrx2, bclr7, bclr15): New.
16408         (bsetx, bsetx2, bset7, bset15): New.
16409
16410         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
16411         liberal about acceptable 'B' masks.
16412
16413         * config/stormy16/stormy16-protos.h
16414         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
16415         xstormy16_below100_operand, xstormy16_below100_or_register,
16416         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
16417         (PREDICATE_CODES): Add new predicates.
16418
16419         * config/stormy16/stormy16.c
16420         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
16421         xstormy16_below100_operand, xstormy16_below100_or_register,
16422         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
16423         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
16424         (xstormy16_legitimate_address_p): Allow below100 symbols.
16425         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
16426         (xstormy16_expand_move): Leave below100 operands as-is.
16427         (xstormy16_encode_section_info): Encode below100 symbols.
16428         (xstormy16_strip_name_encoding): New.
16429         (xstormy16_print_operand): Print 'b' as shift mask.
16430         (xstormy16_attribute_table): Add below100 attributes.
16431         (xstormy16_handle_below100_attribute): New.
16432
16433         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
16434         (XSTORMY16_SECTION_FUNCTION): New.
16435         (EXTRA_SECTION_FUNCTIONS): Define using the above.
16436         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16437         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
16438         (ASM_OUTPUT_LABELREF): Define.
16439
16440         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
16441         (movhi_internal): Add below100 support.
16442         (andhi3): Add below100 support.
16443         (iorhi3): Add below100 support.
16444         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
16445
16446 2004-08-17  James E Wilson  <wilson@specifixinc.com>
16447
16448         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
16449         of VOIDmode for comparison code mode.
16450         * config/mips/mips.md: For conditional move patterns, use mode of
16451         first compare operand for comparison mode, instead of VOIDmode.
16452
16453         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
16454         normal and -ffast-math code.
16455
16456 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
16457
16458         PR c++/15871
16459         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
16460
16461 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
16462
16463         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
16464
16465 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
16466
16467         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
16468         for non Darwin targets.
16469         (*call_value_nonlocal_darwin64): Likewise.
16470
16471 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
16472
16473         * config/rs6000/rs6000.c (rs6000_function_value): Check for
16474         altivec mode for altivec return register.
16475
16476 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
16477
16478         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
16479         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16480         * config/rs6000/rs6000.md: Include darwin.md.
16481         (builtin_setjmp_receiver): Add DImode case.
16482         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16483         Darwin bits.
16484
16485 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
16486
16487         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
16488         trees.
16489         * tree-vectorizer.h: New File: Same.
16490         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
16491         * common.opt (ftree-vectorize): New flag to enable vectorization.
16492         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
16493         vectorization pass.
16494         * tree-data-ref.h (init_data_ref): Additional argument.
16495         (array_base_name_differ_p): Moved to tree-data-ref.c.
16496         * tree-data-ref.c (array_base_name_differ_p): Revised.
16497         (initialize_data_dependence_relation): Call array_base_name_differ_p
16498         with an extra argument.
16499         (analyze_all_data_dependences): Same.
16500         (init_data_ref): Additional argument is_read to set DR_IS_READ.
16501         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
16502         file.
16503         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
16504         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
16505         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
16506         vectorization pass.
16507         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
16508         (tree_ssa_loop_done): Call scev_finalize.
16509         (tree_vectorize): Define the new vectorization pass.
16510         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
16511         size of the vector they support (until support for multiple vector
16512         sizes is added to the vectorizer).
16513         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
16514         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
16515         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
16516         documentation.
16517
16518 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
16519
16520         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
16521         usage.
16522         (generate_protocol_list, handle_impent): Likewise.
16523
16524 2004-08-17  Roger Sayle  <roger@eyesopen.com>
16525
16526         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
16527         ensure that call_used_regs is a superset of both fixed_regs and
16528         call_really_used_regs.
16529
16530 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
16531
16532         PR target/17019
16533         * arm.md (addsi3_cbranch_scratch): Correct case labels.
16534
16535 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
16536
16537         PR middle-end/17036
16538         * fold-const.c (fold): Check for integer operand when
16539         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
16540         Pinski  <pinskia@physics.uc.edu>.
16541
16542 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
16543
16544         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
16545         No need to check if in a cross configuration.
16546         * configure: Regenerate.
16547
16548         * calls.c (precompute_register_parameters):
16549         Inline preserve_subexpressions_p ().
16550         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
16551         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
16552         Likewise.
16553         * expr.c (get_subtarget): Likewise.
16554         * rtl.h (preserve_subexpressions_p): Remove.
16555         * stmt.c (preserve_subexpressions_p): Remove.
16556
16557         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
16558         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
16559         Abort on gimplified cases.
16560
16561 2004-08-16  James E Wilson  <wilson@specifixinc.com>
16562
16563         * tree.h (VECTOR_FLOAT_TYPE_P): New.
16564         (FLOAT_TYPE_P): Use it.
16565         * c-typeck.c (build_binary_op): After convert calls, check for
16566         check for ERROR_MARK operands.
16567
16568 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
16569
16570         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
16571         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
16572         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
16573         (genobjs static pattern rule): Remove %.c dependency.
16574         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
16575         Rename rules; delete commands; fix dependencies.
16576         (mostlyclean): Do not delete temporary source copies.
16577         * configure.ac: Delete all references to BUILD_PREFIX and
16578         BUILD_PREFIX_1.
16579         * configure: Regenerate.
16580
16581         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
16582         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
16583         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
16584         with #ifndef GENERATOR_FILE so that nothing from those headers
16585         is used.
16586
16587         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
16588
16589 2004-08-16  Adam Nemet  <anemet@lnxw.com>
16590
16591         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
16592
16593 2004-08-16  Andrew Pinski  <apinski@apple.com>
16594
16595         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
16596         extraneous semicolon.
16597
16598 2004-08-16  Devang Patel  <dpatel@apple.com>
16599
16600         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
16601         * print-tree.c (print_node): Print DECL_PRESERVE_P.
16602         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
16603         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
16604         * target.h (struct gcc_target): New member, mark_decl_preserved.
16605         * hooks.c (hook_void_charptr): Rename to ...
16606         (hook_void_constcharptr): ... new name.
16607         * hooks.h (hook_void_charptr): Rename to ..
16608         (hook_void_constcharptr): ... new name.
16609         * tree.h (DECL_PRESERVE_P): New #define.
16610         (struct tree_decl): New member, preserve_flag.
16611         * varasm.c (assemble_start_function): Mark decl preserved.
16612         (assemble_variable): Same.
16613         * darwin.c (darwin_mark_decl_preserved): New function.
16614         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
16615         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
16616         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
16617
16618 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
16619
16620         * c-decl.c (grokdeclarator): Allow for function definition where
16621         innermost declarator has attributes.
16622
16623 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
16624
16625         * except.c (get_exception_filter, build_post_landing_pads,
16626         dw2_build_landing_pads): Use target-specific mode for 'filter'.
16627         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
16628         * target.h (eh_return_filter_mode): New field added.
16629         * targhooks.c (default_eh_return_filter_mode): Defined.
16630         * targhooks.h (default_eh_return_filter_mode): Declared.
16631         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
16632
16633 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
16634
16635         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
16636         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
16637         * configure: Regenerate.
16638
16639 2004-08-16  Stan Shebs  <shebs@apple.com>
16640
16641         Basic support for 64-bit Darwin.
16642         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16643         (machopic_legitimize_pic_address): Similarly, plus use Pmode
16644         instead of SImode.
16645         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
16646         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
16647         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
16648         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
16649         (PROCESSOR_DEFAULT64): Define.
16650         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
16651         Darwin.
16652         * config/rs6000/rs6000.md: Include darwin.md.
16653         (builtin_setjmp_receiver): Add DImode case.
16654         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
16655         Darwin.
16656         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
16657         (rs6000_emit_move): Add DImode case to Darwin bits.
16658         (machopic_output_stub): Use .quad if 64-bit.
16659         * invoke.texi: Document -m32 and -m64.
16660
16661 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
16662
16663         * doc/extend.texi (AltiVec builtins): Document additional differences
16664         from the Motorola AltiVec PIM.
16665
16666 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
16667
16668         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
16669         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
16670         (struct tree_common): Update public_flag documentation.
16671
16672 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
16673
16674         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
16675         Check for artificial variables, not is_gimple_tmp_var.
16676         * tree-ssa-live.c (var_union): Likewise.
16677
16678 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
16679
16680         * calls.c (load_register_parameters): Remove spurious FIXME token.
16681
16682 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
16683
16684         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
16685         (c-lang.o): Depend on c-objc-common.h.
16686         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
16687         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
16688         * c-lang.c: Include c-objc-common.h.
16689         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
16690         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
16691         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
16692         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
16693         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
16694         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
16695         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
16696         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
16697         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
16698         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
16699         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
16700         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
16701         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
16702         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
16703         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
16704         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
16705         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
16706         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16707         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
16708         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
16709         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
16710         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
16711         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
16712         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
16713         Move to c-objc-common.h.
16714         * c-objc-common.c: Include c-objc-common.h.
16715         * c-objc-common.h: New file.
16716
16717 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
16718             Andrew Pinski  <pinskia@physics.uc.edu>
16719
16720         PR target/14931
16721         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
16722         style.
16723
16724 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
16725
16726         * tree.h (build_int_cst): New.
16727         (build_int_2): Remove.
16728         * tree.c (build_int_2): Remove.
16729         (build_int_cst): New.
16730         (make_vector_type, build_common_tree_nodes,
16731         build_common_tree_nodes_2): Use build_int_cst.
16732         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
16733         expand_builtin_strpbrk, expand_builtin_fputs,
16734         build_string_literal, expand_builtin_printf,
16735         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
16736         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
16737         fold_builtin_isdigit, simplify_builtin_strstr,
16738         simplify_builtin_strpbrk, fold_builtin_fputs,
16739         simplify_builtin_sprintf): Use build_int_cst.
16740         * c-common.c (start_fname_decls, fix_string_type,
16741         c_common_nodes_and_builtins, c_init_attributes,
16742         shorten_compare): Likewise.
16743         * c-decl.c (complete_array_type,
16744         check_bitfield_type_and_width): Likewise.
16745         * c-lex.c (interpret_integer, lex_charconst): Likewise.
16746         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
16747         * c-pretty-print.c (pp_c_integer_constant): Likewise.
16748         * c-typeck.c (really_start_incremental_init, push_init_level,
16749         set_nonincremental_init_from_string): Likewise.
16750         * calls.c (load_register_parameters): Likewise.
16751         * convert.c (convert_to_pointer): Likewise.
16752         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
16753         build_fn_info_type, build_ctr_info_value, build_gcov_info):
16754         Likewise.
16755         * except.c (init_eh, assign_filter_values, assign_filter_values):
16756         Likewise.
16757         * expmed.c (store_fixed_bit_field, extract_bit_field,
16758         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
16759         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
16760         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
16761         * expr.c (convert_move, emit_group_load, emit_group_store,
16762         expand_assignment, store_constructor, store_field,
16763         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
16764         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
16765         invert_truthvalue, optimize_bit_field_compare,
16766         decode_field_reference, all_ones_mask_p, constant_boolean_node,
16767         fold_div_compare, fold, fold_read_from_constant_string,
16768         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
16769         * function.c (assign_parm_setup_block): Likewise.
16770         * stmt.c (shift_return_value, expand_end_case_type,
16771         estimate_case_costs): Likewise.
16772         * stor-layout.c (layout_type, initialize_sizetypes,
16773         set_min_and_max_values_for_integral_type): Likewise.
16774         * tree-chrec.c (chrec_fold_multiply_poly_poly,
16775         reset_evolution_in_loop): Likewise.
16776         * tree-chrec.h (build_polynomial_chrec): Likewise.
16777         * tree-complex.c (build_replicated_const): Likewise.
16778         * tree-eh.c (honor_protect_cleanup_actions,
16779         lower_try_finally_onedest, lower_try_finally_copy,
16780         lower_try_finally_switch): Likewise.
16781         * tree-mudflap.c (mf_build_string, mx_register_decls,
16782         mudflap_register_call, mudflap_enqueue_constant): Likewise.
16783         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
16784         * tree-pretty-print.c (dump_generic_node): Likewise.
16785         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
16786         Likewise.
16787         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
16788         * tree-ssa-loop-niter.c (number_of_iterations_cond,
16789         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
16790         Likewise.
16791
16792         * config/alpha/alpha.c (alpha_initialize_trampoline,
16793         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
16794         * config/arm/arm.c (arm_get_cookie_size): Likewise.
16795         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
16796         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
16797         * config/i860/i860.c (i860_va_start): Likewise.
16798         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
16799         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
16800         mips_gimplify_va_arg_expr): Likewise.
16801         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
16802         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
16803         add_compiler_branch_island): Likewise.
16804         * config/s390/s390.c (s390_va_start): Likewise.
16805         * config/sh/sh.c (sh_va_start): Likewise.
16806         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
16807         Likewise.
16808         * config/xtensa/xtensa.c (xtensa_va_start,
16809         xtensa_gimplify_va_arg_expr): Likewise.
16810
16811         * objc/objc-act.c (build_objc_string_object,
16812         build_objc_symtab_template, init_def_list, init_objc_symtab,
16813         init_module_descriptor, generate_static_references,
16814         build_selector_translation_table, get_proto_encoding,
16815         build_typed_selector_reference, build_selector_reference,
16816         build_next_objc_exception_stuff,
16817         build_method_prototype_list_template, generate_descriptor_table,
16818         generate_protocols, build_protocol_initializer,
16819         build_ivar_list_template, build_method_list_template,
16820         build_ivar_list_initializer, generate_ivars_list,
16821         generate_dispatch_table, generate_protocol_list,
16822         build_category_initializer, build_shared_structure_initializer,
16823         generate_shared_structures, handle_impent,
16824         generate_objc_image_info): Use build_int_cst.
16825
16826 2004-08-15  Ben Elliston  <bje@au.ibm.com>
16827
16828         * vec.h: Comment improvements.
16829
16830 2004-08-14  Roger Sayle  <roger@eyesopen.com>
16831
16832         * c-common.c (shorten_compare, pointer_int_sum,
16833         c_common_truthvalue_conversion, boolean_increment): Replace calls
16834         to build with calls to buildN.
16835         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
16836         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
16837         gimplify_switch_stmt): Likewise.
16838         * c-typeck.c (default_function_array_conversion,
16839         build_component_ref, build_array_ref, build_function_call,
16840         pointer_diff, build_unary_op, build_conditional_expr,
16841         build_compound_expr, build_modify_expr, c_finish_goto_label,
16842         c_finish_goto_ptr, c_finish_return, c_finish_loop,
16843         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
16844         build_binary_op): Likewise.
16845
16846 2004-08-15  Steven Bosscher  <stevenb@suse.de>
16847
16848         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
16849
16850 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16851
16852         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
16853         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
16854         * fixinc/fixincl.x: Rebuilt.
16855
16856 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
16857
16858         * config/mips/mips-protos.h (mips_symbolic_constant_p)
16859         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
16860         (mips_small_data_pattern_p): Declare.
16861         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
16862         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
16863         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
16864         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
16865         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
16866         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
16867         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
16868         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
16869         (pc_or_label_operand, call_insn_operand, move_operand)
16870         (consttable_operand, symbolic_operand, general_symbolic_operand)
16871         (global_got_operand, local_got_operand, stack_operand)
16872         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
16873         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
16874         (mips_small_data_pattern_p): Replace previous small_data_pattern
16875         predicate.  Turn into a bool () (rtx) function.
16876         * config/mips/predicates.md: New file.
16877         * config/mips/mips.md: Include it.  Use the target-independent
16878         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
16879         trap_comparison_operator and equality_op to equality_operator.
16880         Replace uses of small_int with the equivalent const_arith_operand.
16881         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
16882         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
16883         to fcc_reload_operand.
16884         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
16885
16886 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16887
16888         PR libstdc++/17005 partial fix.
16889         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
16890         except when generating ANSI/C89 code.
16891
16892 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
16893
16894         * c-common.c (shorten_compare): Use force_fit_type directly.
16895
16896 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
16897             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
16898             Dave Korn  <dk@artimi.com>
16899
16900         * doc/install.texi (Building): Avoid duplicate reference to GNU
16901         make requirement.
16902         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
16903
16904 2004-08-14  Richard Henderson  <rth@redhat.com>
16905
16906         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
16907         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
16908
16909 2004-08-13  Richard Henderson  <rth@redhat.com>
16910
16911         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
16912         for constant_call_address_operand.
16913         (call_value_pop_1, call_value_1): Likewise.
16914         (sibcall_value_1, call_value_1_rex64): Likewise.
16915
16916 2004-08-13  James E Wilson  <wilson@specifixinc.com>
16917
16918         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
16919         Correct mode from SFmode to DFmode.
16920
16921 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
16922
16923         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
16924         __cstring_object and __image_info sections with the no_dead_strip
16925         attribute.
16926
16927 2004-08-13  Roger Sayle  <roger@eyesopen.com>
16928             David Billinghurst  <David.Billinghurst@riotinto.com>
16929
16930         PR libgfortran/15930
16931         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
16932         * fixinc/fixincl.x: Regenerate.
16933         * fixinc/tests/base/internal/math_core.h: New file.
16934
16935 2004-08-13  Richard Henderson  <rth@redhat.com>
16936
16937         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
16938         (dbxout_function_end): Remove ifdefs for it.
16939         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
16940
16941 2004-08-13  Richard Henderson  <rth@redhat.com>
16942
16943         * Makefile.in (insn-preds.o): Depend on TREE_H.
16944         * genpreds.c (write_insn_preds_c): Include tree.h.
16945         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
16946         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
16947         const48_operand, and_operand, or_operand, mode_width_operand,
16948         mode_mask_operand, mul8_operand, const0_operand,
16949         hard_fp_register_operand, hard_int_register_operand,
16950         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
16951         samegp_function_operand, direct_call_operand, small_symbolic_operand,
16952         global_symbolic_operand, call_operand, symbolic_operand,
16953         dtp16_symbolic_operand, dtp32_symbolic_operand,
16954         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
16955         gottp_symbolic_operand, alpha_comparison_operator,
16956         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
16957         signed_comparison_operator, alpha_fp_comparison_operator,
16958         divmod_operator, fix_operator, aligned_memory_operand,
16959         unaligned_memory_operand, reg_or_unaligned_mem_operand,
16960         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
16961         reg_no_subreg_operand, addition_operation): Move to predicates.md.
16962         (reg_or_const_int_operand): Remove.  Replace all users with
16963         reg_or_cint_operand.
16964         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
16965         (resolve_reload_operand): Split out of aligned_memory_operand.
16966         * config/alpha/alpha-protos.h: Update for exports.
16967         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
16968         * config/alpha/alpha.md: Include predicates.md.
16969         * config/alpha/predicates.md: New file.
16970
16971 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
16972
16973         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
16974         fields with a pointer to the instruction definition.
16975         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
16976         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
16977         (write_attr_case, write_const_num_delay_slots): Update accordingly.
16978         (write_attr_case, write_const_num_delay_slots): Write the name of
16979         an insn next to its case statement.
16980         * genoutput.c (data): Add a filename field.
16981         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
16982         (output_insn_data): Print the location of each insn definition.
16983         * genrecog.c (write_action): Print the name of an insn above
16984         the statement that returns its code.
16985
16986 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
16987
16988         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
16989         * config/libgloss.h: Likewise.
16990         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
16991         * c4x/c4x-modes.def: Likewise.
16992         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
16993         (c4x_rptb_nop_p): Likewise.
16994         (c4x_rptb_valid_p): Likewise.
16995         (c4x_rptb_insert): Likewise.
16996         (c4x_address_conflict): Likewise.
16997         * config/c4x/c4x.md: Likewise.
16998         * config/frv/frv.md: Likewise.
16999         * config/i386/athlon.md: Likewise.
17000         * config/i386/i386.md: Likewise.
17001         * config/i386/predicates.md: Likewise.
17002         * config/ia64/ia64.c: Likewise.
17003         * config/ia64/itanium1.md: Likewise.
17004         * config/ia64/itanium2.md: Likewise.
17005         * config/iq2000/iq2000.md: Likewise.
17006         * config/mcore/mcore.c: Likewise.
17007         * config/mips/mips.c: Likewise.
17008         * config/mips/r3900.h: Likewise.
17009         * config/mips/sb1.md: Likewise.
17010         * config/pa/milli64.S: Likewise.
17011         * config/pa/pa.c: Likewise.
17012         * config/pa/pa.h: Likewise.
17013         * config/rs6000/8540.md: Likewise.
17014
17015 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
17016
17017         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
17018
17019 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
17020
17021         * sh.md (cbranch define_delay) Use cond_delay_slot for
17022         non-anulled condition too.
17023
17024 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17025
17026         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
17027         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17028         any_parallel_operand, lmw_operation, stmw_operation,
17029         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
17030         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
17031         any_parallel_operand.
17032         (return_and_restore_fpregs_{si,di}): Same.
17033
17034 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17035
17036         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
17037         if pred->singleton != PARALLEL, issue a warning and pretend it was.
17038         Also issue a warning for any predicate we don't know about.
17039
17040 2004-08-12  Richard Henderson  <rth@redhat.com>
17041
17042         * config/i386/i386.c (internal_label_prefix): Export.
17043         (internal_label_prefix_len, struct ix86_address,
17044         ix86_decompose_address, maybe_get_pool_constant,
17045         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
17046         memory_address_length): Export.
17047         (any_fp_register_operand, fp_register_operand,
17048         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
17049         x86_64_general_operand, x86_64_szext_general_operand,
17050         x86_64_nonmemory_operand, x86_64_movabs_operand,
17051         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
17052         x86_64_zext_immediate_operand, const_int_1_31_operand,
17053         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
17054         tls_symbolic_operand, global_dynamic_symbolic_operand,
17055         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
17056         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
17057         constant_call_address_operand, const0_operand, const1_operand,
17058         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
17059         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
17060         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
17061         general_no_elim_operand, nonmemory_no_elim_operand,
17062         index_register_operand, q_regs_operand, flags_reg_operand,
17063         non_q_regs_operand, zero_extended_scalar_load_operand,
17064         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
17065         ix86_comparison_operator, ix86_carry_flag_operator,
17066         fcmov_comparison_operator, promotable_binary_operator,
17067         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
17068         mult_operator, div_operator, arith_or_logical_operator,
17069         memory_displacement_operand, cmpsi_operand, long_memory_operand,
17070         aligned_operand): Move to predicates.md as define_predicates.
17071         (tls_symbolic_operand_1): Remove.
17072         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
17073         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
17074         (legitimize_address): Merge tls_symbolic_operand contents.
17075         (ix86_expand_move): Likewise.
17076         * config/i386/i386-protos.h: Update for exports.
17077         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
17078         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
17079         * config/i386/i386.md: Include predicates.md.
17080         * config/i386/predicates.md: New file.
17081
17082 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
17083
17084         PR c++/16924
17085         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
17086         SYMBOL_REF_DECL.
17087         (i386_pe_mark_dllimport): Likewise.
17088         (i386_pe_encode_section_info): Likewise, when overriding
17089         dllimport attribute.
17090
17091 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
17092
17093         * configure.ac: When testing for flex, nm, ar, and bison, check
17094         that they will actually be built.
17095         * configure: Regenerate.
17096
17097 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
17098
17099         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
17100         (MOVE_MAX_PIECES): Define.
17101
17102 2004-08-12  Devang patel  <dpatel@apple.com>
17103
17104         * dbxout.c (dbxout_begin_prologue): New function.
17105         (dbx_debug_hooks): Use new begin prologue hook.
17106         (dbxout_function_end): Emit N_ENSYM.
17107         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
17108
17109 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
17110
17111         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
17112         argument is float*.
17113
17114         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
17115         for vec_dss.
17116
17117         * doc/extend.texi (AltiVec builtins): Fix description for recent
17118         changes.  Update operation list to match current support.
17119
17120 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
17121
17122         * config/s390/s390.c (struct s390_frame_layout): New struct as element
17123         of struct machine_function.
17124         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
17125         changed all uses.
17126         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
17127         changed all uses.
17128         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
17129         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
17130         (s390_frame_area, s390_register_info): New functions.
17131         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
17132         for base register.
17133         (s390_return_addr_rtx, s390_return_address_offset)
17134         (s390_va_start, s390_gimplify_va_arg)
17135         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
17136         layouts.
17137         (s390_frame_info): Functionality partly moved to s390_register_info.
17138         Made adaptions for new stack layout.
17139         (save_gprs, restore_gprs): Changed meaning of second parameter and
17140         adapted all callers.
17141
17142         * config/s390/s390.h (s390_backchain_string): New global variable.
17143         (MASK_BACKCHAIN): Removed definition.
17144         (TARGET_BACKCHAIN): Changed check.
17145         (TARGET_KERNEL_BACKCHAIN): New macro.
17146         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
17147         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
17148         "kernel-backchain".
17149         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
17150
17151         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
17152         as condition.  Adjusted for new stack layout.
17153
17154         * doc/invoke.texi: Added documentation for new option
17155         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
17156         "-mno-backchain".
17157
17158 2004-08-12  Paul Brook  <paul@codesourcery.com>
17159
17160         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
17161         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
17162
17163 2004-08-12  David Daney  <ddaney@avtrex.com>
17164
17165         * java/gcj.texi:  Add subsection on signal usage.
17166
17167 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17168
17169         * expr.c (move_by_pieces): Set alignment for move to minimum of
17170         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
17171         alignment, but not less than the original alignment.
17172         (move_by_pieces_ninsns): Same.
17173         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
17174         (store_by_pieces_1): Same.
17175
17176 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
17177
17178         PR tree-optimization/16867
17179         * tree.c (is_global_var): New function.
17180         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
17181         Call is_global_var.
17182         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
17183         Update all users.
17184         (is_global_var): Declare.
17185         * tree-dfa.c (dump_variable): Display global and addressable
17186         attributes.
17187         (add_referenced_var): Clarify documentation when marking
17188         variables call-clobbered.
17189         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
17190         instead of needs_to_live_in_memory.
17191         (mark_call_clobbered): If the variable is a tag, mark it
17192         DECL_EXTERNAL.
17193         * tree-gimple.c (is_gimple_reg): Don't check for
17194         TREE_ADDRESSABLE.
17195         (is_gimple_non_addressable): Likewise.
17196         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
17197         needs to be marked call-clobbered.
17198         (setup_pointers_and_addressables): Call is_global_var instead
17199         of needs_to_live_in_memory.
17200         * tree-ssa-dce.c (need_to_preserve_store): Remove.
17201         Update all users with is_global_var.
17202         (mark_stmt_if_obviously_necessary): Fix processing of aliased
17203         stores.  Don't check the virtual definitions.  Rather, check
17204         whether the store is going into global memory.
17205         (find_obviously_necessary_stmts): Get the symbol from the PHI
17206         result.
17207         * tree-ssa-operands.c (get_call_expr_operands): Do not add
17208         clobbering may-defs if the call does not have side effects.
17209
17210 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
17211
17212         PR c++/16276
17213         * output.h (default_function_rodata_section,
17214         default_no_function_rodata_section): New prototypes.
17215         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
17216         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17217         (TARGET_ASM_OUT): Add it.
17218         * varasm.c (default_function_rodata_section,
17219         default_no_function_rodata_section): New functions.
17220         * final.c (final_scan_insn): Call
17221         targetm.asm_out.function_rodata_section instead of
17222         readonly_data_section.
17223         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17224         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17225         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17226         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17227         Likewise.
17228         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17229         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17230         Likewise.
17231         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17232         Likewise.
17233         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17234         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17235         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
17236
17237 2004-08-12  Paul Brook  <paul@codesourcery.com>
17238
17239         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
17240         frame info.
17241         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
17242         DWARF2_UNWIND_INFO.
17243
17244 2004-08-12  Ben Elliston  <bje@au.ibm.com>
17245
17246         PR target/16286
17247         * config/rs6000/altivec.h: Change vector to __vector throughout.
17248         (Except for the `vector' macro itself).
17249
17250 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17251
17252         * genpreds.c: Add capability to generate predicate bodies as
17253         well as function prototypes.  Write function prototypes for
17254         the generic predicates too.
17255         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
17256         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
17257         (write_match_code, write_predicate_expr, write_one_predicate_function)
17258         (parse_option): New functions.
17259         (output_predicate_decls): Delete.
17260         (main): Read the machine description, process DEFINE_PREDICATE or
17261         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
17262         as appropriate.
17263
17264         * genrecog.c (struct decision_test): Replace index with
17265         struct pred_data pointer.
17266         (next_index): Remove, unused.
17267         (pred_table, preds, special_mode_pred_table): Delete.
17268         (compute_predicate_codes, process_define_predicate): New functions.
17269         (validate_pattern, add_to_sequence, write_switch): Update for
17270         new data structures.
17271         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17272         Check both error_count and have_error.
17273
17274         * gensupport.c (in_fname, first_predicate): New globals.
17275         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
17276         (predicate_table, last_predicate, old_pred_table)
17277         (old_special_pred_table): New statics.
17278         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
17279         (add_predicate, init_predicate_table): New functions.
17280         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17281         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
17282         it or max_include_len.  Call init_predicate_table.
17283         (read_rtx): Run the predicate queue after the attribute queue
17284         but before all the others.
17285         * gensupport.h (in_fname, struct pred_data, first_predicate)
17286         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
17287         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
17288         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
17289         * dummy-conditions.c: Don't include bconfig.h, system.h,
17290         coretypes.h, tm.h, or system.h.  Do include stddef.h.
17291         Duplicate declaration of struct c_test from gensupport.h.
17292
17293         * Makefile.in (OBJS-common): Add insn-preds.o.
17294         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
17295         (insn-preds.c, insn-preds.o): New rules.
17296         (s-preds): Also generate insn-preds.c.
17297         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
17298         Update dependencies.
17299         (print-rtl.o, print-rtl1.o): Correct dependencies.
17300
17301         * recog.h: Delete prototypes of predicate functions.
17302
17303         * doc/md.texi (Predicates): New section with complete
17304         documentation of operand/operator predicates.  Remove some
17305         incomplete documentation of predicates from other places.
17306         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
17307         PREDICATE_CODES; indicate that both are deprecated in favor
17308         of define_predicate/define_special_predicate.
17309
17310         * config/ia64/ia64.c: All predicate function definitions moved
17311         to ia64.md, except
17312         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
17313         (ia64_expand_load_address, ia64_expand_move):
17314         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
17315
17316         * config/ia64/ia64.md: All predicates now defined here.
17317         (symbolic_operand): Is now a special predicate.
17318
17319         * config/ia64/ia64.h: Declare ia64_section_threshold.
17320         (PREDICATE_CODES): Delete.
17321
17322 2004-08-12  Richard Henderson  <rth@redhat.com>
17323
17324         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
17325         * c-semantics.c (add_stmt): Set it.
17326         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
17327         before instantiating a variable sized type.
17328
17329 2004-08-12  Richard Henderson  <rth@redhat.com>
17330
17331         * stor-layout.c (round_up, round_down): Move ...
17332         * fold-const.c (round_up, round_down): ... here.  Use
17333         multiple_of_p to avoid any arithmetic at all.
17334
17335 2004-08-12  Richard Henderson  <rth@redhat.com>
17336
17337         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
17338         (gimplify_init_ctor_preeval_1): New.
17339         (gimplify_init_ctor_preeval): New.
17340         (gimplify_init_ctor_eval): New.
17341         (gimplify_init_constructor): Use them.  Always gimplify the LHS
17342         object first.
17343
17344 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
17345
17346         (This patch is part of merge of objc-improvements-branch
17347         into mainline.)
17348
17349         * doc/frontends.texi: Mention Objective-C++ in addition to
17350         Objective-C.
17351         * doc/install.texi: Add 'obj-c++' to list of configurable
17352         languages.
17353         * doc/invoke.texi: Rename Objective-C option headings to
17354         indicate they also apply to Objective-C++.  List file
17355         extensions for Objective-C++ sources.  Mention that
17356         ObjC and ObjC++ compilations may also use C and C++ options,
17357         respectively.  Point users to doc/standards.texi for
17358         further info on ObjC and ObjC++.
17359         * doc/sourcebuild.texi: Mention the objcp/ directory and
17360         the Objective-C++ sources it contains.
17361         * doc/standards.texi: Update link to Apple ObjC site;
17362         add link to gcc readings.html WWW doc.
17363
17364 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
17365
17366         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
17367         and 2004-07-14 changes.
17368
17369 2004-08-12  Paul Brook  <paul@codesourcery.com>
17370
17371         * doc/invoke.texi: Fix typo.
17372
17373 2004-08-11 Devang Patel  <dpatel@apple.com>
17374
17375         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
17376         and -no_dead_strip_inits_and_terms.
17377         (LINK_SPEC): Same.
17378         * doc/invoke.texi (Darwin Options): Document -dead_strip and
17379         -no_dead_strip_inits_and_terms.
17380
17381 2004-08-11  Paul Brook  <paul@codesourcery.com>
17382
17383         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
17384         (arm_load_pic_register): ... to this.
17385         * config/arm/arm.c (arm_finalize_pic): Rename ...
17386         (arm_load_pic_register): ... to this.  Always output insns at the
17387         current location.  Load via low reg in thumb mode.
17388         (arm_expand_prologue): Call arm_load_pic_register.
17389         (thumb_expand_prologue): Ditto.
17390         * config/arm/arm.h (FINALIZE_PIC): Remove.
17391         * config/arm/arm.md (builtin_setjmp_receiver): Call
17392         arm_load_pic_register.
17393
17394 2004-08-11  Paul Brook  <paul@codesourcery.com>
17395
17396         * arm.c (thumb_force_lr_save): Add prototype.
17397         (thumb_compute_save_reg_mask): New function.
17398         (thumb_find_work_register): New function.
17399         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
17400         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
17401         Don't clobber r3 when removing pretend args.
17402         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
17403         (thumb_output_function_prologue): Use new functions.
17404         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
17405         * arm.h (THUMB_REG_PUSHED_P): Remove.
17406
17407 2004-08-11  James E Wilson  <wilson@specifixinc.com>
17408
17409         PR rtl-optimization/16490
17410         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
17411         global_live_at_end for new basic block if already set for other blocks.
17412
17413 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
17414
17415         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
17416
17417         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
17418         (mfcr rlwinm rlwinm patterns): Set length to 12.
17419
17420 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
17421
17422         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
17423         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
17424         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
17425         (start_ssa_stmt_operands): Delete.
17426         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
17427         struct stmt_operands_d.
17428         (build_ssa_operands): New extern entry point.
17429         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
17430         building code, replace with create_ssa_artficial_load_stmt().
17431         * tree-ssa-operands.c (struct voperands_d): Delete.
17432         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
17433         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
17434         (free_uses, free_defs, free_vuses, free_v_may_defs,
17435         free_v_must_defs): Remove dealloc parameter.
17436         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
17437         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
17438         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
17439         vector comparisons, ssa_name reuse, and allocations here.
17440         (verify_start_operands): Delete.
17441         (finalize_ssa_stmt_operands): Set new operands by calling finalize
17442         routines.
17443         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
17444         (append_def, append_usei): Simplify to simple accumulation.
17445         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
17446         duplicates and simple accumulation.
17447         (free_ssa_operands): Free vectors in a stmt_operand structure.
17448         (build_ssa_operands): New. Create a new stmt_operand structure from
17449         a stmt and an old set of stmt_operands.
17450         (get_stmt_operands): Simplify and call build_ssa_operands.
17451         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
17452         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
17453         add_call_read_ops): Don't pass prev_vops around anymore.
17454         (note_addressable): Return if no stmt annotation.
17455         (copy_virtual_operands): Access v_may_def operands through a struct.
17456         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
17457         hash tables without treating the stmt as a real stmt.
17458         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
17459         v_may_def def and use through a struct instead of 2 array elements.
17460         (struct v_may_def_optype_d): Use v_may_def_operand_type.
17461         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
17462
17463 2004-08-11  Nick Clifton  <nickc@redhat.com>
17464
17465         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
17466         this funciton's behaviour.  Return true when the current function
17467         has a section attribute and -mlong-calls is in effect.
17468         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
17469         short-call marker when -mlong-calls is in effect and the function
17470         has a section attribute.
17471
17472 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
17473
17474         * stmt.c (expand_return): If asked to return the RESULT_DECL,
17475         just call expand_value_return on result_rtl.
17476
17477 2004-08-10  Richard Henderson  <rth@redhat.com>
17478
17479         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
17480         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
17481         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
17482         (add_location_or_const_value_attribute): ... not here.  Use
17483         loc_descriptor_from_tree if possible.
17484         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
17485         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
17486         values specially.
17487         (loc_descriptor_from_tree): New.  Update callers.
17488         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
17489         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
17490         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
17491         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
17492         and BUILT_IN_STACK_RESTORE.
17493         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
17494         * stmt.c (expand_stack_alloc): Remove.
17495         * tree-mudflap.c (mx_register_decls): Don't look for
17496         BUILT_IN_STACK_ALLOC.
17497         * tree-nested.c (convert_local_reference): Likewise.
17498         * tree.h (DECL_VALUE_EXPR): New.
17499
17500 2004-08-10  Richard Henderson  <rth@redhat.com>
17501
17502         * stor-layout.c (round_up): Check for 0/1 before dividing.
17503         (round_down): Likewise.
17504
17505         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
17506
17507 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
17508
17509         * config.gcc (arm*-*-eabi*): New target.
17510         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
17511         (TARGET_LIB_INT_CMP_BIASED): Likewise.
17512         * expmed.c (expand_divmod): Try a two-valued divmod function as a
17513         last resort.
17514         * gthr.h: Remove bogus tokens at end of #pragma.
17515         * optabs.c (expand_twoval_binop_libfunc): New function.
17516         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
17517         (prepare_float_lib_cmp): Try reversing the condition.
17518         (debug_optab_libfuncs): New function.
17519         * optabs.h (expand_twoval_binop_libfunc): Declare.
17520         * config/arm/arm.c (arm_init_libfuncs): New function.
17521         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
17522         (TARGET_INIT_LIBFUNCS): Define it.
17523         * config/arm/arm.h (TARGET_BPABI): New macro.
17524         * config/arm/arm-protos.h
17525         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
17526         * config/arm/bpabi.S: New file.
17527         * config/arm/bpabi.c: Likewise.
17528         * config/arm/bpabi.h: Likewise.
17529         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
17530         (__aeabi_drsub): Likewise.
17531         (__aeabi_dsub): Likewise.
17532         (__aeabi_dadd): Likewise.
17533         (__aeabi_ui2d): Likewise.
17534         (__aeabi_i2d): Likewise.
17535         (__aeabi_f2d): Likewise.
17536         (__aeabi_dmul): Likewise.
17537         (__aeabi_ddiv): Likewise.
17538         (__aeabi_cdrcmple): Likewise.
17539         (__aeabi_cdcmpeq): Likewise.
17540         (__aeabi_cdcmple): Likewise.
17541         (__aeabi_dcmpeq): Likewise.
17542         (__aeabi_dcmplt): Likewise.
17543         (__aeabi_dcmple): Likewise.
17544         (__aeabi_dcmpge): Likewise.
17545         (__aeabi_dcmpgt): Likewise.
17546         (__aeabi_dcmpun): Likewise.
17547         (__aeabi_d2iz): Likewise.
17548         (__aeabi_d2uiz): Likewise.
17549         (__aeabi_d2f): Likewise.
17550         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
17551         (__aeabi_frsub): Likewise.
17552         (__aeabi_fsub): Likewise.
17553         (__aeabi_fadd): Likewise.
17554         (__aeabi_ui2f): Likewise.
17555         (__aeabi_i2f): Likewise.
17556         (__aeabi_fmul): Likewise.
17557         (__aeabi_fdiv): Likewise.
17558         (__aeabi_cfrcmple): Likewise.
17559         (__aeabi_cfcmpeq): Likewise.
17560         (__aeabi_cfcmple): Likewise.
17561         (__aeabi_fcmpeq): Likewise.
17562         (__aeabi_fcmplt): Likewise.
17563         (__aeabi_fcmple): Likewise.
17564         (__aeabi_fcmpge): Likewise.
17565         (__aeabi_fcmpgt): Likewise.
17566         (__aeabi_fcmpun): Likewise.
17567         (__aeabi_f2iz): Likewise.
17568         (__aeabi_f2uiz): Likewise.
17569         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
17570         (__aeabi_uidivmod): New function or alias.
17571         (__aeabi_idivmod): Likewise.
17572         (__aeabi_idiv0): Likewise.
17573         (__aeabi_ldiv0): Likewise.
17574         (__aeabi_llsr): Likewise.
17575         (__aeabi_lasr): Likewise.
17576         (__aeabi_llsl): Likewise.
17577         (bpabi.S): Include it.
17578         * config/arm/libgcc-bpabi.ver: New file.
17579         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
17580         (LINK_SPEC): Remove.
17581         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
17582         __aeabi_ulcmp.
17583         * config/arm/t-bpabi: New file.
17584         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
17585         (TARGET_LIB_INT_CMP_BIASED): Likewise.
17586
17587 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
17588
17589         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
17590         * config/rs6000/rs6000.md (clrmemsi): New pattern.
17591         * config/rs6000/rs6000.c (expand_block_clear): New function.
17592         (expand_block_move): Convert alignment to bits.  Use SImode and
17593         HImode for unaligned addresses if not STRICT_ALIGNMENT.
17594
17595 2004-08-10  Caroline Tice  <ctice@apple.com>
17596
17597         * varasm.c (unlikely_section_label): New global variable.
17598         (unlikely_text_section_name): New global variable.
17599         (text_section):  Remove alignment statement.
17600         (unlikely_text_section): Remove alignment statement; use
17601         unlikely_section_label rather than hard-coded string.
17602         (assemble_start_function): Initialize unlikely_section_label and
17603         unlikely_text_section_name;  make sure cold section is properly
17604         aligned at start of function; output unlikely_section_label if
17605         appropriate.
17606
17607 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
17608
17609         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
17610         * config/s390/s390.c (s390_canonicalize_comparison): New function.
17611         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
17612         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
17613         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
17614         ("*tmqi_mem"): Remove SUBREG from pattern.
17615         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
17616         ("*andsi3_cconly"): Likewise.
17617
17618 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
17619
17620         PR target/16909
17621         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
17622
17623 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
17624
17625         * doc/sourcebuild.texi (compat testing): Document available test
17626         framework commands.  Use the preferred spelling of DejaGnu.
17627
17628 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
17629
17630         * lambda.h: Add matrix type, and prototypes for remainder of
17631         matrix and vector functions.
17632         (lambda_vector_mult_const): New function.
17633         (lambda_vector_negate): Ditto.
17634         (lambda_vector_add): Ditto.
17635         (lambda_vector_add_mc): Ditto.
17636         (lambda_vector_copy): Ditto.
17637         (lambda_vector_zerop): Ditto.
17638         (lambda_vector_equal): Ditto.
17639         (lambda_vector_min_nz): Ditto.
17640         (lambda_vector_first_nz): Ditto.
17641         (lambda_vector_matrix_mult): Ditto.
17642         * lambda-mat.c: New file.
17643         * Makefile.in (lambda-mat.o): New.
17644
17645 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
17646
17647         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
17648         after linking stmt into the program.
17649         (bsi_remove): Don't call modify_stmt.
17650         * tree-complex.c (update_complex_assignment,
17651         expand_complex_comparison): Call modify_stmt after changing the stmt.
17652         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
17653         removing the stmt.
17654         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
17655         the stmt, and only if needed.
17656         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
17657         expression.
17658         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
17659         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
17660         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
17661         (eliminate_redundant_computations): Don't pass an annotation. Call
17662         modify_stmt rather than setting the annotation directly.
17663         (record_equivalences_from_stmt): Remove unused local 'j'.
17664         (cprop_operand): Take a stmt rather than an annotation as a parameter.
17665         Call modify_stmt.
17666         (cprop_into_stmt): Pass stmt rather than annotation.
17667         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
17668         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
17669         modify_stmt.
17670         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
17671
17672 2004-08-10  Jason Merrill  <jason@redhat.com>
17673
17674         PR middle-end/16948
17675         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
17676         the RESULT_DECL.
17677
17678 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
17679
17680         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
17681         hash function.
17682
17683 2004-08-10  Roger Sayle  <roger@eyesopen.com>
17684
17685         * config/mips/mips.md: New reciprocal square root patterns that
17686         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
17687
17688 2004-08-10  Paul Brook  <paul@codesourcery.com>
17689
17690         * config/arm/arm-protos.h (arm_set_return_address,
17691         thumb_set_return_address): Add prototypes.
17692         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
17693         * config/arm/arm.c (arm_compute_func_type,
17694         use_return_insn, arm_compute_save_reg0_reg12_mask,
17695         arm_compute_save_reg_mask, arm_output_function_prologue,
17696         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
17697         current_function_calls_eh_return.
17698         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
17699         old eh code.
17700         (arm_set_return_address, thumb_set_return_address): New functions.
17701         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
17702         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
17703         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
17704         (epilogue): Use the stackadj register.
17705         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
17706
17707 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
17708
17709         PR target/3144
17710         * expr.c (move_by_pieces_ninsns): Add max_size argument.
17711         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
17712         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
17713         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
17714         but using MOVE_RATIO.
17715         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
17716         (can_store_by_pieces): Change max_size type to unsigned int.
17717         (store_by_pieces_1): Likewise.  Pass max_size to
17718         move_by_pieces_ninsns.
17719         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
17720         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
17721         to move_by_pieces_ninsns.
17722         (STORE_BY_PIECES_P): Define.
17723         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
17724         to move_by_pieces_ninsns.
17725         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
17726
17727         * config/i386/i386.h (CLEAR_RATIO): Define.
17728
17729 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
17730
17731         * expr.c (expand_expr_real_1): Add back code that was not dead.
17732
17733 2004-08-09  Andrew Pinski  <apinski@apple.com>
17734
17735         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
17736         which is found to be compatible before returning the aliasing set.
17737
17738 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
17739
17740         * ggc-zone.c (struct alloc_zone): Add statistics counters.
17741         (always_collect): New flag.
17742         (ggc_alloc_zone_1): Update statistics support.  Don't include
17743         overhead in allocated counter.
17744         (sweep_pages): Update allocated counter for large pages.  Don'y
17745         include overhead.
17746         (ggc_collect_1): Always collect.
17747         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
17748         whether to collect.
17749         (SCALE, LABEL): New macros.
17750         (ggc_print_statistics): Add statistics support.
17751
17752 2004-08-09  Roger Sayle  <roger@eyesopen.com>
17753
17754         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
17755         (init_expmed): Fix potential overrun problem with "all.reg".
17756         (expand_sdiv2_pow2): Add an alternate implementation for signed
17757         division, if the target provides a suitable conditional move insn.
17758
17759 2004-08-09  Paul Brook  <paul@codesourcery.com>
17760         Richard Henderson  <rth@redhat.com>
17761
17762         * unwind-dw2.c (uw_install_context_1): Update target saved stack
17763         pointer.
17764
17765 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
17766
17767         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
17768         Check DATA limit only if there's no AS limit.  Ignore insanely
17769         low DATA limits.
17770         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
17771         but take care that the AS limit isn't overrun.
17772         * doc/invoke.texi: Update documentation of min-heapsize parameter.
17773
17774 2004-08-09  Jeff Law  <law@redhat.com>
17775
17776         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
17777         (tree-ssa-threadupdate.o): Add dependencies.
17778         * tree-ssa-threadupdate.c: New file.
17779         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
17780         (rewrite_vars_out_of_ssa): Remove prototype.
17781         (cleanup_tree_cfg): Returns a bool.
17782         * tree.h (thread_through_all_blocks): Prototype.
17783         * tree-outof-ssa.c  (SSANORM_*): Move into here.
17784         (remove_ssa_form): Now static.
17785         (rewrite_vars_out_of_ssa): Kill.
17786         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
17787         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
17788         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
17789         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
17790         anything was changed.
17791         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
17792         from the PHI's annotation rather than the edge associated with
17793         the new argument.
17794         * tree-ssa-dom.c (redirection_edges): Kill.
17795         (redirect_edges_and_update_ssa_graph): Kill.
17796         (tree_ssa_dominator_optimize): Do not reset forwardable flag
17797         for blocks anymore.  Do not initialize redirection_edges.
17798         Call thread_through_all_blocks.  Simplify code for cleanup
17799         of the CFG and iterating.  No longer call cleanup_tree_cfg
17800         outside the iteration loop.
17801         (thread_across_edge): No longer mess with forwardable blocks.
17802
17803 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
17804
17805         * explow.c (memory_address): Use memory_address_p.
17806         * recog.c (general_operand): Likewise.
17807         * regrename.c: No need to define REG_OK_STRICT.
17808
17809 2004-08-09  Steven Bosscher  <stevenb@suse.de>
17810
17811         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
17812         New timers.
17813         * gcse.c: Include timevar.h.
17814         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
17815         and global_copy_prop_count.
17816         (local_const_prop_count, local_copy_prop_count): New static globals.
17817         (gcse_main): Set the right timevar for each pass.
17818         (cprop_jump): Increment global_const_prop_count when a constant is
17819         propagated.  Add "GLOBAL" to dump output.
17820         (cprop_insn): Increment global_const_prop_count when a constant is
17821         propagated, or global_copy_prop_count when a copy is propagated.
17822         (do_local_cprop): Likewise for local_const_prop_count and
17823         local_copy_prop_count.
17824         (one_cprop_pass): Initialize const/cprop counters to zero.
17825         Print out results of local and global const/cprop separately.
17826         (bypass_block): Break over-length line.
17827         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
17828         for bb-reorder.o and tracer.o.
17829
17830 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
17831
17832         * Makefile.in (GTFILES): Remove stmt.c
17833         (stmt.o): Do not depend on gt-stmt.h.
17834         * emit-rtl.c (emit_line_note): Do not call
17835         set_file_and_line_for_stmt.
17836         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
17837         do everything.
17838         * function.c (free_after_parsing): Do not free STMT field.
17839         (allocate_struct_function): Do not call init_stmt_for_function.
17840         (assign_stack_temp_for_type): Do not accept values of keep
17841         other than 0 or 1.
17842         (init_temp_slots): Do not initialize removed variables.
17843         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
17844         and X_VAR_TEMP_SLOT_LEVEL fields.
17845         * rtl.h (set_file_and_line_for_stmt): Remove.
17846         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
17847         struct stmt_status, cond_stack, case_stack, nesting_stack,
17848         nesting_depth, emit_locus, set_file_and_line_for_stmt,
17849         same_case_target_p, init_stmt_for_function, emit_nop,
17850         expand_start_cond, expand_start_elseif, expand_start_else,
17851         expand_elseif, expand_end_cond): Remove.
17852         (preserve_subexpressions_p): Remove references to CFUN->STMT.
17853         (expand_start_case, expand_end_case_type): Remove, merge into...
17854         (expand_case): ... this one, including other bits from
17855         expand_expr_real_1.  Inline same_case_target_p.  Turn members
17856         of CASE_STACK into local variables.
17857         (emit_case_bit_tests): Inline same_case_target_p.
17858         (add_case_node): Add HEAD argument, return new head of the list,
17859         do not handle default label here.
17860         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
17861         expand_start_elseif, current_nesting_level, expand_start_case,
17862         expand_end_case_type, expand_end_case, add_case_node,
17863         init_stmt_for_function, expand_elseif): Remove prototypes.
17864         (expand_case): Add prototype.
17865
17866 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
17867
17868         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
17869
17870 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
17871
17872         * expr.c (var_rtx): Remove.
17873         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
17874         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
17875         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
17876         Abort.
17877         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
17878         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
17879         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
17880
17881 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
17882         Ayal Zaks <zaks@il.ibm.com>
17883
17884         * common.opt (freschedule-modulo-scheduled-loops): New flag.
17885         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
17886         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
17887         when -freschedule-modulo-scheduled-loops flag is not specified.
17888         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
17889         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
17890         More accurate placing of insn in row of partial schedule.
17891         (ps_insn_find_column): New function.
17892         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
17893         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
17894         (schedule_region): Use sched_is_disabled_for_current_region_p.
17895         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
17896
17897 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
17898
17899         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
17900         change.
17901
17902 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
17903
17904         * config/i386/i386.c (ix86_expand_clrmem): Properly call
17905         gen_strset for 64bit target.
17906
17907 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
17908
17909         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
17910
17911 2004-08-07  Jason Merrill  <jason@redhat.com>
17912
17913         Make return in memory explicit.
17914         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
17915         (assign_parm_find_data_types): Remove code for old front end
17916         invisible reference handling.
17917         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
17918         (expand_function_end): Likewise.
17919         * gimplify.c (gimplify_return_expr): Handle a dereferenced
17920         RESULT_DECL.
17921         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
17922         (declare_return_variable): Handle DECL_BY_REFERENCE.
17923         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
17924         (cp_genericize_r): Use convert_from_reference.
17925         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
17926         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
17927
17928         * c-common.c (c_warn_unused_result): Check TREE_USED before
17929         warning about a CALL_EXPR with an unused value.
17930
17931 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
17932
17933         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
17934         to the compiler.  Use -fshort-wchar by default.
17935
17936 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
17937
17938         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
17939         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
17940         threshhold.
17941         * doc/invoke.texi (param): Document min-crossjump-insns.
17942
17943 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
17944
17945         PR c/13282
17946         * c.opt (Wmissing-field-initializers): New option.
17947         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
17948         * c-typeck.c (pop_init_level): Guard the missing field warning with
17949         warn_missing_field_initializers rather than extra_warnings.
17950         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
17951         some of the explanation from...
17952         (-Wextra): ...here.  Say that the missing field warning can be
17953         seperately controlled by -Wmissing-field-initializers.
17954
17955 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
17956
17957         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
17958         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
17959         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
17960         * tree.def (ENTRY_VALUE_EXPR): Remove.
17961
17962 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
17963
17964         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
17965         the places where it is actually needed.  Don't use repz; stosb
17966         for -Os with sufficiently small constant sizes.
17967         For sufficiently small repz; stos{l,q} repeat counts use a sequence
17968         of stos{l,q} instructions instead.
17969
17970 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17971
17972         PR tree-optimization/16807
17973         * loop-iv.c (dump_iv_info): Dump invariants correctly.
17974         (iv_subreg, iv_extend): Express value of invariant purely in
17975         base field.
17976
17977 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
17978
17979         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
17980         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
17981
17982 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
17983
17984         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
17985         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
17986         pre_dec_operand.
17987         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
17988         pattern until reload is finished to allow better code generation
17989         and split them completely into separate instrunctions.
17990         (*andsi3_split): New pattern.
17991
17992 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
17993
17994         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
17995         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
17996         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
17997         * tree.h (handle_dll_attribute): Declare.  Test
17998         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
17999         * c-common.h (c_determine_visibility): Declare.
18000         * c-common.c (c_determine_visibility): New function.
18001         * c-decl.c (finish_decl): Use it.
18002         (finish_function): Likewise.
18003         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
18004         zero, by default.  Use #if, not #ifdef, to test it.
18005         * config/arm/arm.c (arm_attribute_table): Use
18006         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
18007         #if.
18008         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
18009         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18010         to 1.
18011         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
18012         * config/i386/i386.c (ix86_attribute_table): Use
18013         handle_dll_attribute for dllimport/dllexport.  Test
18014         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18015         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
18016         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18017         it to 1.
18018         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
18019         with #if.
18020         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18021         it to 1.
18022         * doc/extend.texi (dllexport): Clarify and correct documentation.
18023         (dllimport): Likewise.
18024         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
18025         handle_dll_attribute.
18026
18027 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18028
18029         * tree-ssa-loop-manip.c: New file.
18030         * Makefile.in (tree-ssa-loop-manip.o): Add.
18031         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
18032         Declare.
18033         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
18034         form.
18035         (tree_ssa_loop_done): Verify loop closed ssa form.
18036         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
18037
18038 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18039
18040         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
18041         pa_asm_output_aligned_local): New functions.
18042         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
18043         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
18044         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
18045         pa_asm_output_aligned_common.
18046         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18047         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
18048         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18049         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18050         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
18051         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18052         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18053         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
18054         common data.
18055
18056 2004-08-05  Andrew Pinski  <apinski@apple.com>
18057
18058         * objc/objc-act.c (build_objc_string_object): Mark the address
18059         expression as constant.
18060
18061 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
18062
18063         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
18064         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
18065         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
18066
18067 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18068
18069         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
18070         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
18071         out, and associated obsolete comments.
18072
18073 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
18074
18075         * tree.h (force_fit_type): Return a tree, take three flags.
18076         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
18077         TREE_CONSTANT_OVERFLOW here.
18078         (int_const_binop, const_binop): Adjust.
18079         (size_int_type): Do sign extension here.
18080         (fold_convert_const, optimize_bit_field_compare,
18081         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
18082         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
18083         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
18084
18085 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18086
18087         PR tree-optimization/16864
18088         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
18089         for ssa names without default_def.
18090
18091 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
18092
18093         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
18094         frame pointer, restore eax with an ebp-relative address.
18095
18096 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
18097
18098         PR 14516
18099         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
18100         * c-common.h (make_rtl_for_local_static): Delete.
18101         * c-decl.c (shadow_tag_warned): Clean up comment.
18102         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
18103         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
18104         * c-semantics.c (make_rtl_for_local_static): Delete.
18105         * expr.c (init_block_move_fn): Use set_user_assembler_name.
18106         (init_block_clear_fn): Likewise.
18107         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
18108         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
18109         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
18110         * tree.h (make_decl_rtl): Remove second parameter.
18111         (set_user_assembler_name): New.
18112         * varasm.c (set_user_assembler_name): New.
18113         (make_decl_rtl): Remove second parameter.  Update callers in many
18114         files.
18115
18116 2004-08-05  Adam Nemet  <anemet@lnxw.com>
18117
18118         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
18119         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
18120         to LynxOS 4.0.
18121         * gthr-lynx.h: New file.
18122         * config/lynx-ng.h: Remove file.
18123         * config/lynx.h: Update to LynxOS 4.0.
18124         * config/t-lynx: New file.
18125         * config/i386/lynx-ng.h: Remove file.
18126         * config/i386/lynx.h: Update to LynxOS 4.0.
18127         * config/rs6000/lynxbase.h: Remove file.
18128         * config/rs6000/lynx.h: Update to LynxOS 4.0.
18129         * config/rs6000/t-lynx: New file.
18130         * doc/install.texi (Options specification): Remove reference to
18131         LynxOS from systems where --with-gnu-as makes a difference.
18132
18133 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18134
18135         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
18136         __UINTMAX_TYPE__.
18137         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
18138         __INTMAX_MAX__.
18139         (c_cpp_builtins): Call it.
18140         * doc/cpp.texi: Update.
18141
18142 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
18143
18144         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
18145         cost.
18146
18147 2004-08-04  Jan Hubicka  <jh@suse.cz>
18148
18149         * basic-block.h (profile_staus): New global variable.
18150         * cfg.c (profile_status): Declare.
18151         (check_bb_profile): Break out from ....; use profile_status
18152         (dump_flow_info): ... here.
18153         * cfgbuild.c (find_basic_blocks): Set profile_status.
18154         * cfgexpand.c (tree_expand_cfg): Likewise.
18155         * predict.c (estimate_probability): Likewise.
18156         * profile.c (branch_prob): Likewise.
18157         * tree-cfg.c (build_tree_cfg): Likewise.
18158         (dump_function_to_file): Use check_bb_profile.
18159         * tree-pretty-print (dump_bb_header): Likewise.
18160         * tree-profile.c (do_tree_profiling): Cleanup.
18161
18162 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
18163
18164         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
18165         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
18166         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
18167         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
18168         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
18169         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
18170         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
18171         (ggc-none.o, errors.o): Move rule to generators section;
18172         correct dependencies.
18173         (min-insn-modes.o): Move rule to generators section; remove
18174         unnecessary explicit command; correct dependencies.
18175         (print-rtl.o, print-rtl1.o): Correct dependencies.
18176         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
18177         (mostlyclean): Update.
18178
18179         * errors.c: Include bconfig.h not config.h.  Correct comment.
18180         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
18181         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
18182         * print-rtl.c: Don't include tm_p.h.
18183
18184         * rtl.h: Move forward-decl of struct function down where it's
18185         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
18186         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
18187
18188 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18189             Jeff Law  <law@redhat.com>
18190
18191         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
18192         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
18193         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
18194         manipulate the duplicated ssa names.
18195         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
18196         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
18197         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
18198         New functions.
18199         (release_ssa_name): Do not release ssa names that may have multiple
18200         definitions.
18201         * tree.h (release_ssa_name_force, mark_for_rewrite,
18202         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
18203         marked_ssa_names): Declare.
18204         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
18205         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
18206         Update call to rewrite_ssa_into_ssa.
18207
18208 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
18209
18210         * defaults.h (TARGET_DECLSPEC): New macro.
18211         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
18212         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
18213         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
18214         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
18215         __declspec support.
18216         (TARGET_DECLSPEC): Define.
18217         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
18218         __declspec support.
18219         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
18220         __declspec support.
18221         (TARGET_DECLSPEC): Define.
18222         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
18223         __declspec support.
18224         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
18225         support.
18226         * doc/tm.texi (TARGET_DECLSPEC): Document.
18227
18228         * doc/extend.texi: Fix typo in comment.
18229
18230 2004-08-04  Paul Brook  <paul@codesourcery.com>
18231
18232         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18233         (TARGET_CXX): Use it.
18234         * target.h (struct gcc_target): Add cdtor_returns_this.
18235         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
18236         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18237         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
18238
18239 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
18240
18241         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
18242         low/high pair. Do range checking directly.
18243         (interpret_integer): Adjust.
18244
18245 2004-08-04  Nick Clifton  <nickc@redhat.com>
18246
18247         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
18248         GCC ABI.
18249         * doc/invoke.texi: Document this new switch and also the -mrenesas
18250         switch.
18251
18252 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
18253
18254         * cfglayout.c (insn_locators_initialize): Update the current
18255         location before initializing a location.
18256
18257 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18258
18259         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
18260         (dbxout_function_end): Return after emitting the "Lscope" symbol
18261         under the same conditions that this function formerly wasn't called.
18262         Add explanatory comments.
18263
18264         PR 14860
18265         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
18266         on the new decl.
18267
18268         PR 13956
18269         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
18270         functions, broken out of dbxout_block.
18271         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
18272         stabs too, if it contains symbols.  Use the begin_label and
18273         the Lscope label (emitted by dbxout_function_end) for the
18274         range of this block.
18275
18276 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18277
18278         * doc/install.texi: Update autoconf version requirements.
18279
18280 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18281
18282         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
18283         * recog.c (general_operand, immediate_operand, nonmemory_operand)
18284         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
18285         * regclass.c (record_reg_classes): Likewise.
18286         * reload.c (find_reloads): Likewise.
18287         * reload1.c (reload): Likewise.
18288
18289 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18290
18291         * gensupport.c (init_md_reader_args_cb): Renamed from
18292         init_md_reader_args.  Add third option, callback function for
18293         parsing program-specific options.  Add diagnosis of incorrect
18294         number of input files.
18295         (init_md_reader): Fold into init_md_reader_args_cb.
18296         (init_md_reader_args): Now a thin wrapper around
18297         init_md_reader_args_cb.
18298         * gensupport.h: Update prototypes.
18299
18300         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
18301         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
18302         * genrecog.c: No need to diagnose lack of an input file;
18303         init_md_reader_args will handle it.
18304         * genconditions.c: Likewise, and use init_md_reader_args.
18305         * genconstants.c: Likewise, and no need to call read_md_rtx.
18306
18307 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18308
18309         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
18310         declarations.
18311
18312 2004-08-03  Mike Stump  <mrs@apple.com>
18313
18314         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
18315         for frameworks.
18316         * doc/invoke.texi (Darwin Options): Update to reflect above.
18317
18318 2004-08-03  Roger Sayle  <roger@eyesopen.com>
18319
18320         PR middle-end/16790
18321         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
18322         truncations, not just global truncations.
18323
18324 2004-08-03  Andrew Pinski  <apinski@apple.com>
18325
18326         PR bootstrap/16865
18327         * loop-iv.c (simplify_using_assignment): Initialize lhs.
18328
18329 2004-08-03  Paul Brook  <paul@codesourcery.com>
18330
18331         * gcc/doc/install.texi: Document MPFR requirement.
18332
18333 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
18334
18335         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
18336         and mmap() explicitly instead of relying on preset autoconf cache
18337         variables.
18338         * configure: Regenerate.
18339
18340 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
18341
18342         PR target/16570
18343         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
18344         to tmake_file.
18345         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
18346         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
18347         to tmake_file.
18348
18349         * config/i386/t-gmm_malloc: New file.
18350         * config/i386/t-pmm_malloc: Likewise.
18351
18352         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
18353
18354 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
18355             Tanguy Fautrà <tfautre@pandora.be>
18356
18357         * config/i386/pmm_malloc.h: New file.
18358
18359 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
18360
18361         * config/i386/gmm_malloc.h: New file.
18362
18363 2004-08-03  Dale Johannesen  <dalej@apple.com>
18364
18365         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
18366         * c-common.c: Include opts.h.
18367         (c_common_get_alias_set): Fix check for a single input file.
18368         * toplev.c: Remove current_file_decl.
18369         * tree.h: Ditto.
18370
18371 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
18372
18373         * config.gcc (arm*-*-symbianelf*): New target.
18374         * config/arm/symbian.h: New file.
18375
18376         * gthr-gnat.c: Add visibility #pragmas.
18377         * gthr-gnat.h : Likewise.
18378         * gthr.h: Likewise.
18379         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
18380         (__ffsDI2): Likewise.
18381         (__clzSI2): Likewise.
18382         (__ctzSI2): Likewise.
18383         (__ctzDI2): Likewise.
18384         (__popcountSI2): Likewise.
18385         (__popcountDI2): Likewise.
18386         (__paritySI2): Likewise.
18387         (__parityDI2): Likewise.
18388         * libgcc2.h: Add visibility #pragmas.
18389         (__clzDI2): Add prototype.
18390         (__clzSI2): Likewise.
18391         (__ctzSI2): Likewise.
18392         (__ffsDI2): Likewise.
18393         (__ffsSI2): Likewise.
18394         (__ctzDI2): Likewise.
18395         (__popcountSI2): Likewise.
18396         (__popcountDI2): Likewise.
18397         (__paritySI2): Likewise.
18398         (__parityDI2): Likewise.
18399         * unwind-dw2-fde.h: Add visibility #pragmas.
18400         * unwind.h: Likewise.
18401
18402 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
18403             Dale Johannesen  <dalej@apple.com>
18404             Roger Sayle  <roger@eyesopen.com>
18405
18406         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
18407         constants more accurately.  Adjust costs for FMA instructions.
18408         Add cases for most logical and float operations.  Recurse into
18409         most operands.
18410
18411 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
18412
18413         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
18414
18415 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
18416
18417         * ra-build.c (conflicts_between_webs): For webs that cross a call add
18418         conflicts to regs_invalidated_by_call.
18419
18420 2004-08-03  Paul Brook  <paul@codesourcery.com>
18421
18422         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
18423
18424 2004-08-03  Jan Hubicka  <jh@suse.cz>
18425
18426         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
18427         ARRAY_REF argument.
18428
18429 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
18430
18431         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
18432         arm968es, arm10e, arm1020e, arm1022e.
18433         * invoke.texi: Update list of ARM cores.
18434         * arm-tune.md: Regenerate.
18435
18436 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
18437
18438         * arm/gentune.sh: New file.
18439         * arm/t-arm: New file.
18440         * arm/arm-tune.md: New file (autogenerated).
18441         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
18442         * arm.md (attribute tune): Delete.  Include arm-tune.md.
18443
18444 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
18445
18446         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
18447         penultimate parameter.  All callers adjusted.
18448         (struct prefix_list): Remove used_flag_ptr.
18449         (find_a_file): Do not set *pl->used_flag_ptr.
18450         (warn_B, warn_std_ptr): Remove.
18451
18452 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
18453             Mostafa Hagog <mustafa@il.ibm.com>
18454
18455         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
18456
18457 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
18458
18459         * dwarf2out.c (output_call_frame_info): Don't change data format
18460         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
18461         label.  Use 'true' not '1'.
18462         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
18463         required.
18464
18465 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18466
18467         * gdbinit.in: Reflect previous changes to rtunion_def.
18468
18469 2004-08-02  Roger Sayle  <roger@eyesopen.com>
18470
18471         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
18472         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
18473
18474 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18475
18476         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
18477         vec_p_reserve.
18478         * langhooks.h (lang_hooks::builtin_function): Rename parameter
18479         from "class" to "bt_class".
18480
18481 2004-08-02  Paul Brook  <paul@codesourcery.com>
18482
18483         PR rtl-optimization/15068
18484         * flow.c (init_propagate_block_info): Check condition is reversible.
18485
18486 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18487
18488         * gengtype.h (options::info): Change type to const char *.
18489         (enum gc_used_enum): Move out of struct type scope.
18490         * gengtype.c (create_option): Convert initializer for option::info to
18491         appropiate type.
18492         (adjust_field_type, walk_type, write_func_for_structure,
18493         write_root, write_roots): Remove pointless cast.
18494
18495 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
18496
18497         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
18498
18499 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18500
18501         * rtl.h (union rtunion_def): Have all members  start with the
18502         prefix "rt_".
18503         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
18504         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
18505         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
18506         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
18507         access.
18508         * gengtype.c (adjust_field_rtx_def): Likewise.
18509         * rtlanal.c (loc_mentioned_in_p): Likewise.
18510
18511 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
18512
18513         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
18514         Replace uses of mips/elf64.h with mips/elf.h
18515         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
18516         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
18517         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
18518         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
18519         (HANDLE_SYSV_PRAGMA): Delete.
18520         (ASM_OUTPUT_DEF): Fix formatting.
18521         * config/mips/elf64.h: Delete.
18522
18523 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
18524
18525         * config/ia64/ia64.c (got_symbolic_operand): Do require a
18526         symbol+offset operand to have its offset be zero mod 0x3fff
18527         when GOT entries are in use.  Clarify logic in SYMBOL_REF
18528         case.  Clarify comments.
18529         (ia64_expand_load_address): Split a symbol+offset load when
18530         the offset is nonzero mod 0x3fff, not 0x1fff.
18531
18532 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
18533
18534         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
18535         if trying to *store* to a non-offsettable address.
18536         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
18537         a nonoffsettable address.
18538         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
18539         Clean up.
18540         (movti_string): Don't move GPRs to a nonoffsettable address.
18541         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
18542
18543 2004-08-02  Ben Elliston  <bje@au.ibm.com>
18544
18545         PR target/16155
18546         * config/rs6000/altivec.h: Replace typeof with __typeof__.
18547
18548 2004-08-01  Richard Henderson  <rth@redhat.com>
18549
18550         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
18551         variable sized types.
18552
18553 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18554
18555         * doc/invoke.texi: In the MIPS options section, remove the passage
18556         saying that -mexplicit-relocs is usually disabled for -mabicalls
18557         -fno-unit-at-a-time.
18558         * config/mips/mips.c (override_options): Remove the code that enforced
18559         this rule.
18560
18561 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18562
18563         * config/mips/mips.md (cprestore): Provide two alternatives, one for
18564         an in-range offset and one for an out-of-range offset.  Wrap the latter
18565         in .set macro/.set nomacro if it's inside a .set nomacro block.
18566
18567 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18568
18569         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
18570         (mips_restore_gp): Declare.
18571         * config/mips/mips.c (mips_add_offset): Add a scratch register
18572         argument.  Reimplement in rtl only, reusing MIPS16 logic from
18573         mips_output_mi_thunk.
18574         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
18575         to mips_add_offset.
18576         (mips_gp_save_slot): Delete.
18577         (mips_restore_gp): New function.
18578         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
18579         * config/mips/mips.md (exception_receiver): Turn into a
18580         define_insn_and_split.  Use mips_restore_gp to do the split.
18581         (call_internal, call_value_internal, call_value_multiple_internal): Use
18582         mips_restore_gp to restore $gp.
18583
18584 2004-07-31  Andrew Pinski  <apinski@apple.com>
18585
18586         PR other/16842
18587         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
18588
18589 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
18590
18591         * c-decl.c (diagnose_mismatched_decls): Give error for external
18592         redeclaration of identifier declared with no linkage, not just
18593         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
18594         error for redeclaration with no linkage.
18595
18596 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
18597             Fariborz Jahanian <fjahanian@apple.com>
18598
18599         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
18600         non-offsettable addresses even for DImode.
18601         (rs6000_split_multireg_move): Cope with non-offsettable addresses
18602         being moved into multiple GPRs.
18603
18604         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
18605         to 64.
18606         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
18607         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
18608         to 128.
18609         * config/rs6000/darwin-ldouble.c (isless): New macro.
18610         (inf): New macro.
18611         (nonfinite): New macro.
18612         (FPKINF): Delete.
18613         (_xlqadd): Completely rewrite.
18614         (_xlqmul): Correct overflow handling.
18615         (_xlqdiv): Correct overflow handling.
18616         * config/rs6000/darwin-ldouble-format: New file.
18617
18618 2004-07-30  Roger Sayle  <roger@eyesopen.com>
18619             Richard Henderson  <rth@redhat.com>
18620
18621         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
18622         9 into the equivalent lea instruction.
18623
18624 2004-07-30  Richard Henderson  <rth@redhat.com>
18625
18626         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
18627         with DECL_INITIAL if fb_lvalue.
18628         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
18629         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
18630         with <Cxxx>.
18631         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
18632
18633 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
18634
18635         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
18636         pointer escapes through a function call, assume that the
18637         callee will dereference it.
18638         (add_pointed_to_var): Assume that VALUE is always an
18639         ADDR_EXPR.
18640         (collect_points_to_info_r): Only call add_pointed_to_var if
18641         the value is an ADDR_EXPR.
18642
18643 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
18644
18645         * tree-ssa-alias.c (create_alias_map_for): Do not get the
18646         alias set of the inner type of ARRAY_TYPEs.
18647
18648 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18649
18650         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
18651         setting a non-register to UNDEFINED right before the call to
18652         set_lattice_value.
18653
18654 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18655
18656         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
18657
18658 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18659
18660         * tree-ssa.c (verify_flow_sensitive_alias_info): When
18661         comparing points-to sets of different pointers, make sure the
18662         second pointer is actually referenced in the code.
18663
18664 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
18665
18666         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
18667         (got_symbolic_operand): Remove unreachable code.
18668         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
18669         setjmp_operand; add entry for tls_symbolic_operand.
18670         * config/ia64/ia64-protos.h: Remove all prototypes of
18671         predicate functions.
18672
18673 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
18674
18675         * c-common.h (lang_post_pch_load): New variable.
18676         * c-pch.c (lang_post_pch_load): Define it.
18677         (c_common_read_pch): Use it.
18678         * cgraphunit.c (record_call_1): Give the front end a chance to
18679         record additional needed entities when a variable is marked as
18680         needed.
18681         * tlink.c (recompile_files): Robustify.
18682         (scan_linker_output): If a symbol is assigned to a file,
18683         but after recompilation is not present there, issue an error
18684         message.
18685
18686 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18687
18688         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
18689         Take orig_loop argument and pass it to set_level.
18690         (schedule_sm): Pass the correct orig_loop to force_move_till.
18691
18692 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18693
18694         * cfgloop.c (update_latch_info): Update dominator of the new block.
18695         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
18696         info.
18697         * dominance.c (verify_dominators): Check that the dominance tree is
18698         connected.
18699         (recount_dominator): Ignore unreachable blocks.
18700         (iterate_fix_dominators): Cleanup old dominance information before
18701         recomputing it.
18702
18703 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18704
18705         * tree-ssa-operands.c (get_expr_operands): Revert changes
18706         to ADDR_EXPR processing introduced by:
18707             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18708             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
18709
18710 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
18711
18712         * doc/implement-c.texi: Add C90 subclause references.  Point to
18713         preprocessor documentation instead of duplicating it.  Add points
18714         only present in C90.  Fill in documentation for all points.
18715
18716 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18717
18718         * pa.c (output_movb): Correct typo.
18719
18720 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
18721
18722         * ra.h (single_reg_in_regclass): Declare.
18723         * ra.c (single_reg_in_regclass): Define.
18724         (first_hard_reg): New.
18725         (init_ra): Initialize single_reg_in_regclass.
18726         * ra-colorize.c (ok_class): New.
18727         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
18728
18729 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
18730
18731         * gcov-io.h: Allow zero tag as EOF indicator.
18732         (gcov_is_eof): Remove.
18733         (gcov_truncate): Remove.
18734         * gcov-io.c (gcov_seek): Always SEEK_SET.
18735         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
18736         EOF tag.
18737         * coverage.c (read_counts_file): Don't use gcov_is_eof.
18738         * gcov-dump.c (dump_file): Likewise.
18739         * gcov.c (read_graph_file, read_count_file): Likewise.
18740
18741         * c-decl.c (complete_array_type): Don't gratuitously copy
18742         maxindex.  Check it always has a type.
18743
18744 2004-07-29  Steven Bosscher  <stevenb@suse.de>
18745
18746         * rtl.c (currently_expanding_to_rtl): New.
18747         * rtl.h (currently_expanding_to_rtl): Export it.
18748         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
18749
18750         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
18751         inliner hack.
18752         * config/sh/sh.c: Replace rtx_equal_function_value_matters
18753         with currently_expanding_to_rtl.
18754         * config/sh/sh.md: Likewise.
18755         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
18756
18757 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
18758
18759         Introduce sh2a support.
18760         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
18761         * config.gcc: Build multilibs for sh2a and sh2a-single by
18762         default.
18763         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
18764         default.  Split their tests out of the corresponding SH4
18765         multilibs.
18766         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
18767         multilibs for SH2a.
18768         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
18769         * config.gcc: Handle sh2a multilibs and cpu selection.
18770         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
18771         * config/sh/t-mlib-sh2a: New.
18772         * config/sh/t-mlib-sh2a-nofpu: New.
18773         * config/sh/t-mlib-sh2a-single: New.
18774         * config/sh/t-mlib-sh2a-single-only: New.
18775         2004-07-09  Nick Clifton  <nickc@redhat.com>
18776         Issue 43400
18777         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
18778         -ml and -m2a are used together.
18779         2004-03-23  DJ Delorie  <dj@redhat.com>
18780         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
18781         when we have a double-sized FPU.
18782         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
18783         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
18784         is set.
18785         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
18786         -msh2a-single and -msh2a-single-only
18787         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
18788         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
18789         is set.
18790         2004-02-20  DJ Delorie  <dj@delorie.com>
18791         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
18792         2004-02-20  Fred Fish <fnf@redhat.com>,
18793         Corinna Vinschen <vinschen@redhat.com>
18794         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
18795         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
18796         2004-02-18  DJ Delorie  <dj@redhat.com>
18797         * config/sh/sh.c (broken_move): Add support for movi20.
18798         * config/sh/sh.h: Likewise.
18799         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
18800         * config/sh/sh.md (udivsi3_sh2a): New.
18801         (udivsi3): Call it.
18802         (divsi3_sh2a): New.
18803         (divsi3): Call it.
18804         (mul_r): New.
18805         (ashlsi3_sh2a): New.
18806         (ashrsi3_sh2a): New.
18807         (lshrsi3_sh2a): New.
18808         (movsi_i): Disable for sh2a.
18809         (movsi_ie): Add movi20.
18810         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
18811         sh2a, for -m2a-nofpu mode.
18812         2004-02-13  DJ Delorie  <dj@redhat.com>
18813         * config/sh/lib1funcs.asm: Handle double vs single better.
18814         * config/sh/sh.h: Likewise.
18815         2004-02-09  DJ Delorie  <dj@redhat.com>
18816         * config/sh/crt1.asm: Add support for sh2a.
18817         * config/sh/elf.h: Likewise.
18818         * config/sh/lib1funcs.asm: Likewise.
18819         * config/sh/sh.c: Likewise.
18820         * config/sh/sh.md: Likewise.
18821         * config/sh/sh.h: Likewise.
18822         * config/sh/t-sh: Likewise.
18823
18824 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
18825
18826         * config/frv/frv.md (movqi_internal, movhi_internal,
18827         movsi_internal): Add backup alternatives for memory inputs.
18828
18829 2004-07-28  Matt Austern  <austern@apple.com>
18830
18831         * config/darwin.c (darwin_one_byte_bool): New global variable.
18832         * config/darwin.h (darwin_one_byte_bool): Declare.
18833         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
18834         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
18835         value of darwin_one_byte_bool.
18836         * doc/invoke.texi: Document -mone-byte-bool flag.
18837
18838 2004-07-28  Eric Christopher  <echristo@redhat.com>
18839
18840         * c-common.c (c_common_unsafe_for_reeval): Delete.
18841         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
18842         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
18843         * calls.c (fix_unsafe_tree): Delete.
18844         (expand_call): Delete code which used above.
18845         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
18846         * expr.c (expand_expr_real_1): Ditto.
18847         * fold-const.c (non_lvalue): Ditto.
18848         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
18849         (lhd_unsafe_for_reeval): Ditto.
18850         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
18851         * langhooks.h (unsafe_for_reeval): Ditto.
18852         (unsave_expr_now): Adjust comment.
18853         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
18854         (estimate_num_insns_1): Ditto.
18855         * tree-pretty-print.c (dump_generic_node): Ditto.
18856         * tree.c (expr_align): Ditto.
18857         (unsave_expr): Delete.
18858         (unsafe_for_reeval): Ditto.
18859         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
18860         * tree.def (UNSAVE_EXPR): Delete.
18861         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
18862
18863 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
18864
18865         * tree.h (enum tls_model): Move ...
18866         * coretypes.h: ... here.
18867
18868 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
18869
18870         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
18871
18872 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
18873
18874         * cse.c (validate_canon_reg): New function, split out from...
18875         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
18876
18877 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
18878
18879         * tree-ssa-alias.c (maybe_create_global_var): Don't just
18880         return if .GLOBAL_VAR has been created.
18881
18882 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
18883
18884         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
18885         every variable that may have aliases, not just tags.
18886
18887 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
18888
18889         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
18890         move_from_CR_eq_bit.
18891         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
18892
18893
18894         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
18895         e500_flip_eq_bit.
18896
18897         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
18898         output_e500_flip_eq_bit.
18899
18900         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
18901         output_e500_flip_eq_bit.
18902         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
18903         output_e500_flip_eq_bit.
18904         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
18905         (print_operand): case D.  Get to EQ bit.
18906
18907 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
18908
18909         * gcov.c (function_summary): Add missing \n.
18910
18911 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
18912
18913         Introduce sh4a support.
18914         * config.gcc: Handle sh4a multilibs and cpu selection.
18915         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
18916         * config/sh/t-mlib-sh4a: New.
18917         * config/sh/t-mlib-sh4al: New.
18918         * config/sh/t-mlib-sh4a-nofpu: New.
18919         * config/sh/t-mlib-sh4a-single: New.
18920         * config/sh/t-mlib-sh4a-single-only: New.
18921         2004-02-20  DJ Delorie  <dj@redhat.com>
18922         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
18923         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
18924         2003-08-22  Eric Christopher  <echristo@redhat.com>
18925         * config/sh/sh4a.md: Update for chip errata.
18926         2003-08-07  Eric Christopher  <echristo@redhat.com>
18927         * config/sh/sh4a.md: New file. sh4a processor description.
18928         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
18929         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
18930         of -m4a-nofpu.
18931         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
18932         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
18933         * doc/invoke.texi (SH Options): Document -m4al.
18934         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
18935         * config/sh/sh.c (expand_block_move): Remove commented-out code
18936         checked in by mistake.
18937         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
18938         single elements from SFmode vectors.
18939         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
18940         register.
18941         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
18942         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
18943         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
18944         sh_fsca_int2sf): Remove variable declarations.
18945         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
18946         sh_fsca_int2sf): New functions.
18947         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
18948         sh_fsca_int2sf_rtx): New static variables.
18949         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
18950         sh_fsca_int2sf): Declare.
18951         * config/sh/sh.md: Adjust.
18952         * doc/invoke.texi (SH Options): Document new options.
18953         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
18954         compatibility from SH4 code.
18955         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
18956         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
18957         early.
18958         (memory_movsrc_operand): Renamed to...
18959         (unaligned_load_operand): ... this.  Simplified.
18960         * config/sh/sh.h (PREDICATE_CODES): Adjust.
18961         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
18962         input operand to SImode, and adjust the others.  Introduce
18963         post-increment by peephole.
18964         * config/sh/sh.c (expand_block_move): Give the target address the
18965         same mode as the temp reg.
18966         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
18967         copying.
18968         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
18969         Introduce support for SH4a.
18970         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
18971         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
18972         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
18973         sh_fsca_int2sf): New.
18974         (sh_init_builtins): Initialize them.
18975         (print_operand): Support `d'.
18976         (expand_block_move): Use movua if src is misaligned.
18977         (memory_movsrc_operand): New.
18978         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
18979         and one of the SH4 macros.
18980         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
18981         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
18982         SELECT_SH4A_SINGLE): New.
18983         (TARGET_NONE): Add SH4A_BIT.
18984         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
18985         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
18986         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
18987         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
18988         (enum processor_type): Added PROCESSOR_SH4A.
18989         (PREDICATE_CODES): Add memory_movsrc_operand.
18990         * config/sh/sh.md: Removed unused variables.
18991         (attr cpu): Add sh4a.
18992         (attr type): Add movua, fsrra and fsca.
18993         (prefetch): New, for SH4.
18994         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
18995         (toggle_sz): Set type to fp.
18996         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
18997         (movua, extv, extzv): New.
18998         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
18999         and 4a-single-only.
19000
19001 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19002
19003         * tree-optimize.c (init_tree_optimization_passes): Schedule
19004         pass_may_alias right after the program is renamed into SSA.
19005         * tree-pass.h (PROP_alias): Define.
19006         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
19007         * tree-sra.c (pass_sra): Likewise.
19008         * tree-ssa-ccp.c (pass_ccp): Likewise.
19009         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
19010         * tree-ssa-dce.c (pass_dce): Likewise.
19011         * tree-ssa-dom.c (pass_dominator): Likewise.
19012         * tree-ssa-dse.c (pass_dse): Likewise.
19013         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19014         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19015         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
19016         * tree-ssa-pre.c (pass_pre): Likewise.
19017         * tree-tailcall.c (pass_tail_recursion): Likewise.
19018         * tree-ssa.c (pass_redundant_phi): Likewise.
19019         * tree-ssa-alias.c (aliases_computed_p): Remove.
19020         Update all users.
19021         (init_alias_info): Do not mark all type tags for renaming
19022         unconditionally.
19023         Clear may_aliases from every symbol.
19024         (setup_pointers_and_addressables): If a pointer has not been
19025         dereferenced and it had a type tag, clear it and mark the old
19026         tag for renaming.
19027
19028 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19029
19030         PR tree-optimization/16705
19031         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
19032         .GLOBAL_VAR.
19033
19034 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19035
19036         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
19037         check.
19038
19039         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
19040         don't make another one.
19041
19042         PR optimization/15077
19043         * function.h (struct function): Add field saved_static_chain_decl.
19044         Fix comment for static_chain_decl.
19045         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
19046         * tree-inline.h (save_body): Add new arg.
19047         * tree-optimize.c (tree_rest_of_compilation): Handle saving
19048         static_chain_decl.
19049
19050 2004-07-27  Richard Henderson  <rth@redhat.com>
19051
19052         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
19053         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
19054         is_gimple_addressable.
19055         * tree-gimple.c (is_gimple_addressable): Rename from
19056         is_gimple_addr_expr_arg; accept INDIRECT_REF.
19057         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
19058         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
19059         rename to is_gimple_addressable.
19060
19061 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
19062
19063         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
19064
19065 2004-07-27  Richard Henderson  <rth@redhat.com>
19066
19067         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
19068         before rounding.
19069
19070 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
19071
19072         * libgcc2.c: Change all conditionals testing
19073         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
19074         * libgcc2.h: Likewise.
19075         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
19076         TYPE_PRECISION of float80_type to 80.
19077         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
19078         of fpreg_type and float80_type to 80.
19079         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
19080         * config/m68k/netbsd-elf.h:
19081         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
19082         to evaluate to 80 whenever they would formerly have evaluated to 96.
19083         * config/i386/sco5.h: Remove unnecessary redefinition of
19084         LONG_DOUBLE_TYPE_SIZE.
19085         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
19086         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
19087         XFmode, with a bitsize of 80.  Update commentary.
19088         * config/ia64/ia64-modes.def: Likewise.
19089         * config/m68k/m68k-modes.def: Likewise.
19090
19091 2004-07-27  Steven Bosscher  <stevenb@suse.de>
19092
19093         * cfgexpand.c (tree_expand_cfg): Fix comment.
19094
19095         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
19096         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
19097         Remove.
19098         (prepare_function_start): Don't set rtx_equal_function_value_matters.
19099         * integrate.c (copy_rtx_and_substitute): Don't test for it.
19100         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
19101         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
19102         here again.  Update leading comment.
19103         * rtl.c (rtx_equal_function_value_matters): Remove.
19104         (rtx_equal_p): Don't test for it.
19105         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
19106         Likewise.
19107
19108         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
19109         * rtl.c (note_insn_name): Likewise.
19110         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
19111         * final.c (final_scan_insn): Likewise.
19112
19113         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
19114         * passes.c (rest_of_handle_eh): Do it here.
19115
19116         * stmt.c (struct nesting): Remove struct nesting block member.
19117         (struct stmt_status): Remove x_block_start_count field.
19118         (current_block_start_count): Remove.
19119
19120 2004-07-27  Brian Booth  <bbooth@redhat.com>
19121
19122         * tree-optimize.c (register_one_dump_file): Update condition that uses
19123         static_pass_number.
19124         (dup_pass_1): Replace with...
19125         (next_pass_1): This.
19126         (NEXT_PASS): Call next_pass_1.
19127         (DUP_PASS): Remove.
19128         (init_tree_optimization_passes): Remove uses of DUP_PASS.
19129         (execute_one_pass): Update condition that uses
19130         static_pass_number.
19131         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
19132         integer.
19133
19134 2004-07-27  Nick Clifton  <nickc@redhat.com>
19135
19136         * config/m32r/m32r.c: Include integrate.h in order to get the
19137         prototype for get_hard_reg_initial_val().
19138
19139         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
19140         and tidy up indentation.
19141         (final_presence_set): Use absence_set instead, so that if there is
19142         nothing in the "o" pipe the "s" pipe can be scheduled.
19143
19144 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
19145
19146         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
19147         don't have PT_VARS nor PT_MALLOC set.
19148         Clear name tag from pointers that have not been dereferenced.
19149         (set_pt_anything, set_pt_malloc): Forward declare.
19150         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
19151         not type compatibility when determining if a pointer can be
19152         copy propagated.
19153
19154 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
19155
19156         * expr.h (canonicalize_condition, get_condition): Add an int argument.
19157         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
19158         it to check whether the condition is still valid at the jump insn.
19159         * ifcvt.c (noce_get_condition): Likewise.
19160         (noce_get_alt_condition): Update call to canonicalize_condition.
19161         * loop-iv.c (simplify_using_initial_values): Update call to
19162         get_condition.  Remove FIXME.
19163         (check_simple_exit): Update call to get_condition.
19164         * loop-unswitch.c (may_unswitch_on): Likewise.
19165         * loop.c (check_dbra_loop): Likewise.
19166         (canonicalize_condition, get_condition): Add an argument to say whether
19167         the condition must still be valid at INSN.
19168         (get_condition_for_loop): Update call to get_condition.  Require that
19169         the condition be valid at INSN.
19170         * predict.c (estimate_probability): Update call to get_condition.
19171         Remove unused earliest parameter.
19172         (expected_value_to_br_prob): Update call to canonicalize_condition.
19173
19174 2004-07-26  Eric Christopher  <echristo@redhat.com>
19175
19176         * tree-dfa.c (add_referenced_var): Register initializers of global
19177         variables.
19178
19179 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
19180
19181         * config/i386/i386.c (function_arg): Always treat 8-
19182         and 16-byte wide vectors the same, even if MMX/SSE
19183         are disabled.
19184         (contains_128bit_aligned_vector_p): Add comment.
19185
19186 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
19187
19188         * ra.h (enum node_type): Rename to:
19189         (enum ra_node_type).
19190         * ra-colorize.c: Likewise.
19191
19192 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19193
19194         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
19195         after simplifying the jump.
19196
19197 2004-06-26  Richard Henderson  <rth@redhat.com>
19198
19199         * calls.c (combine_pending_stack_adjustment_and_call): Make
19200         preferred_unit_stack_boundary argument unsigned.  Make
19201         unadjusted_alignment unsigned.
19202         (expand_call): Make preferred_stack_boundary and
19203         preferred_unit_stack_boundary variables unsigned.
19204         * function.c (assign_stack_local_1): Make alignment unsigned.
19205         * function.h (struct function): Make stack_alignment_needed,
19206         preferred_stack_boundary unsigned.
19207         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
19208         (ix86_compute_frame_layout): Make stack_alignment_needed,
19209         preferred_alignment variables unsigned.
19210         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
19211
19212 2004-07-26  Tom Tromey  <tromey@redhat.com>
19213
19214         * tree.h: Fix typo in comment.
19215
19216 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
19217
19218         PR bootstrap/12804
19219         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
19220         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
19221         (ggc_free): Remove incorrect freeing.
19222         (sweep_pages): Advance PP for large pages.  Fix indentation.
19223
19224 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19225
19226         PR rtl-optimization/16643
19227         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
19228         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
19229         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
19230         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
19231         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
19232         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19233         * rtl.h (tracer): Add a flags parameter.
19234         * tracer.c (tracer): Pass it to cfg_layout_initialise.
19235         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
19236         (rest_of_handle_reorder_blocks): Update calls to tracer and
19237         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
19238         (rest_of_handle_tracer): Pass 0 to tracer.
19239         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
19240
19241 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
19242
19243         PR target/16239
19244         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
19245         f->f.
19246
19247 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
19248
19249         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
19250         (BINFO_BASE_ACCESS): Adjust.
19251         (BINFO_BASE_ACCESS_APPEND): New.
19252         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
19253         * dbxout.c (dbxout_type): Adjust binfo access accessing.
19254         * dwarf2out.c (gen_member_die): Likewise.
19255         * tree-dump.c (deque_and_dump): Likewise.
19256
19257 2004-07-26  Falk Hueffner  <falk@debian.org>
19258
19259         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
19260         costs.
19261
19262 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19263
19264         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
19265         value off of the stack if TARGET_USE_FFREEP.
19266
19267 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19268
19269         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
19270         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
19271         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
19272         check on invocation of XRESIZEVEC ().
19273
19274 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19275
19276         * c-common.c (disable_builtin_function): Rename variable n to
19277         new_disabled_builtin.
19278         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
19279         Rename local variable old to old_decl.
19280         * gensupport.c (shift_output_template): Rename parameter old to src.
19281         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
19282         old_rtx and newx to new_rtx.
19283
19284 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19285
19286         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
19287         of c-pragma.h.
19288         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
19289         enum cpp_ttype.
19290         * c-lex.c: Likewise.
19291
19292 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19293
19294         * fold-const.c (constant_boolean_node): Make extern.
19295         (make_range): Wrap long lines.
19296         (fold_cond_expr_with_comparison): Remove unnecessary call to
19297         pedantic_non_lvalue.  Add missing calls to fold_convert.
19298         (fold_truthop): Add missing calls to fold_convert.
19299         (fold): Likewise.
19300         * tree.h (constant_boolean_node): Add prototype here.
19301         * builtins.c (expand_builtin_strncmp): Add missing calls to
19302         fold_convert.
19303         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
19304         Call fold_convert and constant_boolean_node to correct types.
19305         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
19306         missing call to fold_convert to correct types.
19307
19308 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
19309             Brian Ryner  <bryner@brianryner.com>
19310
19311         PR c++/9283
19312         PR c++/15000
19313         * c-common.c (c_common_attribute_table): Allow
19314         handle_visibility_attribute to be called for types.
19315         (handle_visibility_attribute) When given a type, set the visibility
19316         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
19317         so that we can check later whether the attribute was present. Added
19318         warning if attribute applied to non class type.
19319         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
19320         decls and checking that they are consistent.
19321         * common.opt: Added -fvisibility.
19322         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
19323         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
19324         * flags.h, tree.h: Added assorted support defines for overall patch
19325         * opts.c: Added parsing support for -fvisibility.
19326         * tree.c (build_decl): Set visibility for all decls to be whatever
19327         is in force at that time.
19328         * varasm.c (default_binds_local_p_1): Reworked logic determining
19329         when to make a symbol locally bound.
19330         * doc/invoke.texi: Added documentation for -fvisibility and
19331         -fvisibility-inlines-hidden.
19332
19333 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19334
19335         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
19336         * c-common.c: Add missing casts from void * to other types.
19337         * c-decl.c: Likewise.
19338         * c-format.c: Likewise.
19339         * c-lex.c: Likewise.
19340         * c-pragma.c: Likewise.
19341         * c-typeck.c: Likewise.
19342         * defaults.h: Likewise.
19343         * genconstants.c: Likewise.
19344         * gengtype-lex.l: Likewise.
19345         * genmodes.c: Likewise.
19346         * read-rtl.c: Likewise.
19347         * rtl.c: Likewise.
19348
19349 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19350
19351         * bitmap.c: Use type-safe memory allocation macros from libiberty.
19352         * c-common.c: Likewise.
19353         * c-decl.c: Likewise.
19354         * c-lang.c: Likewise.
19355         * c-lex.c: Likewise.
19356         * c-opts.c: Likewise.
19357         * c-parse.in: Likewise.
19358         * c-typeck.c: Likewise.
19359         * genconditions.c: Likewise.
19360         * gengtype-lex.l: Likewise.
19361         * gengtype-yacc.y: Likewise.
19362         * gengtype.c: Likewise.
19363         * genmodes.c: Likewise.
19364         * gensupport.c: Likewise.
19365         * read-rtl.c: Likewise.
19366         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
19367         htab_find_slot().
19368
19369 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19370
19371         * c-decl.c (groktypename, groktypename_in_param_context): Rename
19372         variable typename to type_name.
19373         * c-lex.c (interpret_float): Likewise.
19374
19375 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19376
19377         * convert.c (convert_to_real, convert_to_integer,
19378         convert_to_complex): Replace calls to build with calls to buildN.
19379         * coverage.c (tree_coverage_counter_ref): Likewise.
19380         * dojump.c (do_jump): Likewise.
19381         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
19382         * emit-rtl.c (component_ref_for_mem_expr,
19383         set_mem_attributes_minus_bitpos): Likewise.
19384         * explow.c (update_nonlocal_goto_save_area): Likewise.
19385         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
19386         expand_mult_add): Likewise.
19387         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
19388         store_constructor, get_inner_reference, expand_expr_real_1,
19389         try_casesi, try_tablejump): Likewise.
19390         * function.c (expand_function_start): Likewise.
19391         * stmt.c (emit_case_bit_tests, expand_end_case_type,
19392         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
19393         * stor-layout.c (place_union_field, layout_type): Likewise.
19394         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
19395         * varasm.c (copy_constant): Likewise.
19396
19397 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19398
19399         * c-common.c: Rename all identifiers named `new'.
19400         * c-decl.c: Likewise.
19401         * gensupport.c: Likewise.
19402         * simplify-rtx.c: Likewise.
19403         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
19404         with XNEW().
19405         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
19406         with XNEWVEC().
19407
19408 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
19409
19410         PR c/15360
19411         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
19412         declarations until after calling pushdecl.
19413         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
19414         "extern" and not on whether the declaration is initialized.
19415
19416 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
19417
19418         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
19419         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
19420         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
19421         "cpplib.h", "c-pragma.h", "c-common.h".
19422         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
19423         (solaris_register_pragmas): New functions.
19424         * config/sol2-protos.h: New file.
19425         * config/sol2.c: New file.
19426         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
19427         (REGISTER_TARGET_PRAGMAS): New macros.
19428         (solaris_pending_aligns, solaris_pending_inits)
19429         (solaris_pending_finis): New variables.
19430         * config/t-sol2 (sol2-c.o): Update dependencies.
19431         (sol2.o): New rule.
19432         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
19433         SUBTARGET_INSERT_ATTRIBUTES.
19434         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
19435         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
19436         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
19437         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
19438         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
19439         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
19440         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
19441         * config/sparc/sparc.c (sparc_attribute_table): New.
19442         (TARGET_INSERT_ATTRIBUTES): Define in terms of
19443         SUBTARGET_INSERT_ATTRIBUTES.
19444         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
19445         is defined.
19446         * doc/extend.texi (Solaris Pragmas): New section.
19447
19448 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19449
19450         * c-common.c: Rename all identifiers named `class' to `cl'.
19451         * c-common.h: Likewise.
19452         * c-parse.in: Likewise.
19453         * c-typeck.c: Likewise.
19454         * genmodes.c: Likewise.
19455         * real.c: Likewise.
19456         * real.h: Likewise.
19457         * recog.c: Likewise.
19458         * recog.h: Likewise.
19459         * regrename.c: Likewise.
19460         * tree.h: Likewise.
19461         * c-common.c (builtin_function_2): Change type of 5th parameter from
19462         int to enum built_in_function. Change type of 8th parameter from int
19463         to bool.
19464         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
19465         with GGC_CNEW().
19466         * c-typeck.c (convert_arguments): Change type of formal_prec from
19467         int to unsigned int.
19468         * genmodes.c (blank_mode): Make a few negative constants unsigned.
19469         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
19470         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
19471         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
19472         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
19473         iterator to for_all_modes () instead of an enum because enums can't
19474         be incremented in C++.
19475
19476
19477 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
19478
19479         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
19480         hard registers.
19481
19482 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19483
19484         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
19485         Handle ARRAY_RANGE_REF like ARRAY_REF.
19486
19487 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
19488
19489         * c-typeck.c (digest_init): Don't allow arrays of signed or
19490         unsigned variants of wchar_t to be initialized by wide string
19491         constants.  Do allow arrays of enumerated types compatible with
19492         wchar_t to be initialized by wide string constants.  Refine tests
19493         distinguishing wide and narrow strings and arrays.  Give specific
19494         error for arrays of other integer types initialized by string
19495         constants.
19496         (output_init_element, process_init_element): Check for
19497         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
19498         initializing with string constants.
19499
19500 2004-07-25  Richard Henderson  <rth@redhat.com>
19501
19502         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
19503         on the RESULT_DECL.
19504         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19505         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
19506         DECL_IGNORED_P to new decl.
19507
19508 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
19509
19510         * config/ia64/ia64.c (general_xfmode_operand)
19511         (destination_xfmode_operand): Delete.
19512         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
19513         * config/ia64/ia64.md (*movxf_internal): Use general_operand
19514         and destination_operand.
19515
19516 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
19517
19518         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
19519         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
19520
19521 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
19522             Zack Weinberg  <zack@codesourcery.com
19523
19524         PR 16684
19525         * c-decl.c (diagnose_mismatched_decls): Don't issue a
19526         redundant-declaration warning the first time a builtin is
19527         declared explicitly.
19528
19529 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19530
19531         * tree.h (staticp): Change return type to bool.
19532
19533 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19534
19535         * c-common.c (c_staticp): Last episode of the staticp saga.
19536
19537 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19538
19539         * c-common.h (c_staticp): Change return type from int to bool.
19540         * tree.c (staticp): Likewise.
19541         * langhooks.h (staticp): Likewise.
19542
19543 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19544
19545         * langhooks-def.h (lhd_staticp): Change return type from int to
19546         bool in prototype to match definition.
19547
19548 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19549
19550         * system.h (bool, true, false): Don't redefine as preprocessor macros
19551         in C++.
19552
19553 2004-07-24  Roger Sayle  <roger@eyesopen.com>
19554
19555         * expmed.c (init_expmed): A signed modulus by a power of two is
19556         considered cheap if its less than or equal to four instructions.
19557
19558 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19559
19560         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
19561         GGC_CNEWVAR): New macros.
19562
19563 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19564
19565         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
19566         lists.
19567         * c-decl.c: Likewise.
19568         * c-format.c: Likewise.
19569         * c-lex.c: Likewise.
19570         * c-opts.c: Likewise.
19571         * c-pragma.c: Likewise.
19572         * c-typeck.c: Likewise.
19573         * gencheck.c: Likewise.
19574         * genconditions.c: Likewise.
19575         * genconfig.c: Likewise.
19576         * genflags.c: Likewise.
19577         * gengtype.c: Likewise.
19578         * gensupport.c: Likewise.
19579         * ggc-none.c: Likewise.
19580         * langhooks.c: Likewise.
19581         * statistics.h: Likewise.
19582         * stub-objc.c: Likewise.
19583         * java/decl.c: Likewise.
19584
19585 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
19586
19587         * config/m68k/m68k.c (output_scc_di): Fix coding style.
19588         (symbolic_operand): Fix prototype.
19589         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
19590         * config/m68k/m68k.md: Add constants for registers a0 and sp and
19591         use them, change from the "{...}" syntax to the simpler {...}
19592         syntax.
19593         (*cfv4_extendqisi2): Fix destination predicate.
19594         * config/m68k/m68k-protos.h: Remove various declarations also
19595         generated via PREDICATE_CODES.
19596
19597 2004-07-23  Mike Stump  <mrs@apple.com>
19598
19599         * c-typeck.c (convert_for_assignment): Tightened up pointer
19600         converstions that differ in signedness.
19601
19602 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
19603
19604         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
19605
19606 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19607
19608         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
19609         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
19610
19611         * gimplify.c (gimplify_compound_lval): Check for no handled
19612         operations, rather than checking for explicit list of nodes.
19613         (is_gimple_addr_expr_arg_or_indirect): New function.
19614         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
19615         redundant setting of TREE_INVARIANT.
19616         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
19617         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
19618
19619 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
19620
19621         PR tree-optimization/16688
19622         PR tree-optimization/16689
19623         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
19624         unnecessary initialization of 'tag'.
19625         (get_tmt_for): Check that the new type tag has the same alias
19626         set as the pointed-to type.
19627         (group_aliases): Only regular variables need to be removed
19628         from the alias set of a name tag.
19629         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
19630         propagation if the two types are not compatible.
19631         (merge_alias_info): Rename from replace_ssa_names_ann.
19632         Add more checking.
19633         (replace_exp_1): If both arguments are SSA_NAMEs, check that
19634         the propagation can be done.
19635         Only call merge_alias_info on pointers.
19636         (propagate_value): Likewise.
19637         * tree-ssa-copyrename.c: Include langhooks.h.
19638         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
19639         to do the merging.
19640         Do not coalesce variables with incompatible types.
19641         (rename_ssa_copies): Call replace_ssa_name_symbol.
19642         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
19643         the same type as the underlying _DECL.
19644         * tree-ssanames.c (replace_ssa_name_symbol): New function.
19645         * tree.h (replace_ssa_name_symbol): Declare.
19646
19647 2004-07-23  Richard Henderson  <rth@redhat.com>
19648
19649         PR c++/16277
19650         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
19651         unshare it properly.
19652         (gimplify_modify_expr_rhs): Push assignment from a conditional into
19653         the conditional for all non-register types.
19654
19655 2004-07-23  Richard Henderson  <rth@redhat.com>
19656
19657         * expr.c (expand_expr_real_1): Don't handle non-local variables.
19658         * expr.h (fix_lexical_addr): Remove.
19659         * function.c (NEED_SEPARATE_AP): Remove.
19660         (fix_lexical_addr): Remove.
19661         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
19662         not null decl_function_context.
19663         (create_alias_vars): Likewise.
19664         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
19665         (simple_goto_p): Likewise.
19666         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
19667         * tree-ssa-ccp.c (get_default_value): Likewise.
19668         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
19669         * tree.c (needs_to_live_in_memory): Likewise.
19670         * tree-flow-inline.h (may_be_aliased): Move...
19671         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
19672         when TREE_STATIC variables may be addressable.
19673
19674 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
19675
19676         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
19677
19678 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
19679
19680         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
19681         bitmap contents if GENERATOR_FILE is defined.
19682         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
19683         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
19684
19685 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
19686
19687         * c-decl.c (start_function): Form composite type of function types
19688         rather than copying type from previous prototype declaration.
19689
19690 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
19691
19692         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
19693         the const qualifier for the second argument in the C++ functions.
19694
19695         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
19696         specific pointer types.
19697
19698         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
19699         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
19700         for vector bool and/or vector pixel, add C++ and C missing support.
19701         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
19702         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
19703         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
19704         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
19705         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
19706         missing C++ and C support for vector bool and/or vector pixel.
19707         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
19708         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
19709         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
19710         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
19711         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
19712         C++ and C types used for vector bool and/or vector pixel.
19713         (vec_st, vec_stl): Add C++ support for vector pixel.
19714         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
19715         (vec_all_ne): Add C++ support for vector pixel.
19716
19717         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
19718         (vec_vmulesb): Add missing C++ function.
19719         (vec_perm): Fix type of third argument in C++ function.
19720         (vec_vsum4shs): Fix C++ function name.
19721         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
19722         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
19723         argument passed to the error handler in C macro.
19724         (vec_nmsub): Remove extra parens around argument names in C macro.
19725         (vec_packpx): Add missing parens in C macro.
19726
19727 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
19728
19729         * machmode.def: Remove vector modes.
19730         * config/alpha/alpha-modes.def: Add supported vector modes.
19731         * config/arm/arm-modes.def: Likewise.
19732         * config/frv/frv-modes.def: Likewise.
19733         * config/i386/i386-modes.def: Likewise.
19734         * config/rs6000/rs6000-modes.def: Likewise.
19735         * config/sh/sh-modes.def: Likewise.
19736
19737 2004-07-23  Matthias Klose  <doko@debian.org>
19738
19739         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
19740         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
19741         * config.h: Regenerate.
19742         * configure: Likewise.
19743
19744 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
19745
19746         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
19747         generated SYMBOL_REFs for labels.
19748         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
19749         Change prototype.
19750         (machopic_stub_name): Remove.
19751         (machopic_indirection_name): New function.
19752         (machopic_mcount_stub_name): Likewise.
19753         (machopic_classify_name): Remove.
19754         (machopic_function_base_sym): New function.
19755         (machpoic_classify_symbol): Likewise.
19756         (machopic_classify_ident): Remove.
19757         (machopic_define_ident): Likewise.
19758         (machopic_define_name): Likewise.
19759         (machopic_name_defined_p): Likewise.
19760         (machopic_ident_defined_p): Likewise.
19761         (darwin_strip_name_encoding): Likewise.
19762         (machopic_define_symbol): New function.
19763         * config/darwin.c (hashtab.h): Include.
19764         (machopic_defined_list): Remove.
19765         (machopic_classify_ident): Likewise.
19766         (machopic_classify_name): Likewise.
19767         (machopic_ident_defined_p): Likewise.
19768         (machopic_define_ident): Likewise.
19769         (machopic_define_name): Likewise.
19770         (machopic_symbol_defined_p): New function.
19771         (machopic_classify_symbol): Likewise.
19772         (machopic_data_defined_p): Use machopic_classify_symbol.
19773         (machopic_define_symbol): New function.
19774         (machopic_function_base_sym): New function.
19775         (machopic_non_lazy_pointers): Remove.
19776         (machopic_non_lazy_ptr_name): Likewise.
19777         (machopic_stubs): Likewise.
19778         (machopic_stub_name): Likewise.
19779         (NON_LAZY_POINTER_SUFFIX): New macro.
19780         (STUB_SUFFIX): Likewise.
19781         (machopic_indirection): New structure.
19782         (machopic_indirections): New variable.
19783         (machopic_indirection_hash): New function.
19784         (machopic_indirection_eq): Likewise.
19785         (machopic_indirection_name): Likewise.
19786         (machopic_mcount_stub_name): New function.
19787         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
19788         hash table.
19789         (machopic_indirect_data_reference): Rework to use new functions.
19790         (machopic_indirect_call_target): Likewise.
19791         (machopic_legitimize_pic_address): Likewise.
19792         (machopic_output_indirection): New function.
19793         (machopic_finish): Use it.
19794         (machopic_operand_p): Rework to use new functions.
19795         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
19796         (darwin_strip_name_encoding): Remove.
19797         (update_non_lazy_ptrs): Remove.
19798         (update_stubs): Likewise.
19799         (darwin_non_lazy_pcrel): Use new functions.
19800         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
19801         (ASM_OUTPUT_LABELREF): Likewise.
19802         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
19803         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
19804         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
19805         (TARGET_STRIP_NAME_ENCODING): Do not use
19806         darwin_strip_name_encoding.
19807         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
19808         darwin_strip_name_encoding.
19809         * config/i386/darwin.h (FUNCTION_PROFILER): Use
19810         machopic_mcount_stub_name.
19811         * config/i386/i386.c (x86_output_mi_thunk): Use
19812         machopic_indirection_name, not machopic_stub_name.
19813         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
19814         machopic_function_base_sym.
19815         (print_operand): Use machopic_classify_symbol.
19816         (rs6000_emit_prologue): Use machopic_function_base_sym.
19817         (output_profile_hook): Do not use machopic_stub_name.
19818         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
19819
19820 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
19821
19822         PR c/7284
19823         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
19824         as multiplication.
19825
19826 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
19827
19828         * doc/implement-c.texi: New file.
19829         * doc/extend.texi (C Implementation): Move to there.
19830         * doc/gcc.texi: Include implement-c.texi.
19831         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
19832
19833 2004-07-22  Jason Merrill  <jason@redhat.com>
19834
19835         * integrate.c (copy_decl_for_inlining): Remove invisible reference
19836         handling.
19837         * tree-inline.c (setup_one_parameter): Likewise.
19838
19839 2004-07-22  Brian Booth  <bbooth@redhat.com>
19840
19841         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
19842         (substitute_and_fold): Propigate into VUSE operands when possible.
19843         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
19844         (cp_lattice_meet): Handle merging of latticevalues when
19845         UNKNOWN_VAL is present.
19846         (visit_stmt): Visit assignments with V_MUST_DEFs.
19847         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
19848         (ccp_fold): Deal with RHS' that are constant and virtual.
19849         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
19850         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
19851         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
19852         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
19853         computing immediate uses.
19854         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
19855         transition.
19856         (replace_vuse_in): New function.
19857         (likely_value): Add check of vuse operands.
19858         (get_default_value): Set the default value of virtually defined
19859         variables to UKNOWN_VAL instead of VARYING.
19860
19861 2004-07-22  Richard Henderson  <rth@redhat.com>
19862
19863         * expr.c (emit_push_insn): Don't use set_mem_attributes.
19864
19865 2004-07-22  Richard Henderson  <rth@redhat.com>
19866
19867         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
19868         variables due to conditional compilation.
19869
19870 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
19871
19872         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
19873         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
19874         Release SSA names that have been re-renamed.
19875         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
19876         variable.
19877         * tree-ssa-alias.c (init_alias_info): If aliases have been
19878         computed before, clear existing alias information.
19879         (create_name_tags): Do no fixup PT_ANYTHING pointers.
19880         If the new name tag for a pointer is different than the one it
19881         had before, mark the old tag for renaming.
19882         (replace_may_alias): New function.
19883         (group_aliases): Call it.
19884         (setup_pointers_and_addressables): Always call get_tmt_for.
19885         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
19886         once.
19887         (set_pt_anything): New local function.
19888         (set_pt_malloc): New local function.
19889         (merge_pointed_to_info): Don't merge pointed-to variables from
19890         the original pointer if the destination is pointing to an
19891         unknown location.
19892         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
19893         (add_pointed_to_var): Do not add a variable to the points-to
19894         set if the pointer is already pointing to anywhere.
19895         (collect_points_to_info_r): If the defining statement is a PHI
19896         node, only merge pointed-to information if the argument has
19897         already been visited.
19898         (get_tmt_for): Only create a new tag if the pointer didn't
19899         have one already.
19900         (dump_alias_info): Emit more information.
19901         (dump_points_to_info_for): Likewise.
19902         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
19903         try to get the annotation of an SSA_NAME.
19904         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
19905         alias sets when checking is enabled.
19906         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
19907         (eliminate): Mark basic blocks that will need
19908         EH information cleaned up.
19909         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
19910         predecessor.
19911         Initialize need_eh_cleanup.
19912         (fini_pre): Call tree_purge_all_dead_eh_edges and
19913         cleanup_tree_cfg if needed.
19914         Free need_eh_cleanup.
19915         * tree-ssa.c (verify_ssa_name): New function.
19916         (verify_def): Call it.
19917         Re-arrange to avoid printing too many error messages.
19918         (verify_use): Likewise.
19919         (verify_phi_args): Likewise.
19920         (verify_flow_insensitive_alias_info): New function.
19921         (verify_flow_sensitive_alias_info): New function.
19922         (verify_alias_info): New function.
19923         (verify_ssa): Call verify_alias_info.
19924         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
19925         program.
19926         Re-arrange to avoid printing too many error messages.
19927         * tree-ssanames.c (make_ssa_name): Clear
19928         SSA_NAME_IN_FREE_LIST.
19929         (release_ssa_name): Never release a default definition.
19930         (release_defs): New function.
19931         * tree.h: Declare it.
19932         * tree-ssa-dce.c (remove_dead_stmt): Call it.
19933
19934 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
19935
19936         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
19937         If true, do a depth-first search.  Do a breadht-first search,
19938         otherwise.
19939         (walk_use_def_chains): Add new argument IS_DFS.
19940         Update all users.
19941         * tree-flow.h (walk_use_def_chains): Update prototype.
19942
19943 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
19944
19945         * config/cris/cris.md: Tweak formatting.
19946         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
19947         (mover2side, moverside, movemside, movei, op3, andu): Replace
19948         live define_peephole:s with define_peephole2 near-equivalents.
19949         Delete the rest.
19950         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
19951         word-size modes.
19952         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
19953         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
19954         "*mov_sidesi_mem" respectively.
19955
19956 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
19957
19958         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
19959         (gimplify_build1): Move from tree-complex.c do_unop.
19960         (gimplify_build2): Move from tree-complex.c do_binop.
19961         (gimplify_build3): New.
19962         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
19963         Adjust throughout to call the functions above.
19964         * tree-flow.h: Declare the functions above.
19965         * tree-nested.c (gimplify_val): Rename to...
19966         (tsi_gimplify_val): ... this.
19967
19968         * Makefile.in (tree_complex.o): Update dependencies.
19969         (stor-layout.o): Depend on regs.h.
19970         * c-common.c (handle_vector_size_attribute): Update for
19971         vector types without corresponding vector modes.
19972         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
19973         a corresponding vector mode is not available.
19974         * print-tree.c (print_node): Print nunits for vector types
19975         * regclass.c (have_regs_of_mode): New.
19976         (init_reg_sets_1): Initialize it and use it instead
19977         of allocatable_regs_of_mode.
19978         * regs.h (have_regs_of_mode): Declare it.
19979         * stor-layout.c (layout_type): Pick a mode for vector types.
19980         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
19981         build_replicated_const, do_unop, do_binop, do_plus_minus,
19982         do_negate, expand_vector_piecewise, expand_vector_parallel,
19983         expand_vector_addition, expand_vector_operations_1,
19984         expand_vector_operations, tree_lower_operations,
19985         pass_lower_vector_ssa, pass_pre_expand): New.
19986         (expand_complex_operations, pass_lower_complex): Remove.
19987         * tree-optimize.c (init_tree_optimization_passes): Adjust
19988         pass ordering for changes in tree-complex.c.
19989         * tree-pass.h: Declare new passes.
19990         * tree.c (finish_vector_type): Remove.
19991         (make_vector_type): New.
19992         (build_vector_type_for_mode, build_vector_type): Rewritten.
19993         * tree.def (VECTOR_TYPE): Document where the number of
19994         subparts is stored.
19995         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
19996         (make_vector): Remove declaration.
19997
19998 2004-07-21  Richard Henderson  <rth@redhat.com>
19999
20000         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
20001         TREE_THIS_VOLATILE, may_aliases, or optimization level.
20002         (remove_useless_vars): Dump debugging info.
20003         (expand_used_vars): Move ...
20004         * cfgexpand.c (expand_used_vars): ... here.  Make static.
20005         * tree-flow-inline.h (set_is_used): New.
20006         (set_default_def): Use get_var_ann.
20007         * tree-flow.h: Update decls.
20008         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
20009         (create_ssa_var_map): Use it.
20010         * tree-ssa.c (set_is_used): Remove.
20011
20012 2004-07-22  Ben Elliston  <bje@au.ibm.com>
20013
20014         * gdbinit.in: Set a breakpoint on internal_error.
20015
20016 2004-07-21  Richard Henderson  <rth@redhat.com>
20017
20018         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
20019         to create a new basic block.
20020
20021 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20022
20023         PR c/15052
20024         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
20025         return type on function definitions.  Move other warnings for
20026         qualified return type to -Wreturn-type.  Do not condition any such
20027         warnings on -pedantic.  Update comments.
20028         (start_function): Only copy function type from previous prototype
20029         declaration if return types are compatible.
20030         * c-typeck.c (function_types_compatible_p): Don't condition
20031         warning for incompatibility of volatile qualifiers on the return
20032         type on -pedantic.  Update comment.
20033         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
20034
20035 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20036
20037         * c-typeck.c (set_init_index): Require designator to be of integer
20038         type.
20039
20040 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20041
20042         PR c/11250
20043         * c-parse.in (init): Change to exprtype.
20044         (primary): Set original_code for STRING to STRING_CST.
20045         Call maybe_warn_string_init for compound literals.
20046         (initdcl, notype_initdcl): Call maybe_warn_string_init.
20047         (initval): Update.
20048         * c-tree.h (maybe_warn_string_init): New.
20049         (pop_init_level, process_init_element): Use struct c_expr.
20050         (struct c_expr): Update comment.
20051         * c-typeck.c (maybe_warn_string_init): New function.
20052         (digest_init): Call it.  Additional parameter strict_string.  All
20053         callers changed.
20054         (output_init_element): Likewise.
20055         (struct constructor_stack): Use struct c_expr for
20056         replacement_value.
20057         (really_start_incremental_init, push_init_level): Update.
20058         (pop_init_level): Update.  Return struct c_expr.
20059         (process_init_level): Update.  Take struct c_expr argument.
20060
20061 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
20062
20063         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
20064         commit.
20065
20066 2004-07-21  Eric Christopher  <echristo@redhat.com>
20067
20068         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
20069         removal.
20070         * c-decl.c (pop_scope): Ditto.
20071         * calls.c (expand_call): Remove call to current_nesting_level,
20072         update comment accordingly. Remove calls to expand_start_target_temps
20073         and expand_end_target_temps.
20074         * cfgexpand.c (construct_init_block): Remove call to
20075         expand_start_bindings_and_block.
20076         (construct_exit_block): Remove call to expand_end_bindings.
20077         * expr.c (safe_from_p): Remove BIND_EXPR handling.
20078         (expand_expr_real_1): Ditto. Fix formatting.
20079         (expand_vars): Delete.
20080         * stmt.c (POPSTACK): Remove block_stack.
20081         (stmt_status): Remove x_block_stack.
20082         (block_stack): Delete.
20083         (expand_start_bindings_and_block): Ditto.
20084         (expand_start_target_temps): Ditto.
20085         (expand_end_target_temps): Ditto.
20086         (current_nesting_level): Ditto.
20087         (warn_about_unused_variables): Ditto.
20088         (expand_end_bindings): Ditto.
20089         * tree.h: Remove declarations for above.
20090
20091 2004-07-21  Steven Bosscher  <stevenb@suse.de>
20092
20093         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
20094         * rtl.c (note_insn_name): Likewise.
20095         * print-rtl.c (print_rtx): Don't print it.
20096         * cfgrtl.h (can_delete_note_p): Don't handle it.
20097         (rtl_delete_block): Likewise.
20098         * passes.c (rest_of_handle_guess_branch_prob): Remove.
20099         (rest_of_compilation): Don't call it.
20100         * predict.c (process_note_predictions, process_note_prediction,
20101         note_prediction_to_br_prob): Remove.
20102         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
20103         * stmt.c (return_prediction): Remove.
20104         (expand_value_return): Don't call it.  Don't add prediction
20105         notes for return statements.
20106
20107 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
20108
20109         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
20110         once.
20111
20112 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
20113
20114         * c-common.c (vector_types_convertible_p): Use vector types'
20115         TYPE_SIZE and TREE_TYPE instead of their mode.
20116         * convert.c (convert_to_integer): Likewise.
20117         (convert_to_vector): Likewise.
20118         * fold-const.c (fold_convert): Likewise.
20119         * varasm.c (output_constant): Likewise.
20120         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
20121         Allow a VECTOR_TYPE initializer to be made of several vectors.
20122         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
20123         of cleared and need_to_clear, and use fold_convert.
20124         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
20125         integer vectors.
20126
20127 2004-07-20  Richard Henderson  <rth@redhat.com>
20128
20129         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
20130         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
20131
20132 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
20133
20134         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
20135         enormous cost if not TARGET_HARD_MUL.
20136
20137 2004-07-20  Andrew Pinski  <apinski@apple.com>
20138
20139         PR target/16557
20140         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
20141         (ASM_SPEC): here.
20142
20143 2004-07-21  Paul brook  <paul@codesourcery.com>
20144
20145         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
20146
20147 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20148
20149         * fold-const.c (operand_equal_p): Temporarily support NULL args.
20150         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
20151         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
20152
20153 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
20154
20155         * rtl.h (plus_constant): Delete.
20156         (plus_constant_wide): Rename to plus_constant.
20157         (plus_constant_for_output_wide): Delete vestigial prototype.
20158         (GEN_INT): Remove unnecessary cast.
20159         * tree.h (build_int_2, size_int_type): Delete.
20160         (build_int_2_wide): Rename to build_int_2.
20161         (size_int_wide): Rename to size_int_kind.
20162         (size_int_type_wide): Rename to size_int_type.
20163         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
20164         Remove unnecessary cast.
20165         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
20166         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
20167         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
20168         (size_int_type_wide): Rename size_int_type.
20169         (int_const_binop): Use size_int_type.
20170         * c-lex.c (interpret_integer): Use build_int_2.
20171         * final.c (split_double): Remove unnecessary casts.
20172         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
20173
20174 2004-07-20  Richard Henderson  <rth@redhat.com>
20175
20176         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
20177         (gimplify_compound_lval): Use is_gimple_tmp_reg.
20178         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
20179         (is_gimple_tmp_reg): New.
20180         * tree-gimple.h (is_gimple_tmp_reg): Declare.
20181
20182 2004-07-20  Richard Henderson  <rth@redhat.com>
20183
20184         * tree-pretty-print.c (dump_generic_node): Dump
20185         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
20186
20187 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
20188
20189         * tree-mudflap.c (mf_set_options_fndecl): New tree.
20190         (mudflap_init): Set it.
20191         (mudflap_register_call): Remove __mf_init call.
20192         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
20193         to pass "-ignore-reads" option to libmudflap if needed.
20194
20195 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
20196
20197         PR c++/14607
20198         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
20199         (MAKE_DECL_ONE_ONLY): Undefine.
20200         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
20201         readonly_data, one_only_data_section, forget_section): New prototypes.
20202         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
20203         functions.
20204         (pa_select_section): Add one-only (COMDAT) support.
20205         * pa.h (struct machine_function): Define.
20206         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
20207         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
20208         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
20209         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
20210         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
20211         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
20212         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
20213         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
20214         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
20215         for EXTRA_SECTION_FUNCTIONS.
20216         * doc/install.texi: Update binutils requirements.
20217
20218 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20219
20220         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
20221         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
20222         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
20223         size_t.
20224         (struct VEC): Use unsigned for num and alloc.
20225         * vec.c (struct vec_prefix): Likewise.
20226         (vec_o_reserve): Adjust.
20227
20228         * dbxout.c (dbxout_type): Fix printf format.
20229
20230         * tree.h (binfo_member): Remove.
20231         * tree.c (binfo_member): Remove.
20232
20233 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20234
20235         * tree.h: Include vec.h
20236         (DEF_VEC_P(tree)): New type.
20237         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
20238         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
20239         (BINFO_LANG_SLOT): Remove.
20240         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
20241         (struct tree_binfo): Turn base_binfos into a trailing
20242         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
20243         (binfo_lang_slots): Remove.
20244         * tree.c (binfo_lang_slots): Remove.
20245         (make_tree_binfo_stat): Take a base binfo count, not a
20246         lang slot count.  Adjust.
20247         * Makefile.in (TREE_H): Add vec.h
20248         * alias.c (record_component_aliases): Adjust BINFO access.
20249         * dbxout.c (dbxout_type): Likewise.
20250         * dwarf2out.c (gen_member_die): Likewise.
20251         * sdbout.c (sdbout_one_type): Likewise.
20252         * tree-dump.c (deque_and_dump): Likewise.
20253         * config/i386/i386.c (classify_argument,
20254         contains_128bit_aligned_vector_p): Likewise.
20255         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
20256         * doc/c-tree.texi (Classes): Update BINFO documentation.
20257
20258 2004-07-20  Steven Bosscher  <stevenb@suse.de>
20259
20260         * c-common.h (check_case_value): Remove prototype.
20261         (c_add_case_label): Adjust prototype.
20262         * c-common.c (check_case_value): Make static.
20263         (check_case_bounds): New function.
20264         (c_add_case_label): Use it.  Take new argument orig_type.
20265         * c-typeck.c (struct c_switch): New orig_type field.
20266         (c_start_case): Set it.
20267         (do_case): Pass it to c_add_case_label.
20268         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
20269         cases from here.  Add the labels in reverse order.
20270         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
20271         (add_case_node): Return nothing, don't check for duplicate cases.
20272         Insert new case nodes in a list, not in an AVL tree.
20273         (expand_end_case_type): Don't turn a case tree into a case list.
20274         (case_tree2list): Remove.
20275         * tree.h (add_case_node): Adjust prototype.
20276
20277 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
20278
20279         * genattr.c (struct range, struct function_unit,
20280         write_units, extend_range, init_range): Remove them.
20281         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
20282         Output "#define INSN_SCHEDULING" here.
20283         * genattrtab.c (struct range, struct function_unit_op,
20284         struct function_unit, struct dimension, enum operator,
20285         operate_exp, expand_units, simplify_knowing,
20286         encode_units_mask, simplify_by_exploding,
20287         find_and_mark_used_attributes, unmark_used_attributes,
20288         add_values_to_cover, increment_current_value,
20289         test_for_current_value, simplify_with_current_value,
20290         simplify_with_current_value_aux, gen_unit,
20291         write_unit_name, write_function_unit_info,
20292         write_complex_function, write_toplevel_expr,
20293         find_single_value, extend_range): Remove.
20294         (write_attr_get): Do not handle common_av->value
20295         being an FFS.
20296         (struct attr_desc): Remove func_units_p and blockage_p.
20297         (write_attr_valueq): Do not handle them.
20298         (find_attr): Do not clear them.
20299         (make_internal_attr): Do not initialize them.
20300         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
20301         * sched-vis.c (init_target_units, insn_print_units,
20302         init_block_visualization, print_block_visualization,
20303         visualize_scheduled_insns, visualize_no_unit,
20304         visualize_stall_cycles, visualize_alloc,
20305         visualize_free, target_units, get_visual_tbl_length,
20306         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
20307         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
20308         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
20309         * haifa-sched.c (blockage_range, clear_units,
20310         schedule_unit, actual_hazard, potential_hazard,
20311         insn_unit, unit_last_insn, unit_tick,
20312         actual_hazard_this_instance, potential_hazard,
20313         schedule_unit, max_insn_queue_index_value): Remove.
20314         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
20315         max_insn_queue_index.
20316         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
20317         * doc/md.texi (Processor pipeline description): Remove
20318         references to old pipeline descriptions.
20319         (Automaton pipeline description): Merge with the above.
20320         (Old pipeline description, Comparison of the two descriptions):
20321         Remove.
20322
20323         * bt-load.c (migrate_btr_def): Remove references to
20324         use_pipeline_interface.
20325         * haifa-sched.c (insn_cost, schedule_insn,
20326         schedule_block, advance_one_cycle, sched_init,
20327         queue_to_ready, sched_finish): Likewise.
20328         * modulo-sched.c (sms_schedule, advance_one_cycle,
20329         ps_has_conflicts): Likewise.
20330         * sched-rgn.c (init_ready): Likewise.
20331         (debug_dependencies): Likewise, and remove an "if (1)".
20332         * target.h (use_dfa_pipeline_interface): Remove.
20333         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20334         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20335         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20336         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20337         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20338         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20339         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20340         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20341         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20342         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20343         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20344         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20345         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20346         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20347         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20348         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20349         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20350         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20351         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20352
20353 2004-07-19  Roger Sayle  <roger@eyesopen.com>
20354
20355         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
20356
20357 2004-07-19  Jeff Law  <law@redhat.com>
20358
20359         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
20360         (get_eq_expr_value): Use it.  Simplify slightly.
20361
20362 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
20363
20364         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
20365         (umulsidi3_32bit_r4000): Likewise.
20366
20367 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
20368
20369         * vec.h: Propagate location information properly.
20370         (VEC_T_iterate): Add result pointer parameter.
20371         (VEC_T_space): New.
20372         (VEC_T_reserve): Use it.
20373
20374 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
20375
20376         * Makefile.in (c-format.o): Depend on c-format.h.
20377         * c-format.h: New file.
20378         (struct format_char_info): Add CHAIN member.
20379         * c-format.c: Move some types and constants to c-format.h.
20380         (format_type_error): Set to -1.
20381         (struct function_format_info): Use an int for format_type.
20382         (decode_format_type): Return an int.  Return format_type_error
20383         on error.
20384         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
20385         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
20386         (scan_char_table, time_char_table, monetary_char_table): Initialize
20387         CHAIN to NULL.
20388         (n_format_types): New variable.
20389         (check_format_info_main): Handle CHAIN in format_char_info.
20390         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
20391         TARGET_N_FORMAT_TYPES.
20392         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
20393         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
20394         * config/sol2-c.c: New file.
20395         * config/t-sol2: New file.
20396         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
20397         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
20398         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
20399
20400         * doc/extend.texi (Target Format Checks): New section.
20401         (Function Attributes): Mention it.
20402         * doc/invoke.texi: Mention target format checks.
20403         * doc/sourcebuild.texi: Mention target format checks.
20404         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
20405         TARGET_FORMAT_TYPES.
20406
20407 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
20408
20409         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
20410         added.
20411         * config/s390/s390.c (regclass_map initializer): Register 35 added to
20412         ADDR_REGS.
20413         (load_multiple_operation, store_multiple_operation): Removed
20414         pointless sanity check.
20415         (s390_decompose_address): Added check for return_address_pointer_rtx.
20416         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
20417         (s390_return_address_offset): New function.
20418         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
20419         (FRAME_REGNO_P): Added check for register 35.
20420         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
20421         REG_ALLOC_ORDER): Appended entry for register 35.
20422         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
20423         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
20424         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
20425         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
20426         is eliminable using stack pointer or hard frame pointer.
20427         (REGISTER_NAMES): Added name for register 35.
20428         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
20429         pointless sanity check.
20430
20431 2004-07-19  Roger Sayle  <roger@eyesopen.com>
20432
20433         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
20434         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
20435         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
20436         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
20437         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
20438         (fold_relational_const): Tidy up handling of floating point
20439         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
20440         transformation; fold_relational_const assumes constant operands.
20441
20442 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
20443
20444         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
20445         directory.
20446
20447 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
20448
20449         * c-tree.h (struct c_expr): Define.
20450         (C_SET_EXP_ORIGINAL_CODE): Remove.
20451         (parser_build_binary_op, build_compound_expr): Update prototypes.
20452         * c-parse.in (%union): Add exprtype.
20453         (FUNC_NAME): Mark as ttype.
20454         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
20455         exprtype.
20456         (expr): Update.  Define directly in terms of expr_no_commas
20457         instead of using nonnull_exprlist.
20458         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
20459         offsetof_member_designator, typespec_nonreserved_nonattr, init,
20460         initval, designator, component_declarator,
20461         component_notype_declarator, enumerator, array_declarator,
20462         condition, exexpr, switch_statement, stmt_nocomp, stmt,
20463         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
20464         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
20465         where appropriate.
20466         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
20467         * c-common.c (c_common_truthvalue_conversion): Don't check
20468         C_EXP_ORIGINAL_CODE.
20469         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
20470         Don't use C_EXP_ORIGINAL_CODE.
20471         (default_conversion, default_function_array_conversion): Don't use
20472         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
20473         (internal_build_compound_expr): Merge into build_compound_expr.
20474         (build_compound_expr): Take two operands instead of a TREE_LIST.
20475         * objc/objc-act.c (get_super_receiver): Update calls to
20476         build_compound_expr.
20477
20478 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
20479
20480         * config/sh/sh.c (sh_use_dfa_interface): Remove.
20481         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
20482         hook_int_void_1.
20483         * config/sh/sh.md: Extract pipeline descriptions
20484         into separate files.
20485         * config/sh/sh1.md: New file, extracted from sh.md.
20486         * config/sh/sh4.md: New file, extracted from sh.md.
20487         * config/sh/shmedia.md: New file, extracted from sh.md
20488         and rewritten using new-style pipeline description.
20489
20490 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
20491
20492         * config/pa/pa.md: Delete the two remaining define_peephole
20493         patterns.
20494
20495 2004-07-18  Steven Bosscher  <stevenb@suse.de>
20496             Joseph S. Myers  <jsm@polyomino.org.uk>
20497
20498         * c-common.c (c_common_truthvalue_conversion): Don't warn if
20499         TREE_NO_WARNING is set.
20500
20501 2004-07-18  Roger Sayle  <roger@eyesopen.com>
20502
20503         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
20504         simplify_builtin_strncmp): Delete.
20505         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
20506         Change argument to accept an arglist instead of an "exp".  Assume
20507         that the return type is always integer_type_node.  Copy missing
20508         transformations from their now obsolete simplify_builtin_*
20509         equivalents.
20510         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
20511         fold_builtin_strcmp and fold_builtin_strncmp.
20512         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
20513         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
20514         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
20515
20516 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
20517
20518         * Makefile.in (tree-alias-common.o): Update dependencies.
20519
20520 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
20521
20522         * cfgloop.c (flow_loop_nested_p): Fix comment.
20523
20524 2004-07-17  Jason Merrill  <jason@redhat.com>
20525
20526         PR c++/16115
20527         * stor-layout.c (relayout_decl): New fn.
20528         * tree.h: Declare it.
20529         (DECL_BY_REFERENCE): New macro.
20530
20531 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
20532
20533         * libgcc2.c (__enable_execute_stack): New symbol.
20534         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
20535         and declare __enable_execute_stack.
20536         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
20537         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
20538         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20539         ENABLE_EXECUTE_STACK.
20540         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
20541         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20542         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20543         ENABLE_EXECUTE_STACK.
20544         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20545         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
20546         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20547         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20548         ENABLE_EXECUTE_STACK.
20549         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20550         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20551         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20552         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20553         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
20554         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20555         (sparc64_initialize_trampoline): Likewise.
20556         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
20557
20558 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
20559
20560         * langhooks.h (builtin_function): New langhook.
20561         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
20562         (LANG_HOOKS_INITIALIZER): Update.
20563         * tree.h (builtin_function): Remove.
20564         * doc/tm.texi: Update.
20565         * c-tree.h (builtin_function): Declare.
20566         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
20567         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
20568         config/ia64/ia64.c, config/iq2000/iq2000.c,
20569         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
20570         config/stormy16/stormy16.c: All callers of builtin_function
20571         changed.
20572
20573 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
20574
20575         PR target/16556
20576         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
20577         Remove white space after the backslash.
20578
20579 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
20580
20581         PR rtl-optimization/16294
20582         * resource.c (return_insn_p): New predicate.
20583         (mark_target_live_regs): Use it.  Special-case return insns.
20584         (init_resource_info): Use it.  Don't scan the epilogue past
20585         a return.
20586
20587 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20588
20589         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
20590         destroy dominance information.
20591         * passes.c (rest_of_handle_loop2):  Free dominance information.
20592         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
20593         jump threading.
20594         (thread_jumps): Update dominance information and remove unreachable
20595         blocks.
20596         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
20597         information and remove the unreachable block.
20598
20599 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
20600
20601         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
20602
20603 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
20604
20605         * doc/sourcebuild.texi: Remove libf2c entry.
20606
20607 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
20608
20609         * config/i386/i386.md (movv16qi_internal): Fix typo.
20610
20611 2004-07-17  Steven Bosscher  <stevenb@suse.de>
20612
20613         * final.c (final_scan_insn): Fix broken commit from previous
20614         patch.
20615
20616 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
20617
20618         * c-typeck.c (parser_build_binary_op): Condition warnings for
20619         X<=Y<=Z on -Wparentheses instead of -Wextra.
20620         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
20621         supported for C only.
20622
20623 2004-07-17  Steven Bosscher  <stevenb@suse.de>
20624
20625         * cfgcleanup.c (try_simplify_condjump): Don't remove line
20626         notes to avoid unreachable code warnings.
20627         * toplev.c (backend_init): Don't emit line notes for
20628         unreachable code warnings.
20629
20630         * combine.c (distribute_notes): Don't distribute a
20631         REG_VTABLE_REF note.
20632         * final.c (final_scan_insn): Don't handle it.
20633         * rtl.c (reg_note_name): Remove it.
20634         * rtl.h (enum reg_node): Dito.
20635
20636         * emit-rtl.c (force_line_numbers, restore_line_number_status):
20637         Remove.
20638         * rtl.h (force_line_numbers, restore_line_number_status):
20639         Remove prototypes.
20640
20641         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
20642         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
20643         (using_eh_for_cleanups): Also moved here.
20644
20645         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
20646         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
20647         to expand_start_case and add_case_node.
20648         * stmt.c (struct nesting): Cleanup unused fields condition_code,
20649         last_unconditional_cleanup, nominal_type, printname, and
20650         line_number_status.
20651         (struct fixup_goto): Remove.
20652         (struct stmt_status): Remove x_goto_fixup_chain field.
20653         (goto_fixup_chain): Remove.
20654         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
20655         pushcase, pushcase_range): Remove.
20656         (expand_start_bindings_and_block): Don't set unused fields in
20657         the nesting stack.
20658         (expand_start_case, add_case_node): Cleanup unused formal arguments.
20659         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
20660         instead of emit_jump_if_reachable.
20661         (emit_case_nodes): Likewise.
20662         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
20663         static.
20664         (update_eh_label): Work around left-over exception handing regions.
20665         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
20666         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
20667         (pass_cleanup_cfg_post_optimizing): New pass.
20668         (init_tree_optimization_passes): Run the new pass after all
20669         optimizations.
20670         * tree.h (pushcase, pushcase_range): Remove prototypes.
20671         (expand_start_case, add_case_node): Update prototypes.
20672
20673 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
20674
20675         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
20676
20677 2004-07-16  Richard Henderson  <rth@redhat.com>
20678
20679         * builtins.c (std_expand_builtin_va_arg): Remove.
20680         (expand_builtin_va_arg): Remove.
20681         * expr.h: Don't declare them.
20682         * gimplify.c (mark_decls_volatile_r): Remove.
20683         (copy_if_shared_r): Don't call it.
20684         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
20685         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
20686         * gimple-low.c (lower_stmt): Likewise.
20687         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
20688         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
20689         * tree-ssa-operands.c (get_expr_operands): Likewise.
20690         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
20691         EXPAND_BUILTIN_VA_ARG.
20692         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
20693         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
20694         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
20695         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
20696
20697 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
20698
20699         * tree-ssa-pre.c (insert_aux): Break out if we hit
20700         a critical edge.
20701
20702 2004-07-16  Richard Henderson  <rth@redhat.com>
20703
20704         * basic-block.h (remove_fake_exit_edges): Declare.
20705         * cfganal.c (remove_fake_predecessors): Rename from
20706         remove_fake_successors; iterate over predecessors.
20707         (remove_fake_exit_edges): New.
20708         * cfgcleanup.c (try_optimize_cfg): Use it.
20709         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
20710         * predict.c (estimate_probability): Likewise.
20711         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
20712         * tree-cfg.c (make_edges): Likewise.
20713         * tree-ssa-pre.c (fini_pre): Likewise.
20714         * profile.c (instrument_edges): Don't remove_fake_edges.
20715         (branch_prob): Do it earlier here.
20716
20717 2004-07-16  Richard Henderson  <rth@redhat.com>
20718
20719         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
20720         switchification wrt CONSTRUCTOR.  Document the reason.
20721
20722 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
20723
20724         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
20725         that prevented descriptive __mf_check source location strings.
20726
20727 2004-07-16  Richard Henderson  <rth@redhat.com>
20728
20729         * tree-def (WITH_SIZE_EXPR): New.
20730         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
20731         * expr.c (expand_expr_real_1): Likewise.
20732         * gimplify.c (maybe_with_size_expr): New.
20733         (gimplify_arg, gimplify_modify_expr): Use it.
20734         (gimplify_modify_expr_to_memcpy): Take size parameter.
20735         (gimplify_modify_expr_to_memset): Likewise.
20736         (gimplify_expr): Handle WITH_SIZE_EXPR.
20737         * tree-alias-common.c (find_func_aliases): Likewise.
20738         * tree-eh.c (tree_could_trap_p): Likewise.
20739         (tree_could_throw_p): Likewise.
20740         * tree-gimple.c (is_gimple_lvalue): Likewise.
20741         (get_call_expr_in): Likewise.
20742         * tree-inline.c (estimate_num_insns_1): Likewise.
20743         (expand_calls_inline): Likewise.
20744         * tree-nested.c (convert_call_expr): Likewise.
20745         * tree-pretty-print.c (dump_generic_node): Likewise.
20746         * tree-sra.c (sra_walk_expr): Likewise.
20747         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
20748         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
20749         * tree-ssa-operands.c (get_expr_operands): Likewise.
20750         * tree-tailcall.c (find_tail_calls): Likewise.
20751
20752         * calls.c (expand_call): Reset old_stack_allocated after
20753         calling emit_stack_restore.
20754
20755 2004-07-16  Richard Henderson  <rth@redhat.com>
20756
20757         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
20758         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
20759         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
20760         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
20761         copy_res_decl_for_inlining.
20762
20763         * tree-inline.c (declare_return_variable): New modify_dest argument.
20764         Use it as the return value, when possible or manditory.  Handle
20765         TREE_ADDRESSABLE types.
20766         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
20767         replacement of CALL_EXPR.
20768
20769 2004-07-16  Richard Henderson  <rth@redhat.com>
20770
20771         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
20772         * gimple-low.c (expand_var_p): Don't check it.
20773         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
20774         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
20775         * tree-ssa-operands.c (add_stmt_operand): Likewise.
20776         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
20777         (find_referenced_vars): Don't call them.
20778         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
20779
20780 2004-07-16  Richard Henderson  <rth@redhat.com>
20781
20782         * function.c (pass_by_reference): True for all variable sized types.
20783
20784 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
20785
20786         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
20787         * tree-pretty-print.c: Include tree-chrec.h.
20788         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
20789         and POLYNOMIAL_CHREC nodes.
20790
20791 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
20792
20793         * builtins.c (expand_builtin_stpcpy): Do not create temporary
20794         reg with VOIDmode.
20795
20796 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
20797
20798         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
20799
20800 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
20801
20802         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
20803         to BASE_REGNUM.
20804         * config/s390/s390.c: Likewise.
20805         * config/s390/s390.h: Likewise.
20806
20807 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20808
20809         * config/mips/mips.md (addsi3, adddi3): Remove special handling
20810         of $sp adds.  Remove REGNO checks from mips16 patterns.
20811
20812 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20813
20814         * config/mips/mips.md: Delete outdated comment.
20815
20816 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20817
20818         * config/mips/mips.c (get_float_compare_codes): Delete.
20819         (mips_emit_compare): New function, mostly extracted from
20820         get_float_compare_codes and gen_conditional_branch.
20821         (gen_conditional_branch, gen_conditional_move): Use it.
20822
20823 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
20824
20825         * genautomata.c (add_vect): Speedup by using integers as
20826         bit-vectors for walking through the comb_vect and finding
20827         a match.
20828
20829 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20830
20831         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
20832         operand is an uns_arith_operand; use subtraction otherwise.
20833         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
20834         not just arith_operands.
20835
20836 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20837
20838         * config/mips/mips-protos.h (gen_int_relational): Delete.
20839         (mips_emit_scc): Declare.
20840         * config/mips/mips.c (internal_test): Delete.
20841         (sle_operand, sleu_operand): New functions.
20842         (map_test_to_internal_test, gen_int_relational): Delete.
20843         (mips_emit_binary, mips_relational_operand_ok_p)
20844         (mips_emit_int_relational, mips_zero_if_equal)
20845         (mips_emit_scc): New functions.
20846         (gen_conditional_branch): Rework to use mips_emit_int_relational.
20847         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
20848         sleu_operand.
20849         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
20850         (sltu, sleu): Use mips_emit_scc.
20851         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
20852         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
20853         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
20854
20855 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20856
20857         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
20858
20859 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20860
20861         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
20862         (*sne_[sd]i): Likewise sne_[sd]i_zero.
20863         (*sgt_[sd]i): ...and sgt_[sd]i.
20864         (*slt_[sd]i): ...and slt_[sd]i.
20865         (*sgtu_[sd]i): ...and sgtu_[sd]i.
20866         (*sltu_[sd]i): ...and sltu_[sd]i.
20867         (*sleu_[sd]i): ...and sleu_[sd]i_const.
20868         Name previously unnamed mips16 patterns.  Formatting fixes.
20869
20870 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20871
20872         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
20873         (branch_type): Delete.
20874         (gen_conditional_branch, gen_conditional_move)
20875         (mips_gen_conditional_trap): Update after name change.  Get the
20876         comparison mode from cmp_operands[0].
20877         * config/mips/mips.h (cmp_type, branch_type): Delete.
20878         (cmp_operands): Renamed from branch_cmp.
20879         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
20880         name change.  Don't set branch_type.
20881         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
20882         mode class of cmp_operands[0] rather than branch_type.  Update after
20883         name change.
20884
20885 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20886
20887         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
20888         of 0...255 to 0 when inside a SET.
20889
20890 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
20891
20892         * config/mips/mips.md: Remove mips16 define_peepholes.
20893
20894 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
20895
20896         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
20897         (fini_pre): Remove fake edges.
20898
20899 2004-07-15  Richard Henderson  <rth@redhat.com>
20900
20901         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
20902         (get_indirect_ref_operands, get_call_expr_operands): ... these.
20903
20904 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
20905
20906         * vec.h (VEC_address): New function.
20907
20908 2004-07-14  Jason Merrill  <jason@redhat.com>
20909
20910         PR middle-end/15885
20911         * gimplify.c (gimplify_arg): New fn, split out from...
20912         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
20913
20914 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
20915
20916         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
20917         generate code which is generated by pushqi1 now
20918         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
20919
20920 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
20921
20922         * combine.c (simplify_set): match the mode of the constant 0 with
20923         the tested operand to match the compare behaviour and the
20924         simplify_relational_operation() expectation.
20925
20926 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
20927
20928         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
20929         ("bordered"): Same.
20930
20931 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
20932
20933         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
20934         unconditionally.
20935         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
20936
20937 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
20938
20939         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
20940         calls in mips16 code.
20941
20942 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
20943
20944         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
20945         the destination of the li as well as for the neg.
20946
20947 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
20948
20949         g++/15861
20950         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
20951         * cgraph.h: Update declaration.
20952         * c-decl.c (build_cdtor): Update call with default priority.
20953         * coverage.c (create_coverage): Ditto.
20954         * tree-mudflap.c (mf_init_fndecl): New tree.
20955         (mudflap_init): Set it.
20956         (mudflap_register_call): Arrange to call __mf_init before the first
20957         __mf_register call.
20958         (mudflap_finish_file): Mark the mudflap static initializer as extra
20959         high priority, to beat all C++ static constructors.
20960
20961 2004-07-15  Jeff Law  <law@redhat.com>
20962
20963         * loop.c (check_insn_for_givs): Restore check for code labels that was
20964         accidentally deleted by a recent checkin.
20965
20966 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
20967
20968         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
20969         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
20970
20971 2004-07-14  Richard Henderson  <rth@redhat.com>
20972
20973         * print-tree.c (print_node): Fix casts last change.
20974
20975 2004-07-15  Paul Brook  <paul@codesourcery.com>
20976
20977         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
20978         to TARGET_UNWIND_INFO.
20979         * except.c (output_function_exception_table): Ditto.
20980         * except.h: Ditto.
20981         * opts.c (decode_options): Ditto.
20982         * passes.c (rest_of_handle_final): Ditto.
20983         * final.c (final_start_function): Ditto.
20984         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
20985         target hook.
20986         * targhooks.h (default_unwind_emit): Declare.
20987         * targhooks.c (default_unwind_emit): New function.
20988         * target-def.h: Define and use TARGET_UNWIND_EMIT.
20989         * target.h (struct gcc_target): Add unwind_emit.
20990         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
20991         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
20992         Remove IA64_UNWIND_EMIT.
20993         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
20994
20995 2004-07-14  Richard Henderson  <rth@redhat.com>
20996
20997         * print-tree.c (print_node): Handle SSA_NAME.
20998
20999 2004-07-14  James E Wilson  <wilson@specifixinc.com>
21000
21001         PR target/16325
21002         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
21003         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
21004
21005 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
21006
21007         * expr.c (expand_assignment): Reenable bitfield += optimizations.
21008         Use alias set 0 for memory, do proper mode calculations and adjust
21009         address for memories.
21010
21011 2004-07-14  Per Bothner  <per@bothner.com>
21012
21013         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
21014         structure with extra column field.
21015         * tree.c (expand_location):  Also fill in column field.
21016         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
21017         gets confused by the two conditionally-compiled definitions.
21018
21019 2004-07-14  Eric Christopher  <echristo@redhat.com>
21020
21021         * calls.c (expand_call): Fix typo in comment.
21022
21023 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
21024
21025         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
21026         comparision of TFmode.
21027
21028 2004-07-14  Richard Henderson  <rth@redhat.com>
21029
21030         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
21031         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
21032         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
21033         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
21034         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
21035         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
21036         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
21037         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
21038         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
21039
21040 2004-07-14  Mike Stump  <mrs@apple.com>
21041
21042         * config/darwin.h (WINT_TYPE): Define to be int to match
21043         system header files.
21044
21045 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
21046
21047         * config/xtensa/xtensa.c (function_arg_advance): Check for args
21048         that must be passed in the stack.
21049         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
21050         arguments if the size is not a constant.
21051
21052 2004-07-14  Per Bothner  <per@bothner.com>
21053
21054         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
21055         instead of EXPR_LOCUS in a boolean context, which is always true
21056         if --enable-mapped-location.
21057         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
21058
21059 2004-07-14  Richard Henderson  <rth@redhat.com>
21060
21061         * dominance.c (struct dom_info): Add fake_exit_edge.
21062         (init_dom_info): Allocate it.
21063         (free_dom_info): Free it.
21064         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
21065         in two passes.
21066         (calc_idoms): Honor fake_exit_edge.
21067
21068 2004-07-13  Jason Merrill  <jason@redhat.com>
21069
21070         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
21071         (rhs_test_for): New fn.
21072         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
21073         * tree-gimple.h: Declare them.
21074         * gimplify.c (gimplify_modify_expr): Use the new fns.
21075
21076 2004-07-14  Richard Henderson  <rth@redhat.com>
21077
21078         * config/arm/arm-protos.h (arm_va_arg): Remove.
21079         * config/arm/arm.c (arm_va_arg): Remove.
21080         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
21081         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
21082
21083 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21084
21085         * pa.c (fix_range): New function to mark a range(s) of registers as
21086         fixed registers.
21087         (override_options): Call fix_range if the -mfixed-range option string
21088         is not empty.
21089         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
21090         * doc/invoke.texi (-mfixed-range): Document new option.
21091
21092 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
21093
21094         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
21095         for TARGET_64BIT.
21096         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
21097
21098 2004-07-14  Roger Sayle  <roger@eyesopen.com>
21099
21100         * expmed.c (expand_sdiv_pow2): New function to expand signed division
21101         by a positive power of two, split out from expand_divmod.  Provide
21102         an alternate implementation when shifts are expensive.  Lower the
21103         threshold for using a branchless implementation to BRANCH_COST >= 2.
21104         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
21105
21106 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21107
21108         * tree-dfa.c (make_rename_temp): *Really* work just
21109         like create_tmp_var if called while outside SSA form.
21110
21111 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
21112
21113         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
21114         for division by zero.
21115         ("umodsi3"): Likewise.
21116
21117 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21118
21119         * config/mips/mips.c (mips_output_move): When generating mips16 code,
21120         force loads of negative constants to be split.
21121         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
21122         Generalize SImode li/neg splitter to cope with other modes.
21123
21124 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21125
21126         * expmed.c: Remove more references to QUEUED in the comments.
21127         * expr.c: Likewise.
21128
21129 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21130
21131         Revert:
21132         2004-07-13  Richard Henderson  <rth@redhat.com>
21133         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
21134         correctly.
21135
21136 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21137
21138         * tree-dfa.c (make_rename_temp): Work just like
21139         create_tmp_var if called while outside SSA form.
21140
21141 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21142
21143         * expr.c (enqueue_insn, finish_expr_for_function,
21144         protect_from_queue, queued_subexp_p, mark_queue,
21145         emit_insns_enqueued_after_mark, emit_queue,
21146         expand_increment): Remove.
21147         (store_constructor): Expand increment as an assignment.
21148         (expand_expr_real_1 <case PREINCREMENT_EXPR,
21149         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
21150         case POSTDECREMENT_EXPR>): Abort.
21151         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
21152         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
21153         protect_from_queue, emit_queue, queued_subexp_p): Remove.
21154         * function.h (pending_chain, x_pending_chain): Remove.
21155         * rtl.def (QUEUED): Remove.
21156
21157         * emit-rtl.c (copy_insn_1, copy_most_rtx,
21158         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
21159         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
21160         encode_units_mask): Likewise.
21161         * local-alloc.c (equiv_init_varies_p): Likewise.
21162         * rtl.c (copy_rtx): Likewise.
21163         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
21164         * simplify-rtx.c (simplify_gen_subreg): Likewise.
21165         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
21166
21167         * builtins.c (expand_builtin, expand_builtin_apply,
21168         expand_builtin_mathfn, expand_builtin_mathfn_2,
21169         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
21170         Remove calls to emit_queue and protect_from_queue.
21171         * calls.c (expand_call, precompute_arguments,
21172         precompute_register_parameters, rtx_for_function_call,
21173         store_one_arg): Likewise.
21174         * dojump.c (do_compare_and_jump, do_jump): Likewise.
21175         * explow.c (memory_address): Likewise.
21176         * expmed.c (clear_by_pieces_1, clear_storage,
21177         clear_storage_via_libcall, emit_group_load,
21178         emit_group_store, emit_store_flag,
21179         expand_expr_real_1, store_by_pieces,
21180         store_constructor, store_expr, try_casesi,
21181         try_tablejump): Likewise.
21182         * function.c (expand_pending_sizes): Likewise.
21183         * optabs.c (emit_cmp_and_jump_insns,
21184         emit_conditional_add, emit_conditional_move,
21185         expand_fix, expand_float, prepare_cmp_insn): Likewise.
21186         * stmt.c (emit_case_bit_tests,
21187         expand_asm_expr, expand_computed_goto,
21188         expand_decl_init, expand_end_case_type,
21189         expand_end_stmt_expr, expand_expr_stmt_value,
21190         expand_return, expand_start_case,
21191         optimize_tail_recursion): Likewise.
21192         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
21193         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
21194
21195 2004-07-14  Ben Elliston  <bje@au.ibm.com>
21196
21197         * vec.h: Comment fix.
21198
21199 2004-07-13  Richard Henderson  <rth@redhat.com>
21200
21201         * target.h (struct gcc_target): Add calls.pass_by_reference.
21202         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
21203         * function.c (pass_by_reference): Use the hook.
21204         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
21205         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
21206         (hook_pass_by_reference_must_pass_in_stack): New.
21207         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
21208         (alpha_pass_by_reference): New.
21209         (TARGET_PASS_BY_REFERENCE): New.
21210         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21211         * config/arc/arc.c (arc_pass_by_reference): New.
21212         (TARGET_PASS_BY_REFERENCE): New.
21213         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21214         (FUNCTION_ARG_CALLEE_COPIES): True.
21215         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
21216         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
21217         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
21218         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21219         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21220         * config/cris/cris.c (cris_pass_by_reference): New.
21221         (TARGET_PASS_BY_REFERENCE): New.
21222         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
21223         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
21224         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21225         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
21226         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21227         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
21228         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
21229         (frv_function_arg_pass_by_reference): Remove.
21230         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21231         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
21232         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
21233         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
21234         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21235         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
21236         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
21237         (ia64_pass_by_reference): Rename from
21238         ia64_function_arg_pass_by_reference.
21239         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21240         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21241         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
21242         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
21243         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
21244         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21245         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21246         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
21247         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
21248         (m32r_pass_by_reference): Adjust prototype.  Make static.
21249         Handle mode sizes correctly.
21250         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21251         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
21252         (m68hc11_function_arg_pass_by_reference): Remove.
21253         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21254         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21255         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
21256         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21257         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
21258         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
21259         (mips_va_arg): Use pass_by_reference.
21260         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
21261         Handle mode sizes correctly.
21262         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21263         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21264         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
21265         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
21266         (mmix_pass_by_reference): Rename from
21267         mmix_function_arg_pass_by_reference.
21268         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21269         (FUNCTION_ARG_CALLEE_COPIES): True.
21270         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
21271         (mn10300_pass_by_reference): New.
21272         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21273         (FUNCTION_ARG_CALLEE_COPIES): True.
21274         * config/pa/pa.c (pa_pass_by_reference): New.
21275         (TARGET_PASS_BY_REFERENCE): New.
21276         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21277         (FUNCTION_ARG_CALLEE_COPIES): True.
21278         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
21279         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
21280         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
21281         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21282         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
21283         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
21284         (s390_pass_by_reference): Rename from
21285         s390_function_arg_pass_by_reference.
21286         (s390_function_arg_advance): Don't query pass-by-ref.
21287         (s390_function_arg): Likewise.
21288         (s390_gimplify_va_arg): Use pass_by_reference.
21289         (s390_call_saved_register_used): Likewise.
21290         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21291         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
21292         (shcompact_byref, sh_pass_by_reference): New.
21293         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21294         (SHCOMPACT_BYREF): Remove.
21295         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
21296         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
21297         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
21298         (sparc_gimplify_va_arg): Use pass_by_reference.
21299         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21300         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21301         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
21302         (v850_pass_by_reference): New.
21303         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21304         (FUNCTION_ARG_CALLEE_COPIES): True.
21305         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
21306         FUNCTION_ARG_PASS_BY_REFERENCE docs.
21307
21308 2004-07-14  Richard Henderson  <rth@redhat.com>
21309             Richard Sandiford  <rsandifo@redhat.com>
21310
21311         * config/mips/mips-protos.h (mips_va_arg): Delete.
21312         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
21313         * config/mips/mips.c: Include tree-gimple.h.
21314         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
21315         (mips_arg_info): Remove special handling of must_pass_in_stck args.
21316         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
21317         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
21318
21319 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
21320
21321         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
21322         arguments for COND_EXPR in big-endian adjustment code.
21323
21324 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21325
21326         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
21327         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
21328         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
21329         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
21330
21331 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
21332
21333         PR tree-optimization/16443
21334         * tree-ssa-alias.c: Add more description for
21335         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
21336         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
21337         clobbering of call-clobbered and addressable variables.  If
21338         there are any before aliases have been computed, add them.
21339
21340 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
21341
21342         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
21343         verification.
21344
21345 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
21346
21347         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
21348         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
21349         to the same type.
21350
21351 2004-07-13  Per Bothner  <per@bothner.com>
21352
21353         * collect2.c (main):  Handle --no-demangle and --demangle flags.
21354
21355 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
21356
21357         * Makefile.in (OBJS-common): Add tree-data-ref.o.
21358         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
21359         (tree-data-ref.o): New rule.
21360         * lambda.h: New file.
21361         * tree-data-ref.c: New file.
21362         * tree-data-ref.h: New file.
21363         * tree.c (int_cst_value, tree_fold_gcd): New functions.
21364         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
21365
21366 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21367
21368         PR target/13926
21369         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
21370         * config/sparc/sparc.c (output_ubranch): New function.
21371         * config/sparc/sparc.md (jump pattern): Use it.
21372
21373 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21374
21375         PR target/16494
21376         * config/sparc/sparc.c (output_cbranch): Properly guard
21377         the code handling far branches with TARGET_V9.
21378         * config/sparc/sparc.md (length attribute): Document the
21379         side-effect of having a length greater or equal to 3.
21380
21381 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21382             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
21383
21384         PR target/15186
21385         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
21386         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
21387
21388 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21389             Martin Sebor  <sebor@roguewave.com>
21390
21391         PR target/12602
21392         * doc/invoke.texi (SPARC options): Document -threads
21393         and -pthreads on Solaris.
21394
21395 2004-07-13  Richard Henderson  <rth@redhat.com>
21396
21397         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
21398         by reference.
21399         (ind_gimplify_va_arg_expr): Remove.
21400         * tree.h (ind_gimplify_va_arg_expr): Remove.
21401         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
21402         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
21403         argsp to be null.
21404
21405         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
21406         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
21407         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
21408         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
21409         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
21410
21411 2004-07-13  Richard Henderson  <rth@redhat.com>
21412
21413         * function.c (pass_by_reference): New.
21414         (assign_parm_find_data_types): Use it.
21415         * calls.c (initialize_argument_information): Likewise.
21416         (emit_library_call_value_1): Likewise.
21417         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21418         * function.h (pass_by_reference): Declare.
21419
21420 2004-07-13  Richard Henderson  <rth@redhat.com>
21421
21422         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
21423         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
21424         * expr.h (MUST_PASS_IN_STACK): Remove.
21425         * system.h (MUST_PASS_IN_STACK): Poison.
21426         * tree.h (must_pass_in_stack_var_size): Declare.
21427         (must_pass_in_stack_var_size_or_pad): Declare.
21428         * calls.c (must_pass_in_stack_var_size): New.
21429         (must_pass_in_stack_var_size_or_pad): Rename from
21430         default_must_pass_in_stack.
21431         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
21432         (TARGET_MUST_PASS_IN_STACK): New.
21433         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
21434         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
21435         (TARGET_MUST_PASS_IN_STACK): New.
21436         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
21437         * config/frv/frv.c (frv_must_pass_in_stack): New.
21438         (TARGET_MUST_PASS_IN_STACK): New.
21439         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
21440         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
21441         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
21442         (ix86_must_pass_in_stack): Make static.
21443         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
21444         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
21445         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
21446         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
21447         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
21448         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
21449         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
21450         (mcore_must_pass_on_stack): Remove.
21451         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
21452         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
21453         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
21454         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
21455         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
21456         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
21457         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
21458         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
21459         (TARGET_MUST_PASS_IN_STACK): New.
21460         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
21461         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
21462         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
21463         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
21464         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
21465         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
21466         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
21467         MUST_PASS_IN_STACK.
21468
21469         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
21470         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
21471         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
21472         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
21473         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
21474         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
21475         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
21476         config/xtensa/xtensa.c: Use target hook.
21477
21478 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
21479
21480         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
21481         * configure: Rebuilt.
21482
21483 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
21484
21485         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
21486         * config/mips/mips.h (mips_reg_names): Don't declare.
21487         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
21488         (TARGET_NAME_REGS): Delete.
21489         (TARGET_SWITCHES): Remove -mrnames.
21490         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
21491         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
21492         in REGISTER_NAMES.
21493         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
21494         (override_options): Remove handling of TARGET_NAME_REGS.
21495
21496 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
21497
21498         * config/mips/mips.h (TARGET_*): Boolify.
21499
21500 2004-07-12  Nick Clifton  <nickc@redhat.com>
21501
21502         * config.gcc: Add sh-*-symbianelf target.
21503         * config/sh/sh.c: Add new target macros:
21504         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
21505         TARGET_CXX_IMPORT_EXPORT_CLASS.
21506         (sh_file_start): Create a definition of the .directive section.
21507         (sh_attribute): Add dllimport and dllexport attributes.
21508         * config/sh/symbian-pre.h: New file.
21509         * config/sh/symbian-post.h: New file.
21510         * config/sh/symbian.c: New file. Contains Symbian specific
21511         functions.
21512         * config/sh/sh-protos.h: Add prototypes for new functions
21513         provided by symbian.c.
21514         * config/sh/t-symbian: New file.
21515         * doc/extend.texi: Document support for dllimport and dllexport
21516         attributes by the sh-symbianelf target.
21517
21518 2004-07-12  James E Wilson  <wilson@specifixinc.com>
21519
21520         * Makefile.in (AR): Use @AR@ not ar.
21521         (NM): New.
21522         (AR_FOR_TARGET): Use $(AR) not ar for native.
21523         (NM_FOR_TARGET): Use $(NM) not nm for native.
21524         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
21525         * configure: Regenerate.
21526
21527 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
21528
21529         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
21530         special case.
21531         (ashldi3_sp64): Likewise.
21532
21533 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21534
21535         PR target/16477
21536         * pa.c (function_arg): Update comment.
21537         * pa.h (BLOCK_REG_PADDING): Define.
21538
21539 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21540
21541         PR tree-optimization/16461
21542         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
21543         arguments of phi nodes.
21544
21545 2004-07-12  Devang Patel  <dpatel@apple.com>
21546
21547         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
21548
21549 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
21550
21551         * function.c (expand_function_start): Ensure r_save is in Pmode.
21552         * calls.c (prepare_call_address): Ensure static_chain_value is
21553         in Pmode.
21554         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
21555         r_save_area are in Pmode.
21556         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
21557         fnaddr, and static_chain are in Pmode.
21558
21559 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
21560
21561         PR target/16445
21562         * config/ia64/ia64.c (bundling): Don't count ignored insns.
21563
21564 2004-07-12  Richard Henderson  <rth@redhat.com>
21565
21566         * target.h (struct gcc_target): Move gimplify_va_arg_expr
21567         next to build_builtin_va_list.
21568         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
21569         * builtins.c (gimplify_va_arg_expr): Likewise.
21570         * gimplify.c (copy_if_shared_r): Likewise.
21571
21572 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
21573
21574         * passes.c (rest_of_decl_compilation): Don't defer call of
21575         assemble_variable if its DECL_RTL is already set.
21576
21577 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
21578
21579         * cfgloop.h (struct loop): Add nb_iterations field.
21580         (current_loops): Declare.
21581         * tree-chrec.c (chrec_not_analyzed_yet,
21582         chrec_dont_know, chrec_known, count_ev_in_wider_type,
21583         chrec_contains_symbols_defined_in_loop): Remove the temporary
21584         hooks.
21585         * tree-flow-inline.h (loop_containing_stmt): New function.
21586         * tree-scalar-evolution.c: Add implementation.
21587         * tree-scalar-evolution.h: Add declarations.
21588
21589 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
21590
21591         PR rtl-optimization/15921
21592         * Makefile.in (global.o): Add recog.h.
21593
21594         * global.c (recog.h): Add the include-clause.
21595         (bb_info): New member earlyclobber.
21596         (allocate_bb_info, free_bb_info): Initialize/finish the new
21597         member.
21598         (earlyclobber_regclass, earlyclobber_regclass_length): The new
21599         global variables.
21600         (check_earlyclobber, regclass_intersect,
21601         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
21602         New functions.
21603         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
21604         (make_accurate_live_analysis): Modify pavin.
21605
21606 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
21607
21608         * tree-cfg.c (find_taken_edge): Statically compute the truth
21609         value of a predicate comparing an SSA_NAME to itself.
21610
21611 2004-07-12  Roger Sayle  <roger@eyesopen.com>
21612
21613         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
21614         rs6000 doesn't have shift-and-add or shift-and-sub instructions
21615         by returning the cost of a multiplication plus an addition.
21616
21617 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
21618
21619         PR tree-optimization/14107
21620         * gimplify.c (gimplify_return_expr): Accept a
21621         RETURN_EXPR with an error argument.
21622         * tree-optimize.c (init_tree_optimization_passes):
21623         Run pass_warn_function_return at -O0.
21624
21625 2004-07-12  Roger Sayle  <roger@eyesopen.com>
21626
21627         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
21628         index entry.
21629
21630 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
21631
21632         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
21633         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
21634         * config/mips/3000.md: Add copyright notice.  Remove automota and
21635         function units; use generic ones instead.  Only define reservations
21636         for things that are different from generic.md.  Extend each clause
21637         to include r3900.
21638         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
21639         * config/mips/mips.md: Include them. Remove define_function_units.
21640         (alu, imuldiv): New automata and units.
21641
21642 2004-07-12  Ben Elliston  <bje@au.ibm.com>
21643
21644         * doc/invoke.texi (Optimize Options): Document -frename-registers
21645         not being enabled by default at -O3.
21646
21647 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21648
21649         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
21650         floating point additions, to keep real immediate constant positive.
21651         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
21652         into X + C, and leave positive real constants as X - C.
21653
21654 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21655
21656         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
21657
21658 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21659
21660         PR tree-optimization/15654
21661         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
21662
21663 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21664
21665         * builtins.c (fold_builtin_fputs): Don't bother converting the
21666         return type to integer_type_node, as we've already checked that
21667         the result will be ignored.
21668
21669         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
21670         that signed addition, subtraction, multiplication, division,
21671         remainder, negation and absolute value may potentially trap.
21672
21673         * fold-const.c (fold_ignored_result): New function to strip
21674         non-side-effecting tree nodes from an expression whose result
21675         is ignored.
21676         (fold_convert): Call fold_ignored_result when casting a value
21677         to VOID_TYPE.
21678         (omit_one_operand):  Call fold_ignored_result on the "omitted"
21679         operand when building a COMPOUND_EXPR.
21680         (pedantic_omit_one_operand): Likewise.
21681         * tree.h (fold_ignored_result): Prototype here.
21682         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
21683         when we're going to ignore the result.
21684
21685 2004-07-11  Richard Henderson  <rth@redhat.com>
21686
21687         PR tree-opt/16383
21688         * tree-ssa-ccp.c (fold_stmt_r): Split out...
21689         * tree.c (fields_compatible_p, find_compatible_field): ... new.
21690         * tree.h (fields_compatible_p, find_compatible_field): Declare.
21691         * tree-sra.c (sra_hash_tree): Hash fields by offset.
21692         (sra_elt_eq): Use fields_compatible_p.
21693         (generate_one_element_ref): Use find_compatible_field.
21694
21695 2004-07-11  Richard Henderson  <rth@redhat.com>
21696
21697         PR tree-opt/16422
21698         * tree-sra.c (generate_one_element_init): New.
21699         (generate_element_init): Use it.
21700         (scalarize_init): Push/pop gimplify context around it.
21701         (find_new_referenced_vars_1, find_new_referenced_vars): New.
21702         * gimplify.c (gimplify_expr): Allow SSA_NAME.
21703
21704 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21705
21706         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
21707         combine.c's combine_insn_cost.
21708         * rtl.h (insn_rtx_cost): Prototype here.
21709         * combine.c (combine_insn_cost): Delete function.
21710         (combine_validate_cost): Update callers of combine_insn_cost to
21711         call insn_rtx_cost instead.
21712         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
21713         requesting the rtx_cost of call and/or jump instructions.
21714
21715         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
21716         rtx_cost directly.  Don't request/use the cost of call or jump
21717         instructions.  Return -1 if the cost of any instruction can't be
21718         determined (or the BB contains a function call).
21719         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
21720         -1 (i.e. can't determine the cost of any instruction or the basic
21721         block contains a subroutine call).
21722         (find_if_case_2): Likewise.
21723
21724 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21725
21726         * rs6000.c (struct processor_costs): Change semantics of fields to
21727         include the COST_N_INSNS scaling, and update all initializers.
21728         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
21729         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
21730         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
21731         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
21732
21733 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21734
21735         * LANGUAGES: Remove obsolete information.
21736
21737 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
21738
21739         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
21740         SIGBUS signal frames, the PSW address points *to* the faulting
21741         instruction, not after it.
21742
21743 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
21744
21745         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
21746         added to TLS symbol addresses.
21747
21748 2004-07-11  Richard Henderson  <rth@redhat.com>
21749
21750         * expmed.c (init_expmed): Use stack-local structures for
21751         temporary rtl.  Don't recognize shifts.
21752
21753 2004-07-11  Richard Henderson  <rth@redhat.com>
21754
21755         * expr.c (store_expr): Don't fiddle subreg promotion for types
21756         with precision smaller than the mode.
21757
21758 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21759
21760         * tree.h (all_types_permanent): Remove.
21761
21762 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21763
21764         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
21765         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
21766         * langhooks.c (lhd_clear_binding_stack): Remove.
21767         * langhooks-def.h (lhd_clear_binding_stack,
21768         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
21769         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
21770         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
21771         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
21772         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
21773         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
21774         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
21775         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
21776         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
21777         * tree.h (poplevel): Don't declare.
21778         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
21779         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
21780         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
21781         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
21782         Remove.
21783
21784 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21785
21786         PR tree-optimization/16437
21787         * c-common.c (shorten_compare): Don't mark result of conversion to
21788         narrower signed type as overflowing.
21789         * fold-const.c (decode_field_reference): Determine whether
21790         signedness comes from outer type using precision rather than size.
21791
21792 2004-07-11  Phil Edwards  <phil@codesourcery.com>
21793
21794         * configure.ac:  Alphabetize --enable-checking list, add
21795         missing valgrind entry.
21796         * configure:  Regenerate.
21797
21798 2004-07-11  Phil Edwards  <phil@codesourcery.com>
21799
21800         * doc/install.texi (Testing):  Fix syntax in "make check" example.
21801
21802 2004-07-10  James E Wilson  <wilson@specifixinc.com>
21803
21804         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
21805
21806 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21807
21808         PR rtl-optimization/16001
21809         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
21810         niter_expr.
21811
21812 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
21813
21814         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
21815
21816 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
21817             James Morrison  <phython@gcc.gnu.org>
21818
21819         * doc/contrib.texi (Contributors): Add gfortran contributors and
21820         fix a couple of typos.
21821
21822 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21823
21824         PR rtl-optimization/15387
21825         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
21826         to incoming args space correctly.
21827
21828 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21829
21830         * pa.c (output_indirect_call): Only use %r2 as the link register in
21831         indirect calls with the long PA 2.0 pc-relative branch.
21832
21833 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
21834
21835         * config/i386/i386.c (override_options): Pick a 64-bit CPU
21836         for the default tuning if TARGET_64BIT.
21837
21838 2004-07-10  Richard Henderson  <rth@redhat.com>
21839
21840         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
21841         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
21842
21843 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
21844
21845         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
21846         * expmed.c (store_bit_field, extract_bit_field): Remove last
21847         argument.
21848         * builtins.c (expand_builtin_signbit): Adjust callers.
21849         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
21850         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
21851         * ifcvt.c (noce_emit_move_insn): Likewise.
21852         * stmt.c (expand_return): Likewise.
21853         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
21854         store_field, expand_expr_real_1): Likewise.
21855
21856 2004-07-10  Richard Henderson  <rth@redhat.com>
21857
21858         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
21859
21860 2004-07-09  Mike Stump  <mrs@apple.com>
21861
21862         * config/darwin.c (no_dead_strip): Add.
21863         (HAVE_DEAD_STRIP): Add.
21864         (darwin_emit_unwind_label): Ensure that we don't dead code strip
21865         the .eh label.
21866
21867 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21868
21869         * tree-ssa-loop-im.c: New file.
21870         * Makefile.in (tree-ssa-loop-im.o): Add.
21871         * cfgloop.c (superloop_at_depth): New function.
21872         * cfgloop.h (superloop_at_depth): Declare.
21873         * common.opt (ftree-lim): New flag.
21874         * expr.c (array_ref_up_bound): New function.
21875         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
21876         * timevar.def (TV_LIM): New timevar.
21877         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
21878         computing immediate uses of a phi node.
21879         * tree-flow.h (struct tree_ann_common_d): Add aux field.
21880         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
21881         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
21882         * tree-pass.h (pass_lim): Declare.
21883         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
21884         functions.
21885         (pass_lim): New pass structure.
21886         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
21887         * tree.c (in_array_bounds_p): New function.
21888         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
21889         (in_array_bounds_p, array_ref_up_bound): Declare.
21890         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
21891         * doc/passes.texi (tree-ssa-loop-im.c): Document.
21892
21893 2004-07-09  Richard Henderson  <rth@redhat.com>
21894
21895         * builtins.c (expand_builtin_stpcpy): Don't modify len.
21896
21897         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
21898         with prejudice.
21899
21900 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
21901
21902         * flags.h: Delete redundant prototypes that are being generated
21903         in options.h from common.opt.
21904         * common.opt: Add in the expository comments formerly in flags.h.
21905
21906 2004-07-09  Jan Beulich  <jbeulich@novell.com>
21907
21908         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
21909         available for use only when TARGET_MMX/_SSE is set, and check for
21910         variable argument function if any register count is non-zero.
21911         (function_arg): Correctly suppress repeated warnings for passing SSE
21912         vectors are arguments without SSE enabled.
21913         (ix86_function_arg_boundary): Without SSE enabled, the use of what
21914         would be SSE register modes does no longer influence the alignment.
21915
21916 2004-07-09  Richard Henderson  <rth@redhat.com>
21917
21918         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
21919         Always align upward to arg boundary.  Use size_in_bytes/round_up.
21920         Maintain type-correctness of constants.
21921         * stor-layout.c (round_up, round_down): Special-case powers of 2.
21922
21923 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
21924
21925         * config/sparc/sparc.c (*_costs): Scale instruction costs
21926         by COSTS_N_INSNS.
21927         (sparc_rtx_costs): Adjust as appropriate.
21928
21929 2004-07-09  Jan Beulich  <jbeulich@novell.com>
21930
21931         * config/i386/mm3dnow.h: New.
21932         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
21933
21934 2004-07-09  Richard Henderson  <rth@redhat.com>
21935
21936         * simplify-rtx.c (simplify_const_relational_operation): Only
21937         look at bounds of scalar integers.
21938
21939 2004-07-09  Jan Beulich  <jbeulich@novell.com>
21940
21941         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
21942
21943 2004-07-09  Andrew Pinski  <apinski@apple.com>
21944
21945         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
21946         always referenced.
21947         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
21948         UOBJC_METACLASS_decl.
21949
21950 2004-07-09  James E Wilson  <wilson@specifixinc.com>
21951
21952         PR target/16364
21953         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
21954         do return a parallel if hfa_mode == XFmode and mode == TImode.
21955
21956 2004-07-09  Jan Beulich  <jbeulich@novell.com>
21957
21958         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
21959         permissible for unary plus.
21960
21961 2004-07-09  Jan Beulich  <jbeulich@novell.com>
21962
21963         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
21964         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
21965         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
21966         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
21967         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
21968         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
21969         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
21970         (BUILTIN_xxxIMAX): New.
21971         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
21972         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
21973         BUILT_IN_PARITYIMAX.
21974
21975 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
21976
21977         * config/sparc/sparc.h (processor_costs): Define.
21978         (sparc_costs): Declare.
21979         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
21980         hypersparc_costs, sparclet_costs, ultrasparc_costs,
21981         ultrasparc3_costs): New.
21982         (sparc_override_options): Set sparc_costs as appropriate.
21983         (sparc_rtx_costs): Use sparc_costs instead of messy
21984         conditionals.
21985
21986 2004-07-09  Steven Bosscher  <stevenb@suse.de>
21987
21988         * doc/md.texi (Processor pipeline description): Mention that
21989         the old pipeline description is deprecated.
21990
21991         * config/rs6000/7450.md (automaton ppc7450): Split up, move
21992         mciu_7450 function unit to...
21993         (automaton ppc7450mciu): ...new automaton.
21994
21995         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
21996         (schedule_block): Don't consider inserting bubbles.
21997         (sched_init): Don't initialize DFA bubbles.
21998         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
21999         TARGET_SCHED_DFA_BUBBLE): Remove.
22000         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
22001         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
22002         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
22003
22004         * stmt.c (conditional_context): Remove prototype.
22005         * tree.h (conditional_context): Remove.
22006         * tree-cfg.c (pre_insert_on_edge): Remove.
22007
22008         * c-common.h (c_expand_asm_operands): Remove prototype.
22009         * c-typeck.c (c_expand_asm_operands): Remove.
22010
22011 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22012
22013         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
22014         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
22015         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
22016         and V8QI are class SSE. All sufficiently small remaining vector modes
22017         must be passed in one or two integer registers.
22018         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
22019         returned in memory.
22020         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
22021         __builtin_ia32_pmuludq128 have non-uniform argument and return types
22022         and must thus be handled explicitly.
22023         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
22024         MMX and XMM regs.
22025         (movv8qi_internal, movv4hi_internal, movv2si_internal,
22026         movv2sf_internal): Permit moving between MMX and XMM registers (since
22027         MMX areguments and return values are passed in XMM registers).
22028         (sse2_umulsidi3): Correct type and mode.
22029
22030 2004-07-09  Richard Henderson  <rth@redhat.com>
22031
22032         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
22033
22034 2004-07-09  Eric Christopher  <echristo@redhat.com>
22035
22036         * config/rs6000/40x.md: Split into two automatons.
22037
22038 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22039             Andrew Pinski  <apinski@apple.com>
22040
22041         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
22042         on when we have more than one input file.
22043         (c_common_parse_file): Restore loop over all input files.
22044         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
22045
22046         * c-decl.c (set_type_context): New function.
22047         (pop_scope): Use it to set context of types.  When we
22048         encounter a TYPE_DECL, set the context of the attached type too.
22049         (pop_file_scope): Don't call cpp_undef_all here.
22050         (diagnose_mismatched_decls): Do not complain about a second
22051         definition of an 'extern inline' function if it's not in the
22052         same translation unit.  Do not complain about inline
22053         declaration after use if the use was in a different
22054         translation unit.
22055         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
22056         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
22057         the external scope.
22058         (pushdecl_top_level): Likewise.
22059         (grokdeclarator): Clarify what is going on with setting
22060         DECL_EXTERNAL on function types, a little.
22061         (c_write_global_declarations): Don't do anything if
22062         -fsyntax-only or errors have been encountered.
22063
22064 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22065
22066         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
22067
22068 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22069
22070         PR target/16459
22071         * pa.c (output_indirect_call): Use %r2 as the link register when
22072         calling $$dyncall with a pc-relative branch.
22073
22074 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
22075
22076         * doc/install.texi (Binaries): Mention OpenPKG.
22077
22078 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
22079
22080         Fix PR tree-optimization/15555
22081         * tree-dfa.c (dump_variable): If the variable is a pointer
22082         SSA_NAME, also dump its points-to information.
22083         * tree-flow.h (struct ptr_info_def): Add field
22084         is_dereferenced.
22085         (dump_points_to_info_for): Declare.
22086         (debug_points_to_info_for): Declare.
22087         * tree-optimize.c (init_tree_optimization_passes): Add a
22088         second alias analysis pass after DOM2.
22089         Move pass_del_pta to a later spot.
22090         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
22091         create a name tags when we find a dereferenced pointer.  Just
22092         mark the pointer dereferenced.
22093         (collect_points_to_info_for): Move code to clear points-to
22094         information to create_name_tags.
22095         (create_name_tags): New function.
22096         (compute_flow_sensitive_aliasing): Call it.
22097         (setup_pointers_and_addressables): Mark type tags for renaming
22098         here instead of ...
22099         (create_memory_tag): ... here.
22100         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
22101         (dump_points_to_info_for): Declare extern.
22102         (debug_points_to_info_for): New function.
22103
22104 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
22105
22106         * config/arc/arc.md: Switch to DFA-based scheduler description.
22107         * config/arc/arc.c: Switch to DFA-based scheduler description.
22108
22109 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22110
22111         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
22112         pointer.
22113
22114 2004-07-09  Richard Henderson  <rth@redhat.com>
22115
22116         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
22117         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22118         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
22119         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22120
22121         * config/v850/v850-protos.h (v850_va_arg): Remove.
22122         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22123         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
22124         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
22125         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
22126         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
22127
22128 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22129
22130         PR target/12133
22131         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
22132         and DImode to use +/-4k offset.
22133
22134 2004-07-09  Richard Henderson  <rth@redhat.com>
22135
22136         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
22137         Remove.
22138         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22139         (xstormy16_gimplify_va_arg_expr): Rewrite from
22140         xstormy16_expand_builtin_va_arg.
22141         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
22142
22143         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
22144         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
22145
22146         * config/sh/sh-protos.h (sh_va_arg): Remove.
22147         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22148         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
22149         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
22150
22151         * config/pa/pa-protos.h (hppa_va_arg): Remove.
22152         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22153         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
22154         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22155
22156         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
22157         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22158         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
22159         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
22160
22161 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22162
22163         * config/sparc/sparc.md (return): Rewrite length formula.
22164         * config/sparc/sparc.c (output_return): Pass 1 as 5th
22165         argument to final_scan_insn when in a delay slot.
22166         (output_sibcall): Likewise.
22167
22168 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22169
22170         * arm.c (arm_cpp_interwork): New variable.
22171         (arm_override_options): Set it if TARGET_INTERWORK was on the command
22172         line.
22173         * arm.h (arm_cpp_interwork): Declare it.
22174         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
22175         __THUMB_INTERWORK__ in the preprocessor.
22176
22177 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
22178
22179         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
22180
22181 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22182
22183         PR target/16416
22184         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
22185         Override default settings to account for -m32 and -m64.
22186
22187 2004-07-08  Randolph Chung  <tausq@debian.org>
22188
22189         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
22190
22191 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
22192
22193         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
22194         before comparing it as such.
22195
22196 2004-07-08  Richard Henderson  <rth@redhat.com>
22197
22198         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
22199         temporary.  Use bit arithmetic to align.
22200
22201 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
22202
22203         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
22204         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
22205         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
22206         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
22207         add_labels_and_missing_jumps, find_jump_block,
22208         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
22209         Likewise.
22210         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
22211         link_btr_uses, move_btr_def): Likewise.
22212         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
22213         expand_builtin_expect_jump): Likewise.
22214         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
22215         * calls.c (expand_call, emit_library_call_value_1): Likewise.
22216         * cfganal.c (forwarder_block_p): Likewise.
22217         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
22218         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
22219         find_bb_boundaries): Likewise.
22220         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
22221         merge_blocks_move_predecessor_nojumps,
22222         merge_blocks_move_successor_nojumps, insns_match_p,
22223         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
22224         try_optimize_cfg): Likewise.
22225         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
22226         * cfglayout.c (skip_insns_after_block, label_for_bb,
22227         record_effective_endpoints, insn_locators_initialize,
22228         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
22229         * cfgmainloop.c (create_loop_notes): Likewise.
22230         * cfgrtl.c (delete_insn, delete_insn_chain,
22231         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
22232         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
22233         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
22234         redirect_branch_edge, force_nonfallthru_and_redirect,
22235         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
22236         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
22237         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
22238         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
22239         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
22240         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
22241         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
22242         * combine.c (combine_instructions, can_combine_p, try_combine,
22243         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
22244         distribute_notes, distribute_links, insn_cuid): Likewise.
22245         * cse.c (fold_rtx, cse_insn, cse_around_loop,
22246         invalidate_skipped_block, cse_set_around_loop,
22247         cse_end_of_basic_block, cse_main, cse_basic_block,
22248         cse_condition_code_reg): Likewise.
22249         * cselib.c (cselib_process_insn): Likewise.
22250         * ddg.c (create_ddg): Likewise.
22251         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
22252         Likewise.
22253         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
22254         gen_label_die, dwarf2out_var_location): Likewise.
22255         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
22256         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
22257         last_call_insn, active_insn_p, next_label, prev_label,
22258         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
22259         add_insn_before, remove_insn, add_function_usage_to,
22260         reorder_insns, find_line_note, remove_unnecessary_notes,
22261         emit_insn_after_1, classify_insn): Likewise.
22262         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
22263         connect_post_landing_pads, sjlj_mark_call_sites,
22264         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
22265         can_throw_internal, can_throw_external, set_nothrow_function_flags,
22266         convert_to_eh_region_ranges): Likewise.
22267         * explow.c (optimize_save_area_alloca): Likewise.
22268         * expr.c (expand_expr_real): Likewise.
22269         * final.c (insn_current_reference_address, compute_alignments,
22270         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
22271         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
22272         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
22273         propagate_block_delete_insn, propagate_one_insn,
22274         init_propagate_block_info, propagate_block, libcall_dead_p,
22275         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
22276         Likewise.
22277         * function.c (instantiate_virtual_regs, reorder_blocks_1,
22278         expand_function_start, expand_function_end, contains,
22279         thread_prologue_and_epilogue_insns,
22280         reposition_prologue_and_epilogue_notes): Likewise.
22281         * gcse.c (constprop_register, bypass_conditional_jumps,
22282         insert_insn_end_bb, gcse_after_reload): Likewise.
22283         * genemit.c (gen_expand, gen_split): Likewise.
22284         * genpeep.c (gen_peephole, main): Likewise.
22285         * global.c (build_insn_chain): Likewise.
22286         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
22287         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
22288         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
22289         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
22290         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
22291         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
22292         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
22293         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
22294         dead_or_predicable): Likewise.
22295         * integrate.c (try_constants): Likewise.
22296         * jump.c (rebuild_jump_labels, cleanup_barriers,
22297         purge_line_number_notes, init_label_info, mark_all_labels,
22298         squeeze_notes, get_label_before, get_label_after,
22299         reversed_comparison_code_parts, simplejump_p, pc_set,
22300         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
22301         delete_barrier, delete_prior_computation, delete_computation,
22302         delete_related_insns, delete_for_peephole, redirect_jump):
22303         Likewise.
22304         * lcm.c (optimize_mode_switching): Likewise.
22305         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
22306         Likewise.
22307         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
22308         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
22309         * loop-iv.c (simplify_using_assignment): Likewise.
22310         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
22311         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
22312         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
22313         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
22314         check_insn_for_givs, check_final_value, update_giv_derive,
22315         basic_induction_var, product_cheap_p, check_dbra_loop,
22316         loop_insn_first_p, last_use_this_basic_block,
22317         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
22318         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
22319         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
22320         sms_schedule_by_order): Likewise.
22321         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
22322         * postreload.c (reload_cse_simplify_operands, reload_combine,
22323         reload_cse_move2add): Likewise.
22324         * predict.c (can_predict_insn_p, estimate_probability,
22325         expected_value_to_br_prob, process_note_predictions): Likewise.
22326         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
22327         * profile.c (branch_prob): Likewise.
22328         * ra-build.c (live_out_1, livethrough_conflicts_bb,
22329         detect_webs_set_in_cond_jump): Likewise.
22330         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
22331         ra_print_rtl_with_bb): Likewise.
22332         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
22333         * recog.c (next_insn_tests_no_inequality, find_single_use,
22334         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
22335         * reg-stack.c (next_flags_user, record_label_references,
22336         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
22337         compensate_edge, convert_regs_1): Likewise.
22338         * regclass.c (scan_one_insn): Likewise.
22339         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
22340         regmove_optimize, fixup_match_1, single_set_for_csa,
22341         combine_stack_adjustments_for_block): Likewise.
22342         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
22343         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
22344         find_equiv_reg): Likewise.
22345         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
22346         reload_as_needed, emit_input_reload_insns, do_output_reload,
22347         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
22348         Likewise.
22349         * reorg.c (find_end_label, emit_delay_sequence,
22350         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
22351         get_jump_flags, rare_destination, mostly_true_jump,
22352         try_merge_delay_insns, redundant_insn, own_thread_p,
22353         fill_simple_delay_slots, fill_slots_from_thread,
22354         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
22355         dbr_schedule): Likewise.
22356         * resource.c (find_basic_block, next_insn_no_annul,
22357         find_dead_or_set_registers, mark_target_live_regs): Likewise.
22358         * rtl.h (RTX_PREV): Likewise.
22359         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
22360         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
22361         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
22362         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
22363         tablejump_p, computed_jump_p, insns_safe_to_move_p,
22364         find_first_parameter_load, can_hoist_insn_p): Likewise.
22365         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
22366         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
22367         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
22368         schedule_ebbs): Likewise.
22369         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
22370         is_conditionally_protected, can_schedule_ready_p,
22371         add_branch_dependences, debug_dependencies): Likewise.
22372         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
22373         Likewise.
22374         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
22375         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
22376         set_dominates_use, ujump_to_loop_cont): Likewise.
22377         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
22378         * varasm.c (output_constant_pool_1): Likewise.
22379
22380 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22381
22382         * tree-scalar-evolution.c: New file.
22383         * tree-scalar-evolution.h: New file.
22384         * tree-ssa-loop-niter.c: New file.
22385         * Makefile.in (SCEV_H): New.
22386         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
22387         * cfgloop.h (struct loop): Add bounds field.
22388         * tree-flow.h (struct tree_niter_desc): New type.
22389         (number_of_iterations_cond, number_of_iterations_exit,
22390         loop_niter_by_eval, find_loop_niter_by_eval,
22391         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
22392         free_numbers_of_iterations_estimates): Declare.
22393         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
22394         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
22395         * doc/invoke.texi (max-iterations-to-track): Document.
22396
22397 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22398
22399         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
22400         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
22401         (MODE_AFTER): Add cast appropriately.
22402         * config/sh/sh.md (movdi splitter): Likewise.
22403         (casesi_worker_2): Add const qualifier appropriately.
22404         (eh_return): Remove unused variable.
22405         (insv): Initialize v;
22406
22407 2004-07-08  Richard Henderson  <rth@redhat.com>
22408
22409         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
22410         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22411         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
22412         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
22413         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
22414
22415         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
22416         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22417         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
22418         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
22419
22420         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
22421         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22422         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
22423         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
22424
22425         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
22426         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22427         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
22428         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
22429
22430         * config/i860/i860-protos.h (i860_va_arg): Remove.
22431         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22432         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
22433         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
22434
22435 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
22436
22437         * system.h: Prototype getpagesize if missing.
22438         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
22439         * configure: Regenerate.
22440         * config.in: Regenerate.
22441
22442 2004-07-08  Richard Henderson  <rth@redhat.com>
22443
22444         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
22445         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22446         (fr30_gimplify_va_arg_expr): New.
22447         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
22448         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
22449
22450 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
22451
22452         PR target/16414
22453         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
22454         of asm_noperands result.
22455
22456 2004-07-08  Richard Henderson  <rth@redhat.com>
22457
22458         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
22459         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22460         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
22461         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
22462
22463 2004-07-08  Richard Henderson  <rth@redhat.com>
22464
22465         * builtins.c (ind_gimplify_va_arg_expr): New.
22466         * tree.h (ind_gimplify_va_arg_expr): Declare.
22467         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
22468
22469 2004-07-08  Jan Beulich  <jbeulich@novell.com>
22470
22471         * expmed.c (extract_bit_field): Correct condition to use vec_extract
22472         patterns also on vector elements other than the first one.
22473         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
22474         break statements.
22475
22476 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
22477
22478         * config/rs6000/darwin-ldouble.c: Correct reference
22479         to the Linnainmaa paper.
22480
22481 2004-07-08  Richard Henderson  <rth@redhat.com>
22482
22483         * config/arc/arc-protos.h (arc_va_arg): Remove.
22484         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22485         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
22486         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
22487
22488         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
22489         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22490         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
22491         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
22492
22493 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22494
22495         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
22496
22497 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
22498
22499         * c-decl.c (static_ctors, static_dtors): Make static.
22500         (pop_file_scope): Call c_common_write_pch and
22501         cgraph_finalize_compilation_unit here.
22502         (build_cdtor): Moved here from c-objc-common.c; simplify.
22503         (c_write_global_declarations_1): Clarify comment.
22504         (c_write_global_declarations): Close the external scope before
22505         doing anything else.  Call build_cdtor, cgraph_optimize, and
22506         mudflap_finish_file here.
22507         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
22508         Clarify comment.
22509         * c-objc-common.c: No need to include cgraph.h.
22510         (build_cdtor): Moved to c-decl.c.
22511         (c_objc_common_finish_file): Delete.
22512         * c-tree.h: Update to match.
22513         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
22514         (generate_static_references): Set TREE_USED before calling finish_decl.
22515         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
22516         on the static_instances_decl.
22517
22518 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
22519
22520         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
22521         decls when there is only one input translation unit.
22522         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
22523         change of 2004-07-05; do not treat declarations with
22524         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
22525         * opts.c (cur_in_fname): Delete.
22526         * opts.h: Likewise.
22527         * tree.c: Revert changes of 2004-07-05; no special treatment
22528         for TRANSLATION_UNIT_DECLs.
22529         * Makefile.in (tree.o): Update dependencies.
22530
22531 2004-07-08  Roger Sayle  <roger@eyesopen.com>
22532
22533         * builtins.c (fold_builtin_strcpy): Merge functionality from
22534         simplify_builtin_strcpy.  Add additional len argument.  No longer
22535         static.  Remove function prototype.
22536         (fold_builtin_strncpy): Likewise integrate functionality from
22537         simplify_builtin_strncpy.  Add additional slen argument.  No
22538         longer static.  Remove function prototype.
22539         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
22540         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
22541         types of "ignore" and "unlocked" parameters to bool.
22542         (fold_builtin_1):  Add additional ignore argument.  Call renamed
22543         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
22544         builtins.  Update arguments to fold_builtin_strncpy and
22545         fold_builtin_strcpy.  Add function prototype.
22546         (fold_builtin): Add additional Boolean ignore argument to pass
22547         to fold_builtin_1.
22548         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
22549         and fold_builtin_strncpy instead of simplify_builtin_fputs,
22550         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
22551
22552         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
22553         simplify_builtin_strncpy): Delete function prototypes.
22554         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
22555         fold_builtin_strncpy): Add function prototypes here.
22556         (fold_builtin): Update function prototype with new "bool ignore".
22557
22558         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
22559         (ccp_fold_builtin):  Update call to fold_builtin.  Call
22560         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
22561         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
22562         simplify_builtin_strncpy respectively.
22563         * fold-const.c (fold): Update call to fold_builtin.
22564
22565 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
22566
22567         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
22568         to strcpy.
22569
22570         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
22571         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
22572         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
22573         * calls.c: Remove ifdefs of macros above.
22574         * functions.c: Likewise.
22575         * expr.c: Likewise.
22576
22577 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22578
22579         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
22580         (arch attribute): Delete.
22581         (current_function_calls_alloca attribute): Rename into calls_alloca.
22582         (calls_eh_return): New attribute.
22583         (leaf_function): Likewise.
22584         (length attribute): Fix formula for sibcalls.
22585         (return insn): Correctly compute the 'length' attribute.
22586         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
22587
22588 2004-07-08  Richard Henderson  <rth@redhat.com>
22589
22590         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
22591         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
22592         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
22593         * tree-eh.c (lower_eh_constructs_1): Likewise.
22594         * tree-sra.c (sra_walk_modify_expr): Likewise.
22595         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
22596         (eliminate_unnecessary_stmts): Likewise.
22597         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
22598         * tree-tailcall.c (optimize_tail_call): Likewise.
22599         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
22600
22601 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22602             Jakub Jelinek  <jakub@redhat.com>
22603
22604         * config/i386/i386.c (override_options): Enable
22605         SSE prefetches with -mtune, as long as we are
22606         compiling for i686 or higher.  All i686 processors
22607         accept SSE prefetches as NOPS, some i586's don't.
22608
22609 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22610
22611         PR target/10567
22612         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
22613
22614 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
22615
22616         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
22617         the handling of clobbering ASM_EXPRs.
22618
22619 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22620
22621         PR target/16430
22622         * config/sparc/sparc.c (function_value): In 64-bit mode,
22623         return the aggregates larger than 16 bytes like unions.
22624
22625 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22626
22627         PR target/16199
22628         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
22629         'temp' is zero, generate new pseudos as needed and emit the
22630         sequence of insns in single-assignment form.  Resync comments
22631         with code.
22632         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
22633         function before reload.
22634
22635 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
22636
22637         * vec.c (vec_assert_fail): Remove duplicate 'function'.
22638
22639         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
22640
22641         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
22642         Allocation is signed.
22643         (VEC_reserve): Return flag, allocation is signed.
22644
22645 2004-07-08  Richard Henderson  <rth@redhat.com>
22646
22647         * tree-ssa-ccp.c (fold_stmt): Get type directly from
22648         OBJ_TYPE_REF_OBJECT.
22649
22650 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
22651             Neil Booth  <neil@daikokuya.co.uk>
22652
22653         PR c/2511
22654         PR c/3325
22655         * c-decl.c (finish_struct): Ensure bit-fields are given the
22656         correct type.
22657         * c-common.c (c_common_signed_or_unsigned_type): For C, require
22658         the precision to match as well as the mode.
22659         * expr.c (reduce_to_bit_field_precision): New function.
22660         (expand_expr_real_1): Reduce expressions of bit-field type to
22661         proper precision.
22662         * langhooks.h (reduce_bit_field_operations): New hook.
22663         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22664         Define.
22665         * c-lang.c, objc/objc-lang.c
22666         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
22667         * objc/objc-act.c (check_ivars): Convert types to bit-field types
22668         before checking.
22669         * tree.c (build_nonstandard_integer_type): New function.
22670         * tree.h (build_nonstandard_integer_type): New prototype.
22671         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
22672         conversions between integer and boolean types as useless.
22673
22674 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22675
22676         * c-common.c (c_common_nodes_and_builtins): Do not
22677         create __builtin_ptrdiff_t and __builtin_size_t.
22678
22679 2004-07-08  Andrew Pinski  <apinski@apple.com>
22680
22681         * Makefile.in (libbackend.o): Add -combine to the gcc
22682         command line.
22683
22684 2004-07-08  Nick Clifton  <nickc@redhat.com>
22685
22686         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
22687         Set to -Os.
22688
22689 2004-07-08  Richard Henderson  <rth@redhat.com>
22690
22691         * except.c (expand_eh_region_start, expand_eh_region_end,
22692         expand_eh_handler, expand_eh_region_end_cleanup,
22693         expand_start_all_catch, expand_start_catch, expand_end_catch,
22694         expand_end_all_catch, expand_eh_region_end_allowed,
22695         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
22696         expand_eh_region_end_fixup): Remove.
22697         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
22698         cleanups, outer_cleanups, label_chain, exception_region.
22699         (struct goto_fixup): Remove stack_level, cleanup_list_list.
22700         (struct label_chain): Remove.
22701         (struct stmt_status): Remove x_stack_block_stack.
22702         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
22703         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
22704         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
22705         end_cleanup_deferral, last_cleanup_this_contour,
22706         containing_blocks_have_cleanups_or_stack_level,
22707         any_pending_cleanups): Remove.
22708         (expand_null_return_1): Take no arguments.
22709         (expand_label, expand_naked_return, expand_return,
22710         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
22711         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
22712         expand_end_case_type): Don't use any of them.
22713         * calls.c (expand_call): Likewise.
22714         * dojump.c (do_jump): Likewise.
22715         * function.c (expand_function_end): Likewise.
22716         * expr.c (store_expr, expand_expr_real_1): Likewise.
22717         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
22718         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
22719         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
22720         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
22721         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
22722         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
22723         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
22724         for WITH_CLEANUP_EXPR.
22725         (gimple_push_cleanup): Likewise.
22726         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
22727         * print-tree.c (print_node): Likewise.
22728         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
22729         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
22730         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
22731         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
22732         (GOTO_SUBROUTINE_EXPR): Remove.
22733         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
22734         (DECL_TOO_LATE): Remove.
22735         * except.h, tree.h: Update decls.
22736
22737 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22738
22739         * explow.c (optimize_save_area_alloca): Do not accept parameters.
22740         * passes.c (rest_of_handle_final): Handle symout.
22741         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
22742         Push timevar here.
22743         (rest_of_handle_sched): Break out SMS.  Remove ifs for
22744         flag_schedule_insns and flag_modulo_sched.
22745         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
22746         collect at the end.
22747         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
22748         (rest_of_handle_partition_blocks, rest_of_handle_sms,
22749         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
22750         rest_of_handle_mode_switching, rest_of_handle_jump,
22751         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
22752         rest_of_handle_jump2, rest_of_handle_postreload,
22753         rest_of_handle_flow2, rest_of_clean_state,
22754         rest_of_handle_shorten_branches,
22755         rest_of_handle_prologue_epilogue,
22756         rest_of_handle_branch_target_load_optimize): New.
22757         (rest_of_compilation): Call the above.  Remove ggc_collect
22758         calls moved to rest_of_handle_*.
22759         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
22760
22761         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
22762         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
22763         * except.h (set_nothrow_function_flags): Update comment.
22764         * function.c (current_function_nothrow): Remove.
22765         * output.h (current_function_nothrow): Remove.
22766         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
22767         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
22768
22769 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22770
22771         PR bootstrap/16326
22772         * reorg.c: Revert 2004-06-30 change.
22773         (find_end_label): If HAVE_epilogue and !HAVE_return,
22774         return 0 instead of creating a label at the end of the insn chain.
22775         (optimize_skip): Account for the failure mode of find_end_label.
22776         (fill_simple_delay_slots): Likewise.
22777         (fill_slots_from_thread): Likewise.
22778         (relax_delay_slots): Likewise.
22779
22780 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
22781
22782         * tree-flow.h (addressable_vars): Declare.
22783         * tree-ssa-alias.c (addressable_vars): Define.
22784         (setup_pointers_and_addressables): Add addressable variables
22785         to addressable_vars.
22786         * tree-ssa-operands.c (get_stmt_operands): Move
22787         handling of ASM_EXPRs ...
22788         (get_asm_expr_operands): ... here.
22789         When the ASM_EXPR clobbers memory, also clobber addressable
22790         variables.
22791         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
22792         (delete_tree_ssa): Reset addressable_vars.
22793
22794 2004-07-07  Jan Beulich  <jbeulich@novell.com>
22795             Richard Henderson  <rth@redhat.com>
22796
22797         * varasm.c (assemble_variable): Use assemble_zeros for
22798         zero-initialized variables.
22799         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
22800         for SECCAT_BSS and SECCAT_TBSS.
22801
22802 2004-07-07  Jan Beulich  <jbeulich@novell.com>
22803
22804         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
22805
22806         * expmed.c (emit_store_flag): Also special-case double-word
22807         (in-)equality comparison against -1.
22808
22809         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
22810         passing arguments the containers for which are registers.
22811
22812         * calls.c (emit_library_call_value_1): Use mode of function parameter
22813         rather than that of argument since constants have none.
22814
22815 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
22816
22817         Introduce H8SX support.
22818         * expr.c (expand_strcpy): Renamed and moved to...
22819         * builtins.c (expand_movstr): ... here.  Tweak.
22820         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
22821         computed or has side effects.
22822         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
22823         unused, or if mempcpy fails.  Adjust the return value in the
22824         latter case.  Use movstr if everything else fails.
22825         * doc/md.texi (movstr): Document.
22826         (movmemM, clrmemM): Fix explanation of memory block operands.
22827         * config/h8300/h8300.md (stpcpy): Renamed to...
22828         (movstr): ... this.  Adjust.
22829         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
22830         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
22831         movmem* and clrstr* to clrmem*.
22832         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
22833         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
22834         GENERAL_REGS, always.
22835         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
22836         getting the stack pointer as addr.
22837         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
22838         from general_operand_dst.
22839         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
22840         variant of...
22841         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
22842         instead of requiring it to match only before reload.
22843         (stpcpy_internal_normal): New, normal-mode variant of...
22844         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
22845         `D' instead of requiring it to match only before reload.
22846         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
22847         mode argument.
22848         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
22849         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
22850         h8300_get_index.
22851         * config/h8300/h8300.md (attr type): Add call.
22852         (attr can_delay): If type is call, set it no.
22853         (call, call_value): Set type to call.
22854         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
22855         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
22856         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
22857         * tree.c (get_narrower): Don't narrow integral types into
22858         non-integral types.
22859         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
22860         frame_size *before* the first use.
22861         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
22862         on input.
22863         (peephole2): Don't widen instructions that push SP.  Move
22864         decrement of SP to the end of all stm-generating peepholes.
22865         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
22866         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
22867         and OR to set it to all ones.
22868         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
22869         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
22870         (call, call_value): Set can_delay to "no".
22871         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
22872         * config/h8300/h8300.md (extzv): Make subreg check more robust.
22873         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
22874         * config/h8300/h8300.md (*brabit): Remove.
22875         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
22876         zero_extract.  Use bit_memory_operand as the predicate for
22877         operand 1 and 'WU' as the constraint.  Check the difference
22878         between the base length and the final one when deciding which
22879         type of branch to use.
22880         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
22881         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
22882         Use convert_move to extend the result for TARGET_H8300SX.  Check
22883         for QImode memory references.  Optimize the case where the
22884         destination is a paradoxical subreg.
22885         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
22886         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
22887         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
22888         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
22889         * config/h8300/h8300.md: Include mova.md
22890         (length_table): Add mova and mova_zero.
22891         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
22892         after all constant addresses for '%R', '%X', '%T' and '%S'.
22893         (h8300_mova_length): New function.
22894         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
22895         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
22896         dependencies for s-config, etc.
22897         * config/h8300/gemova.sh: New file.
22898         * config/h8300/mova.md: Generated.
22899         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
22900         * config/h8300/h8300.c (h8300_bitfield_length): New.
22901         (nibble_operand): Adjust.
22902         (h8300_binary_length): Handle conditional binary op.
22903         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
22904         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
22905         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
22906         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
22907         constraints.  WU is introduced as a variant of U that requires a
22908         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
22909         * config/h8300/h8300.md (attr type): Added bitbranch.
22910         (attr length_table): Added bitfield and bitbranch.
22911         (attr length): Compute bitbranch length.
22912         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
22913         least-significant bit of a byte.
22914         (brabit, brabc, brabs): New.
22915         (insv, extzv): Emit bfst and bfld on H8300SX.
22916         (bfld, bfst, seq, sne): New.
22917         (bstzhireg, cmpstz, bstz, bistz): New.
22918         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
22919         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
22920         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
22921         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
22922         (h8sx_unary_memory_operator): New function.
22923         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
22924         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
22925         * config/h8300/h8300.md: Add peepholes to combine reloads and
22926         arithmetic insns.
22927         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
22928         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
22929         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
22930         (and?i, ior?i, xor?i): Likewise.
22931         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
22932         * config/h8300/h8300.c: Move enums and prototypes to head of file.
22933         Various whitespace fixes.
22934         (h8300_constant_length): New function, split out from...
22935         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
22936         (h8300_classify_operand): Use IN_RANGE.
22937         (h8300_classify_operand): Use h8300_constant_length.
22938         (h8300_short_move_mem_p): Tighten size check.
22939         (h8sx_mergeable_memrefs_p): Tighten equality check.
22940         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
22941         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
22942         for -msx.
22943         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
22944         * config/h8300/crtn.asm: Likewise.
22945         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
22946         if __H8300SX__ is defined.
22947         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
22948         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
22949         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
22950         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
22951         addresses as mode-dependent.
22952         * config/h8300/h8300.c (print_operand_address): Update call to
22953         h8300_get_index.
22954         (h8300_get_index): Take a mode argument.  Rework to fix an
22955         earlier misunderstanding.
22956         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
22957         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
22958         into a register if TARGET_H8300SX.
22959         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
22960         TARGET_H8300SX.  Also disable related define_splits.
22961         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
22962         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
22963         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
22964         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
22965         * config/h8300/h8300.h (OK_FOR_Z): New macro.
22966         (EXTRA_CONSTRAINT_STR): Check it.
22967         * config/h8300/h8300.c (h8300_classify_operand): Accept null
22968         class arguments.
22969         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
22970         * config/h8300/h8300.md (length_table): Add mov_imm4.
22971         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
22972         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
22973         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
22974         be a label.
22975         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
22976         * config/h8300/h8300.c (h8300_reorg): New function.
22977         (TARGET_MACHINE_DEPENDENT_REORG): Define.
22978         * config/h8300/h8300.md (length): Subtract the length of the
22979         delay slot from (pc) when checking the range of forward branches.
22980         (delay_slot, can_delay): New attributes.
22981         (define_delay): Add bra/s handling.
22982         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
22983         (jump): Add delayed-branch handling.
22984         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
22985         * expr.c (expand_strcpy): New function.
22986         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
22987         (expand_builtin_stpcpy): Likewise.
22988         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
22989         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
22990         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
22991         handling to improve register allocation for -fno-omit-frame-pointer.
22992         (h8sx_split_movmd): Delete, moving er6 handling into...
22993         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
22994         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
22995         (movmd): Add calls to copy_rtx.
22996         (movmd_internal): In the second alternative, allow the initial and
22997         final destination registers to be different .  Update the splitter
22998         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
22999         instead of h8sx_split_movmd.
23000         (stpcpy, movsd): New expanders.
23001         (movsd_internal): New define_insn.
23002         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
23003         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
23004         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
23005         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
23006         and DESTINATION_REGS.
23007         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
23008         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
23009         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
23010         (h8300_move_ratio): Declare.
23011         (MOVE_RATIO): Use it.
23012         * config/h8300/h8300.c (h8300_move_ratio): New variable.
23013         (h8300_init_once): Initialize it.
23014         (h8300_reg_class_from_letter): New function.
23015         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
23016         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
23017         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
23018         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
23019         (movstrsi, movmd): New expanders.
23020         (movmd_internal): New insn.
23021         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
23022         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
23023         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
23024         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
23025         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
23026         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23027         * config/h8300/h8300.c (nibble_operand): Fix warning.
23028         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
23029         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
23030         (movsf_h8300h): Disable for TARGET_H8300SX.
23031         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23032         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
23033         h8300_stm_parallel and h8300_return_parallel.
23034         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
23035         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
23036         h8300_stm_parallel, h8300_return_parallel): New functions.
23037         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
23038         if TARGET_H8300SX.  Use h8300_push_pop.
23039         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
23040         and final pop when generating h8sx code.  Always emit some form
23041         of return insn.
23042         * config/h8300/h8300.md: Don't enforce register alignment in
23043         stm peepholes if TARGET_H8300SX.
23044         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
23045         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
23046         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
23047         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23048         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
23049         (MULTILIB_DIRNAMES): Add a directory for it.
23050         (MULTILIB_MATCHES): Delete.
23051         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23052         * final.c (walk_alter_subreg): Handle addresses with subregs
23053         inside a ZERO_EXTEND or AND.
23054         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
23055         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
23056         if TARGET_H8300SX.
23057         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
23058         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
23059         @(dd,Rn.w) and @(dd,ERn.L).
23060         (h8300_displacement_size): Take the whole address as argument.
23061         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
23062         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23063         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
23064         (h8sx_mergeable_memrefs_p): Declare.
23065         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
23066         (HAVE_PRE_INCREMENT): Likewise.
23067         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
23068         addresses for TARGET_H8300SX,
23069         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
23070         and POST_DEC.
23071         (movb_length_table, movl_length_table): New tables.
23072         (movw_length_table): Define to movb_length_table.
23073         (h8300_displacement_size): New, split out from...
23074         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
23075         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
23076         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
23077         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
23078         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
23079         (compute_plussi_length, compute_plussi_cc): Update accordingly.
23080         (h8sx_unary_shift_operator): Get the mode from the operator.
23081         (binary_shift_operator): Likewise.
23082         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
23083         a memory reference, check whether the reference is offsettable.
23084         (length_table): Add movb, movw and movl.
23085         (movqi): Add new h8sx pattern.  Don't force one operand to be a
23086         register when generating h8sx code.
23087         (movhi, movsi, movsf): Likewise.
23088         (movstrictqi): Use the length_table attribute.
23089         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
23090         (addqi3): Split into a define_expand and define_insn.  Don't accept
23091         memory operands in the expander.  Use h8300_operands_match_p to
23092         check for matching operands in the define_insn.
23093         (subqi3, negqi2, one_cmplqi2): Likewise.
23094         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
23095         in any patterns that are unused in h8sx code.  In the h8sx patterns,
23096         use h8300_operands_match_p to check whether operands match.
23097         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
23098         one_cmpl[hs]i3): Likewise.
23099         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
23100         in the expander.
23101         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
23102         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
23103         (h8300_insn_length_from_table): Add a second parameter.
23104         (output_h8sx_shift): Declare.
23105         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
23106         (EXTRA_CONSTRAINT): Replace with...
23107         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
23108         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
23109         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
23110         and h8sx_binary_shift_operator.
23111         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
23112         for TARGET_H8300SX.
23113         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
23114         (bit_memory_operand, fix_bit_operand): Likewise.
23115         (h8300_length_table_for_insn): Remove.
23116         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
23117         instructions.
23118         (h8300_short_immediate_length, h8300_binary_length): New functions.
23119         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
23120         (output_plussi): Use sub to add negative constants.
23121         (compute_plussi_length): Adjust accordingly.
23122         (h8sx_single_shift_type): New enum.
23123         (h8sx_single_shift, h8sx_unary_shift_operator,
23124         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
23125         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
23126         single h8sx instruction.  Return false in this case.
23127         * config/h8300/h8300.md (length_table): Add short_immediate.
23128         (length): Pass the operand array to h8300_insn_length_from_table.
23129         (adjust_length): Assume "no" for insns with a length_table attribute.
23130         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
23131         (*addhi3_h8300hs): Don't use for h8sx.
23132         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
23133         and sub.w #xx:3.
23134         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
23135         1's predicate to nonimmediate_operand.  Only skip default expansion
23136         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
23137         for single h8sx shift instructions.
23138         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
23139         * config/h8300/h8300.c (nibble_operand): Split out of...
23140         (reg_or_nibble_operand): ... this.
23141         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
23142         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
23143         umulhisi3): Introduce expand, and introduce separate insns for
23144         sign- or zero-extended REG and already-extended CONST_INT.
23145         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
23146         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
23147         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
23148         (subhi3): Likewise.  Don't accept immediates for operand 1.
23149         Remove the early clobber from second alternative of the h8300s pattern.
23150         (subsi3): Generalize for h8sx.  Force operand 2 into a register
23151         on plain h8300 targets.
23152         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
23153         (subsi3_h8300h): Generalize for h8sx.
23154         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
23155         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
23156         * config/h8300/h8300.c (reg_or_nibble_operand): New.
23157         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23158         (TARGET_H8300SXMUL): New.
23159         (CONST_OK_FOR_P): New.
23160         (CONST_OK_FOR_LETTER_P): Adjust.
23161         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
23162         umulhisi3): Accept 4-bit immediate on H8SX.
23163         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
23164         (udivsi3, divhi3, udivsi3, divsi3): New.
23165         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
23166         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
23167         * config/h8300/h8300.h (OK_FOR_Q): New macro.
23168         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
23169         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
23170         Add ADDRESSOF to the bit_operand entry.
23171         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
23172         (h8300_src_operand): Likewise.
23173         (bit_operand): Check nonimmediate_operand rather than general_operand.
23174         Accept any nonimmediate_operand in h8sx code.
23175         (h8300_and_costs): Initialize operands[1].
23176         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
23177         (h8300_operand_class): New enum.
23178         (h8300_length_table): New typedef.
23179         (addb_length_table, addw_length_table, addl_length_table,
23180         logicl_length_table): New tables.
23181         (logicb_length_table, logicw_length_table): New macros.
23182         (h8300_classify_operand, h8300_length_from_table,
23183         h8300_length_table_for_insn, h8300_unary_length,
23184         h8300_insn_length_from_table): New functions.
23185         (output_plussi): Only use adds and subs for register destinations.
23186         Disable redundant clause.
23187         (compute_plussi_cc): Likewise.
23188         (compute_plussi_length): Likewise.  Use h8300_length_from_table
23189         to work out the length of an insn.
23190         (output_logical_op): Only use narrower immediate instructions
23191         if the destination is a register.
23192         (compute_logical_op_cc): Likewise.
23193         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
23194         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
23195         * config/h8300/h8300.md (length_table): New attribute.
23196         (length): When an instruction has a length_table attribute, use
23197         h8300_insn_length_from_table to calculate its default length.
23198         (cmpqi): Use h8300_dst_operand for the first operand and
23199         h8300_src_operand for the second.
23200         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
23201         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
23202         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
23203         iorsi3, xorhi3, xorsi3): Likewise.
23204         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
23205         so that it allows any combination of operands for TARGET_H8300SX.
23206         (iorqi3, xorqi3): Likewise.
23207         (cmpqi): Use the length_table attribute.
23208         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
23209         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23210         (cmpqi): Add 'Q' constraint.
23211         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
23212         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23213         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
23214         * config/h8300/h8300.h (MASK_H8300SX): New macro.
23215         (TARGET_H8300S): True for both -ms and -msx.
23216         (TARGET_H8300SX): New macro.
23217         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
23218         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
23219         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
23220         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
23221         [Temporary change.]
23222         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
23223         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
23224         16-bit pointers and 32-bit ints.
23225         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
23226         CONST_DOUBLE with mode no wider than SImode.
23227         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
23228         output operand.
23229         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
23230         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
23231         or SUBREG thereof.
23232         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23233         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
23234         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
23235
23236 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
23237
23238         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
23239
23240 2004-07-07  Per Bothner  <per@bothner.com>
23241
23242         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
23243
23244 2004-07-07  Mike Stump  <mrs@apple.com>
23245
23246         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
23247         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
23248         (machopic_finish): Likewise.
23249
23250 2004-07-07  Richard Henderson  <rth@redhat.com>
23251
23252         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
23253         through any value-preserving cast.
23254
23255 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23256
23257         * function.c (assign_parm_find_data_types): Call
23258         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
23259
23260 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23261
23262         * tree-cfg.c (group_case_labels): Remove case labels that have
23263         the same target as the default case.
23264
23265 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23266
23267         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
23268         regardless of DECL_LANG_SPECIFIC being present or not.
23269         * tree.h (DECL_NUM_STMTS): Purge.
23270
23271 2004-07-07  Andrew Pinski  <apinski@apple.com>
23272
23273         * configure: Regenerate with the right autoconf.
23274
23275 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
23276
23277         * ifcvt.c (total_bb_rtx_cost): New function.
23278         (find_if_case_1): Compare rtx_cost of basic block to cost of
23279         BRANCH_COST insns.
23280         (find_if_case_2): Same.
23281
23282 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
23283
23284         PR target/10567
23285         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
23286         (output_return): Likewise.
23287         (output_sibcall): Abort if !flag_delayed_branch.
23288         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
23289         (emit_and_preserve): New function.
23290         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
23291         indirect jump to the thunked-to function if !flag_delayed_branch.
23292         * config/sparc/sparc.md (delayed_branch): New attribute.
23293         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
23294         attribute to compute the length of the insn.
23295         (goto_handler_and_restore): Likewise.
23296
23297 2004-07-07  Andrew Pinski  <apinski@apple.com>
23298
23299         PR tree-optimization/15777
23300         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
23301
23302         * expr.c (expand_expr_real_1): Fix formating.
23303         BUFFER_REF and IN_EXPR are dead.
23304         * fold-const.c (non_lvalue): BUFFER_REF is dead.
23305         * tree-inline.c (estimate_num_insns_1): Likewise.
23306         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
23307         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
23308         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
23309
23310 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
23311
23312         * collect2.c (dump_file): Don't call cplus_demangle if
23313         HAVE_LD_DEMANGLE is defined.
23314         (main): Pass "--demangle" to ld if no_demangle is not 0 and
23315         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
23316         if HAVE_LD_DEMANGLE is defined.
23317
23318         * configure.ac (--with-demangler-in-ld): Added
23319         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
23320         --with-demangler-in-ld is used.
23321         * config.in: Regenerated.
23322         * configure: Likewise.
23323
23324 2004-07-07  Roger Sayle  <roger@eyesopen.com>
23325
23326         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
23327         for simple floating point operations "fp", double precision
23328         multiplication "dmul", and single and double precision division
23329         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
23330         (ppc630_cost): New table split from ppc620_cost, to distinguish
23331         differences in floating point latencies.
23332         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
23333         (rs6000_rtx_costs): Add support for single and double precision
23334         floating point addition, subtraction, multiplication, division,
23335         fused-multiply-add, fused-multiply-sub, negation, absolute value
23336         and negative absolute value.  Tweak MEM case to use prefered idiom.
23337
23338 2004-07-07  Richard Henderson  <rth@redhat.com>
23339
23340         * tree-flow-inline.h (may_propagate_copy): Move...
23341         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
23342         attempt to copy between types requiring conversion.
23343         * tree-flow.h (may_propagate_copy): Update decl.
23344         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
23345
23346 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
23347
23348         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
23349         from -mtune= option.
23350
23351 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23352
23353         * builtins.c: Rename movstr*, except for movstrict*, to
23354         movmem* and clrstr* to clrmem*.
23355         * expr.c: Likewise.
23356         * expr.h: Likewise.
23357         * genopinit.c: Likewise.
23358         * integrate.c: Likewise.
23359         * local-alloc.c: Likewise.
23360         * optabs.c: Likewise.
23361         * optabs.h: Likewise.
23362         * config/alpha/alpha.h: Likewise.
23363         * config/alpha/alpha.md: Likewise.
23364         * config/arm/arm-protos.h: Likewise.
23365         * config/arm/arm.c: Likewise.
23366         * config/arm/arm.md: Likewise.
23367         * config/avr/avr.md: Likewise.
23368         * config/c4x/c4x.c: Likewise.
23369         * config/c4x/c4x.md: Likewise.
23370         * config/frv/frv.md: Likewise.
23371         * config/i386/i386-protos.h: Likewise.
23372         * config/i386/i386.c: Likewise.
23373         * config/i386/i386.h: Likewise.
23374         * config/i386/i386.md: Likewise.
23375         * config/i860/i860.c: Likewise.
23376         * config/i860/i860.md: Likewise.
23377         * config/ip2k/ip2k.md: Likewise.
23378         * config/ip2k/libgcc.S: Likewise.
23379         * config/ip2k/t-ip2k: Likewise.
23380         * config/m32r/m32r.c: Likewise.
23381         * config/m32r/m32r.md: Likewise.
23382         * config/mcore/mcore.md: Likewise.
23383         * config/mips/mips.c: Likewise.
23384         * config/mips/mips.md: Likewise.
23385         * config/ns32k/ns32k.c: Likewise.
23386         * config/ns32k/ns32k.h: Likewise.
23387         * config/ns32k/ns32k.md: Likewise.
23388         * config/pa/pa.c: Likewise.
23389         * config/pa/pa.md: Likewise.
23390         * config/pdp11/pdp11.h: Likewise.
23391         * config/pdp11/pdp11.md: Likewise.
23392         * config/rs6000/rs6000.c: Likewise.
23393         * config/rs6000/rs6000.md: Likewise.
23394         * config/s390/s390-protos.h: Likewise.
23395         * config/s390/s390.c: Likewise.
23396         * config/s390/s390.md: Likewise.
23397         * config/sh/lib1funcs.asm: Likewise.
23398         * config/sh/sh.c: Likewise.
23399         * config/sh/sh.md: Likewise.
23400         * config/sh/t-sh: Likewise.
23401         * config/sparc/sparc.h: Likewise.
23402         * config/vax/vax.md: Likewise.
23403         * config/xtensa/xtensa.c: Likewise.
23404         * config/xtensa/xtensa.md: Likewise.
23405         * doc/invoke.texi: Likewise.
23406         * doc/md.texi: Likewise.
23407         * doc/rtl.texi: Likewise.
23408
23409 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
23410
23411         PR target/16407
23412         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
23413         * config/mips/mips.c (mips_declare_common_object): New function,
23414         mostly split out from...
23415         (mips_output_aligned_decl_common): ...here.
23416         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
23417         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
23418         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
23419         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
23420
23421 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23422
23423         PR c/16392
23424         * function.c (assign_parms): Fix typo from previous change.
23425
23426 2004-07-07  Jason Merrill  <jason@redhat.com>
23427
23428         PR c++/15815
23429         * doc/extend.texi (C++ Interface): Correct information and
23430         discourage use.
23431
23432 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
23433
23434         PR target/16130
23435         PR target/16142
23436         PR target/16143
23437         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
23438         insn.
23439
23440 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
23441
23442         PR target/1679.
23443         * config/m32r/m32r.c (m32r_function_symbol): New function:
23444         Generate a symbol name RTX with the correct m32r specific flags
23445         set.
23446         (block_move_call): Use new function to generate correct symbol.
23447         * config/m32r/m32r-protos.h: Add prototype for new funcion.
23448         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
23449         function.
23450
23451 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23452
23453         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
23454         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
23455         TYPE_BINFO_BASETYPE): Remove.
23456         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
23457         to ...
23458         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
23459         here.
23460         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
23461         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
23462         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
23463         (struct tree_binfo): Rename base_types to base_binfos.
23464         * alias.c (record_component_aliases): Adjust BINFO macros.
23465         * dbxout.c (dbxout_type): Likewise.
23466         * dwarf2out.c (gen_member_die): Likewise.
23467         * sdbout.c (sdbout_one_type): Likewise.
23468         * tree-dump.c (deque_and_dump): Likewise.
23469         * config/i386/i386.c (classify_argument,
23470         contains_128bit_aligned_vector_p): Likewise.
23471
23472 2004-07-07  Nick Clifton  <nickc@redhat.com>
23473
23474         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
23475         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
23476
23477 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23478
23479         * vec.h: Fix the example use.
23480
23481 2004-07-06  Richard Henderson  <rth@redhat.com>
23482
23483         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
23484         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
23485         * tree-inline.c (copy_body_r, setup_one_parameter,
23486         initialize_inlined_parameters, expand_call_inline,
23487         declare_inline_vars): Don't check it.
23488         (expand_calls_inline): Remove old version, rename new version
23489         from gimple_expand_calls_inline.
23490         * tree-optimize.c (execute_gimple): Remove.
23491         (pass_gimple): Don't run anything.
23492
23493 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
23494
23495         * doc/sourcebuild.texi: Use semicolons instead of commas in
23496         section title.
23497
23498 2004-07-06  Richard Henderson  <rth@redhat.com>
23499
23500         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
23501         (sra_walk_modify_expr, scan_init): Likewise.
23502         (generate_element_zero): Check visited before scanning children.
23503         (generate_element_init): Set visited on error.
23504         (scalarize_init): Handle generate_element_init failure similar
23505         to use_block_copy.
23506
23507 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
23508
23509         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
23510         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
23511
23512 2004-07-06  Richard Henderson  <rth@redhat.com>
23513
23514         * config/i386/i386.c (legitimize_pic_address): Make static.
23515         (legitimize_address): Handle CONST with TLS operand.
23516         (ix86_expand_move): Don't call legitimize_pic_address directly.
23517         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
23518
23519 2004-07-06  Roger Sayle  <roger@eyesopen.com>
23520
23521         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
23522         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
23523         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
23524         is currently executed unconditionally, i.e. not in "else_bb".
23525
23526 2004-07-06  Steven Bosscher  <stevenb@suse.de>
23527
23528         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
23529         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23530         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
23531         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23532         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
23533         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23534         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
23535         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23536         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
23537         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23538         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
23539         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23540         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
23541         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23542         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
23543         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23544
23545 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
23546
23547         * dojump.c (do_jump): REFERENCE_EXPR is dead.
23548         * expr.c (expand_expr_real_1): Ditto.
23549         * tree-inline.c (estimate_num_insns_1): Ditto.
23550         * tree-pretty-print.c (dump_generic_node): Ditto.
23551         (op_symbol): Ditto.
23552         * tree.def: Ditto.
23553
23554 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
23555
23556         * tree-ssa-pre.c (reference_node_pool): New pool.
23557         (find_or_generate_expression): Class 'r' is okay too.
23558         (create_value_expr_from): Ditto.
23559         (add_to_sets): LHS should not include vuses.
23560         (eliminate): Ditto.
23561         (compute_avail): Reverse ordering of tests.
23562         Valuize INDIRECT_REF as well.
23563
23564 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
23565
23566         PR rtl-optimization/16380
23567         * loop.c (check_dbra_loop): Sink comparison instructions if they
23568         do something other than set cc0.
23569
23570 2004-07-06  James E Wilson  <wilson@specifixinc.com>
23571
23572         * doc/interface.texi (longjmp and automatic variables): Delete
23573         paragraph recommending taking the address of a variable.
23574
23575 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
23576
23577         * vec.h (VEC_embedded_alloc): Remove.
23578         (VEC_embedded_size, VEC_embedded_init): New.
23579         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
23580         MEM_STAT_INFO.
23581         (VEC_truncate): New.
23582         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
23583         (vec_embedded_alloc): Remove.
23584         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
23585         (vec_embedded_alloc): Remove.
23586
23587 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
23588
23589         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
23590         (gt-langhooks.h): Remove.
23591
23592 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
23593
23594         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
23595
23596 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
23597
23598         * config/sparc/sparc.c (get_pc_symbol): Rename into
23599         add_pc_to_pic_symbol.
23600         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
23601         (load_pic_register): Account for previous changes.
23602         Use reg_names.  Don't create the label twice.
23603         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
23604         UNSPEC_LOAD_PCREL_SYM.
23605         (get_pc): Rename into load_pcrel_sym.  Add predicate to
23606         operands.  Remove condition.
23607
23608 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
23609
23610         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
23611         RECORD, UNION & QUAL_UNION is actually a binfo.
23612
23613         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
23614         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
23615         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
23616         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
23617         * dwarf2out.c (add_data_member_location_attribute): Likewise.
23618         (gen_inheritance_die): Likewise.
23619         * tree-dump.c (deque_and_dump): Likewise.
23620         * doc/c-tree.texi (Binfos): Add under reconstruction note.
23621
23622 2004-07-06  Steven Bosscher  <stevenb@suse.de>
23623
23624         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
23625         Define.
23626         * config/mcore/mcore.md: Model memory latency with a simple DFA
23627         pipeline description instead of a define_function_unit.
23628
23629 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23630
23631         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
23632         * langhooks.h (var_mod_type_p): Likewise.
23633         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
23634         * expr.c (count_type_elements): Properly handle return from
23635         array_type_nelts and properly test for overflow.
23636         * gimplify.c (gimplify_init_constructor): Properly handle return
23637         from array_type_nelts.
23638         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
23639         * integrate.c (copy_decl_for_inlining): Correct comments.
23640         * tree-inline.c (remap_decl): Update comments, remove dead code,
23641         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
23642         (remap_type): Only remap if variably modified by vars in function
23643         being inlined.
23644         (copy_body_r): Use compatible_type langhooks to see when can fold.
23645         (setup_one_parameter): Don't remap type.
23646         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
23647         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
23648         compute TREE_INVARIANT for decl case.
23649         (find_var_from_fn): New function.
23650         (variably_modified_type_p): Add arg and call new function.
23651         * tree.h (variably_modified_type_p): Add extra arg.
23652
23653 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
23654
23655         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
23656         (goto_handler_and_restore_v9): Delete disabled insn.
23657         (goto_handler_and_restore_v9_sp64): Likewise.
23658
23659 2004-07-05  Roger Sayle  <roger@eyesopen.com>
23660
23661         * calls.c (load_register_parameters): Call expand_shift instead
23662         of expand_binop with ashl_optab (or other shift optab) directly.
23663         * expr.c (emit_group_load, emit_group_store): Likewise.
23664         * function.c (assign_parm_setup_block): Likewise.
23665         * stmt.c (shift_return_value): Likewise.
23666
23667 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
23668
23669         * expr.c (expand_assignment): Disable the bitfield += optimizations.
23670
23671 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23672
23673         * doc/sourcebuild.texi: Revert previous patch.
23674
23675 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23676
23677         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
23678         TARGET_MEM_FUNCTIONS.
23679         * system.h: Poison TARGET_MEM_FUNCTIONS.
23680         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
23681         bcmp_libfunc, bzero_libfunc): Remove.
23682         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
23683         bzero_libfunc.
23684         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
23685         * doc/standards.texi: Don't mention calling BSD string functions.
23686         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
23687         * config/vax/t-memfuncs: New.
23688         * config/memcmp.c, config/memcpy.c, config/memmove.c,
23689         config/memset.c: New.
23690         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
23691         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
23692         vax/t-memfuncs.
23693         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
23694         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
23695         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
23696         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
23697         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
23698         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
23699         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
23700         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
23701         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
23702         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
23703
23704 2004-07-05  Richard Henderson  <rth@redhat.com>
23705
23706         * function.c (assign_parm_setup_reg): Properly rename variables in
23707         FUNCTION_ARG_CALLEE_COPIES section.
23708
23709 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
23710
23711         * tree-mudflap.c: Include cgraph.h.
23712         (mf_init_extern_trees): Rename to mudflap_init.  Export.
23713         Rewrite to create synthetic declarations instead of looking
23714         up declarations from mf-runtime.h.
23715         (mf_make_builtin, mf_make_cache_struct_type): New functions.
23716         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
23717         Correct commentary.
23718         (execute_mudflap_function_decls, mudflap_register_call):
23719         Don't call mf_init_extern_trees.
23720         (mudflap_finish_file): Use cgraph_build_static_cdtor.
23721
23722         * tree-mudflap.h: Update prototypes.
23723         * c-mudflap.c: Delete file.
23724         * c-common.c: Include tree-mudflap.h.
23725         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
23726         * Makefile.in: Remove all references to c-mudflap.o.
23727         Update dependencies.
23728
23729 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23730
23731         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
23732         displacements with the spatial-locality cache-control completer.
23733
23734 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
23735
23736         * langhooks.c: Don't include gt-langhooks.h.
23737         (var_labelno): Delete.
23738         (lhd_set_decl_assembler_name): Do not append a distinguishing
23739         number to file-scope internal-linkage declarations for the first
23740         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
23741         the declaration itself (if at block scope), or its containing
23742         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
23743         number.
23744
23745         * opts.c (cur_in_fname): New global.
23746         * opts.h: Declare it.
23747         * tree.c: Include opts.h.
23748         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
23749         DECL_UID equal to cur_in_fname.
23750         (copy_node_stat): Do not change DECL_UID when copying a
23751         TRANSLATION_UNIT_DECL.
23752         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
23753         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
23754
23755         * c-decl.c (c_static_assembler_name): Delete.
23756         * c-tree.h (c_static_assembler_name): Delete prototype.
23757         * c-lang.c, objc/objc-lang.c: Don't override
23758         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
23759
23760         * Makefile.in (tree.o): Update dependencies.
23761         (GTFILES): Remove langhooks.c.
23762
23763 2004-07-05  Roger Sayle  <roger@eyesopen.com>
23764
23765         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
23766         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
23767         Normalize "X % C" as "X % -C" for signed modulus and negative C.
23768         Optimize "X % -Y" as "X % Y" for signed modulus.
23769         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
23770         into "((unsigned) X % Y) == 0".
23771
23772 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23773
23774         * sourcebuild.texi (Config Fragments): Use @comma{} in
23775         cross-reference to section title.
23776
23777 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23778
23779         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
23780         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
23781         (gimplify_target_expr, gimplify_expr): Likewise.
23782         (copy_if_shared_r): No longer need special case for BIND_EXPR.
23783         (unshare_body, unvisit_body): Only look at nested if BODY_P is
23784         whole function.
23785         (gimplify_compound_lval): See if we can strip any useless conversion.
23786         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
23787         from RHS, not LHS.
23788         (gimplify_modify_expr_to_memset): Likewise.
23789         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
23790         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
23791         (declare_inline_vars): Likewise.
23792         (walk_type_fields): New function.
23793         (walk_tree): Use it.
23794         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
23795
23796         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
23797         (sra_walk_modify_expr): Allow init function to fail.
23798         (scan_init): Now returns bool.
23799         (generate_element_init): If can't understand INIT, return false.
23800         (scalarize_init): Return false if generate_element_init does.
23801
23802         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
23803         print bounds.
23804
23805         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
23806         bounds if bounds aren't constant.
23807
23808         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
23809
23810         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
23811         to type hooks; remove bogus PARAMS.
23812
23813 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
23814
23815         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
23816         * dwarf2out.c (add_data_member_location_attribute): Check for
23817         TREE_BINFO.
23818         * tree.c (tree_node_kinds): Add "binfos".
23819         (binfo_lang_slots): New.
23820         (make_node_stat): Add TREE_BINFO.
23821         (make_tree_binfo_stat): New.
23822         (tree_node_structure): Add TREE_BINFO.
23823         * tree.def (TREE_BINFO): New.
23824         * tree.h (REC_OR_UNION_CHECK): Rename to ...
23825         (RECORD_OR_UNION_CHECK): ... here.
23826         (NOT_RECORD_OR_UNION_CHECK): New.
23827         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
23828         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
23829         RECORD_OR_UNION_CHECK.
23830         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
23831         (TYPE_LANG_SLOT_1): New.
23832         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
23833         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
23834         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
23835         (BINFO_ELTS): Remove.
23836         (BINFO_LANG_SLOT): New.
23837         (struct tree_binfo): New.
23838         (binfo_lang_slots): Declare.
23839         (enum tree_node_structure_enum): Add TS_BINFO.
23840         (union tree_node): Add binfo.
23841         (make_tree_binfo_stat): Declare.
23842         (make_tree_binfo): New.
23843         (enum tree_node_kind): Add binfo_kind.
23844
23845         * objc/objc-act.c (start_class, objc_declare_protocols,
23846         start_protocols): Use TYPE_LANG_SLOT_1.
23847         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
23848         to ...
23849         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
23850         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
23851         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
23852         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
23853
23854 2004-07-05  Steven Bosscher  <stevenb@suse.de>
23855
23856         * rtl.h (struct rtx_def): Remove the integrated flag.
23857         Use the return_val flag for MEM_SCALAR_P.
23858         Reshuffle and update flags in CLEAR_RTX_FLAGS.
23859
23860 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
23861
23862         PR target/16357
23863         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
23864         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
23865         move_by_pieces.
23866
23867 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
23868
23869         * var-tracking.c: Fix some comments.
23870         (frame_stack_adjust): New.
23871         (vt_stack_adjustments): Init stack_adjust of entry block to
23872         minus stack adjustment of function prologue.
23873         (adjust_stack_reference): Do not adjust if adjustment == 0.
23874         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
23875         (emit_notes_in_bb): Likewise.
23876         (vt_add_function_parameters): Do not adjust locations of
23877         function arguments.
23878         (vt_initialize): Compute the stack adjustment of function
23879         prologue and offset the initial "location" of frame_base_decl
23880         from the stack pointer after prologue.
23881
23882 2004-07-04  Richard Henderson  <rth@redhat.com>
23883
23884         * function.c (struct assign_parm_data_all): New.
23885         (struct assign_parm_data_one): New.
23886         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
23887         assign_parm_find_data_types, assign_parms_setup_varargs,
23888         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
23889         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
23890         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
23891         assign_parm_setup_block, assign_parm_setup_reg,
23892         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
23893         (assign_parms): ... here.
23894
23895 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
23896
23897         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
23898         now are bitmap_set_t's.
23899         (bitmap_insert_into_set): No point in inserting the value if
23900         it's invariant.
23901         (bitmap_set_contains): New function.
23902         (bitmap_set_replace_value): Add comment on why we do it
23903         this way.
23904         (set_contains): Removed.
23905         (bitmap_set_subtract_from_value_set): New name of
23906         set_subtract now that it's arguments are two different
23907         types of sets.
23908         Update callers.
23909         (bitmap_find_leader): Change algorithm used.
23910         (find_or_generate_expression): Update use of functions for new
23911         bitmap sets.
23912         (create_expression_by_pieces): Ditto.
23913         (insert_aux): Ditto.
23914         (insert): Ditto.
23915         (add_to_sets): Ditto.
23916         (init_pre): Ditto.
23917         (execute_pre): Ditto.
23918         (compute_avail): Ditto.
23919         Also ignore virtual phis.
23920
23921 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
23922
23923         * combine.c (simplify_comparison): Fix comment typo.
23924
23925 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
23926
23927         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
23928         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
23929         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
23930         (output_restore): Change parameter from 'insn' to 'pat'.
23931         (output_return): Adjust call to output_restore.
23932         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
23933         Adjust call to output_restore.
23934
23935 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
23936
23937         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
23938         and assert system is bsd.
23939
23940 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
23941
23942         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
23943         (TARGET_SWITCHES): Remove -mdebugc.
23944         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
23945         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
23946         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
23947         (sle_[sd]i_reg): Delete.
23948
23949 2004-07-04  Steven Bosscher  <stevenb@suse.de>
23950
23951         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
23952         Define.
23953         * config/iq2000/iq2000.md: Translate old pipeline description to an
23954         equivalent new one.
23955
23956 2004-07-04  Roger Sayle  <roger@eyesopen.com>
23957
23958         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
23959         Ensure the replacement rhs is valid gimple before performing
23960         the substitution.  Return false if these sanity checks fail.
23961         (fold_stmt): Only set changed to true, if set_rhs returns true.
23962         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
23963         succeeds.
23964
23965 2004-07-04  Richard Henderson  <rth@redhat.com>
23966
23967         PR c/16348
23968         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
23969
23970 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
23971
23972         * configure.ac (ranlib_flags): New variable.
23973         * Makefile.in (RANLIB_FLAGS): New variable.
23974         (libbackend.a): Use it.
23975         * configure: Regenerated.
23976
23977 2004-07-04  Roger Sayle  <roger@eyesopen.com>
23978
23979         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
23980         a "sign mask" instead of using ashr_optab directly.
23981
23982 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
23983
23984         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
23985         * doc/cppopts.texi: Clarify processing of command-line defines.
23986
23987 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
23988
23989         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
23990
23991 2004-07-04  Richard Henderson  <rth@redhat.com>
23992
23993         * rtl.def (ADDRESSOF): Remove.
23994         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
23995         (find_base_term, memrefs_conflict_p): Likewise.
23996         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
23997         (fold_rtx, cse_insn, set_live_p): Likewise.
23998         * dwarf2out.c (mem_loc_descriptor): Likewise.
23999         (add_location_or_const_value_attribute): Likewise.
24000         * emit-rtl.c (copy_insn_1): Likewise.
24001         * explow.c (memory_address): Likewise.
24002         * expmed.c (store_split_bit_field): Likewise.
24003         * expr.c (expand_expr_real_1): Likewise.
24004         * function.c (instantiate_decl
24005         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
24006         * genrecog.c (preds, validate_pattern): Likewise.
24007         * integrate.c (copy_rtx_and_substitute): Likewise.
24008         * recog.c (general_operand, register_operand): Likewise.
24009         (memory_address_p): Likwise.
24010         * reload1.c (eliminate_regs, elimination_effects): Likewise.
24011         * rtl.c (copy_rtx): Likewise.
24012         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
24013         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
24014         * rtlhooks.c (gen_lowpart_general): Likewise.
24015         * stmt.c (expand_asm_operands): Likewise.
24016         * web.c (entry_register, replace_ref, web_main): Likewise.
24017         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
24018         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
24019         * config/arm/arm.c (thumb_rtx_costs): Likewise.
24020         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
24021         * config/frv/frv.c (move_destination_operand, move_source_operand,
24022         condexec_dest_operand, condexec_source_operand,
24023         condexec_memory_operand): Likewise.
24024         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
24025         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
24026         (destination_xfmode_operand): Likewise.
24027         * config/mips/mips.h (PREDICATE_CODES): Likewise.
24028         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
24029         * config/s390/s390.c (general_s_operand): Likewise.
24030         * config/s390/s390.md (mov*): Likewise.
24031         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
24032
24033         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
24034         * expr.c (expand_expr_real_1): Likewise.
24035         * stmt.c (expand_decl): Likewise.
24036         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
24037
24038         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
24039         postponed_insns, put_var_into_stack, put_reg_into_stack,
24040         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
24041         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
24042         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
24043         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
24044         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
24045         purge_bitfield_addressof_replacements, purge_addressof_replacements,
24046         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
24047         struct insns_for_mem_walk_info, insns_for_mem_walk,
24048         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
24049         setjmp_protect_args): Remove.
24050         (push_function_context_to): Don't handle var_refs_queue.
24051         (pop_function_context_from, free_after_compilation): Likewise.
24052         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
24053         (assign_parms, allocate_struct_function): Likewise.
24054         (use_register_for_decl): New.
24055         (expand_function_end): Don't setjmp_protect.
24056         * function.h (struct emit_status): Update commentary.
24057         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
24058         (max_parm_reg, parm_reg_stack_loc): Remove.
24059         * passes.c (DFI_addressof): Remove.
24060         (dump_file_info): Remove addressof.
24061         (rest_of_handle_addressof): Remove.
24062         (rest_of_compilation): Don't call it.
24063         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
24064         * stmt.c (expand_decl): Use use_register_for_decl.
24065         * tree.h: Update decls.
24066         * web.c (mark_addressof): Remove.
24067         * doc/invoke.texi (-dF): Remove.
24068
24069 2004-07-03  Richard Henderson  <rth@redhat.com>
24070
24071         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
24072         instead of gen_mem_addressof.
24073         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
24074         TImode output register.
24075
24076 2004-07-03  Richard Henderson  <rth@redhat.com>
24077
24078         PR tree-optimization/16341
24079         * tree-sra.c (sra_walk_function): Increment to next stmt before
24080         processing the current stmt.
24081         (sra_insert_after): Always use BSI_SAME_STMT.
24082
24083 2004-07-03  Richard Henderson  <rth@redhat.com>
24084
24085         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
24086         fp plus with minus.
24087
24088 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24089
24090         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
24091         with tree_int_cst_equal.
24092
24093 2004-07-03  Andreas Schwab  <schwab@suse.de>
24094
24095         * config/ia64/ia64.md: Define new attribute "empty".
24096         (prologue_use, nop_x, insn_group_barrier): Set it.
24097
24098         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
24099         skip over "empty" insns.
24100
24101 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24102
24103         * tree-inline.c (initialize_inlined_parameters): Pass proper function
24104         context to gimplify_body.
24105         (walk_tree): Don't walk into types twice.
24106         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
24107
24108         * tree-sra.c (generate_element_init): Remove any useless conversions.
24109
24110         * gimplify.c (gimplify_conversion): Remove stripping useless
24111         conversions from here.
24112         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
24113         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
24114         Unshare before substituting PLACEHOLDER_EXPR.
24115         (gimplify_modify_expr_to_memset): Likewise.
24116         Pass address of TO to memset, not TO itself.
24117         (gimplify_init_constructor): Make copy of OBJECT so we have it each
24118         time we make an expression (to match a PLACEHOLDER_EXPR).
24119
24120         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
24121         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
24122         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
24123         * tree-ssa-dom.c (local_fold): Likewise.
24124
24125         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
24126         * langhooks.h (strct lang_hooks): New field type_max_size.
24127         * function.c (assign_temp): Call it.
24128
24129 2004-07-03  Steven Bosscher  <stevenb@suse.de>
24130
24131         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
24132         * config/sh/sh.md: Convert the SH1 pipeline description to
24133         a DFA model.
24134
24135 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
24136
24137         * c-decl.c (struct c_binding): Remove contour field; add
24138         depth, invisible, nested fields.
24139         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
24140         (B_IN_EXTERNAL_SCOPE): New convenience macros.
24141         (bind): Add invisible and nested arguments. Initialize
24142         new fields of struct c_binding; adjust loop scanning for
24143         insertion point.
24144         (free_binding_and_advance): Clear structure with memset.
24145         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
24146         in file scope, even if it's in external scope too.
24147         (pushdecl): Adjust to match.  Create invisible file-scope
24148         declarations for block-scope forward declarations of static functions.
24149         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
24150         (undeclared_variable, lookup_label, declare_label, define_label)
24151         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
24152         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
24153         (store_parm_decls_oldstyle): Adjust to match.
24154         (diagnose_mismatched_decls): Correct handling of linkage clashes.
24155         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
24156
24157         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
24158         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
24159
24160 2004-07-02  Richard Henderson  <rth@redhat.com>
24161
24162         * c-decl.c (grokdeclarator): Don't frob current_function_decl
24163         around variable_size.
24164         (set_decl_nonlocal): Remove.
24165         (store_parm_decls): Add stmts for pending sizes.
24166         * calls.c (calls_function, calls_function_1): Remove.
24167         (precompute_arguments): Don't call it.
24168         * cfgexpand.c (set_save_expr_context): Remove.
24169         (tree_expand_cfg): Don't call it.
24170         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
24171         (dwarf2out_finish): Likewise.
24172         * expr.c (emit_block_move): Adjust addresses to BLKmode.
24173         (store_constructor): Don't pre-evaluate SAVE_EXPR.
24174         (safe_from_p): Don't queue SAVE_EXPRs.
24175         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
24176         or build plain VAR_DECLs.
24177         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
24178         (fold): Likewise.
24179         (fold_checksum_tree): Don't special-case SAVE_EXPR.
24180         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
24181         (put_var_into_stack): Don't handle SAVE_EXPR.
24182         (gen_mem_addressof): Likewise.
24183         * function.h (struct function): Remove x_save_expr_regs.
24184         (save_expr_regs): Remove.
24185         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
24186         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
24187         * stor-layout.c (variable_size): Don't set it.
24188         (force_type_save_exprs, force_type_save_exprs_1): Remove.
24189         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
24190         all callers.  Don't set SAVE_EXPR_CONTEXT.
24191         * tree-inline.h (remap_save_expr): Update decl.
24192         * tree.c (save_expr): Update build size.
24193         (first_rtl_op): Don't handle SAVE_EXPR.
24194         (unsave_expr_1, contains_placeholder_p): Likewise.
24195         (decl_function_context): Likewise.
24196         * tree.def (SAVE_EXPR): Remove args 1 and 2.
24197         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
24198         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
24199
24200 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24201
24202         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
24203         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
24204         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
24205         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
24206         some first-person references and patronizing comments.  Based on
24207         printed manual.
24208         * doc/invoke.texi: Don't reference fortran@gnu.org.
24209         * doc/trouble.texi (Warning when a non-void function value is
24210         ignored): Rewrite.  From Russ Allbery and Chris Devers.
24211
24212 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
24213
24214         * tree-ssa-pre.c (bitmap_set_t): New.
24215         (bb_value_sets): avail_out is now a bitmap_set_t.
24216         (bitmap_find_leader): New function.
24217         (bitmap_value_insert_into_set): Ditto.
24218         (bitmap_set_copy): Ditto.
24219         (bitmap_value_replace_in_set): Ditto.
24220         (bitmap_set_contains_value): Ditto.
24221         (bitmap_set_new): Ditto.
24222         (bitmap_set_pool): New pool.
24223         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
24224         (insert_aux): Ditto.
24225         (add_to_sets): Ditto.
24226         (compute_avail): Ditto
24227         (eliminate): Ditto.
24228         (init_pre): Ditto.
24229         (fini_pre): Ditto.
24230         (execute_pre): Ditto.
24231
24232 2004-07-02  Roger Sayle  <roger@eyesopen.com>
24233
24234         * config/rs6000/rs6000.c (struct processor_costs): New structure
24235         used to hold instruction latencies/sizes for processor types.
24236         (rs6000_cost): New global variable pointing to current CPU's costs.
24237         (rs6000_override_options): Initialize rs6000_cost to point to the
24238         appropriate cost table based upon rs6000_cpu and optimize_size.
24239         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
24240         timings inline.
24241
24242 2004-07-02  Richard Henderson  <rth@redhat.com>
24243
24244         * expmed.c (make_tree): Don't use SET_DECL_RTL.
24245
24246 2004-07-02  Steven Bosscher  <stevenb@suse.de>
24247
24248         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
24249
24250 2004-07-01  Richard Henderson  <rth@redhat.com>
24251
24252         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
24253         (alpha_gp_save_rtx): Use assign_stack_local instead of
24254         gen_mem_addressof.
24255
24256 2004-07-01  Richard Henderson  <rth@redhat.com>
24257
24258         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
24259         (alpha_rtx_cost_data): Update to match.
24260         (alpha_rtx_cost_size): New.
24261         (alpha_rtx_costs): Honor optimize_size.
24262
24263 2004-07-01  Richard Henderson  <rth@redhat.com>
24264
24265         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
24266         * cfgexpand.c (tree_expand_cfg): Do it here.
24267         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
24268         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
24269         * config/mips/mips.c (mips_output_mi_thunk): And here.
24270         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
24271         * config/sh/sh.c (sh_output_mi_thunk): And here.
24272         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
24273
24274 2004-07-01  Richard Henderson  <rth@redhat.com>
24275
24276         * tree.def (RTL_EXPR): Remove.
24277         * c-typeck.c (lvalue_p): Don't handle it.
24278         * expr.c (safe_from_p): Likewise.
24279         (expand_expr_real_1): Likewise.
24280         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
24281         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
24282         * gengtype.c (adjust_field_tree_exp): Likewise.
24283         * stmt.c (warn_if_unused_value): Likewise.
24284         * tree-gimple.c (recalculate_side_effects): Likewise.
24285         * tree-pretty-print.c (dump_generic_node): Likewise.
24286         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
24287         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
24288         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
24289
24290         * stmt.c (struct stmt_status): Remove x_last_expr_type,
24291         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
24292         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
24293         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
24294         all the bits that tracked last_expr.
24295         (expand_end_bindings): Don't track last_expr.
24296         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
24297         (clear_last_expr): Remove.
24298         (expand_asm): Don't call it.
24299         (expand_asm_operands, expand_end_cond): Likewise.
24300         (expand_naked_return, expand_null_return_1): Likewise.
24301         * c-typeck.c (c_begin_compound_stmt): Likewise.
24302         * cfgexpand.c (expand_block): Use expand_expr_stmt.
24303         * expr.c (expand_expr_real_1): Likewise.
24304         * tree.h: Update prototypes.
24305
24306         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
24307         (struct emit_status): Remove sequence_rtl_expr.
24308         (struct function): Remove x_rtl_expr_chain.
24309         (seq_rtl_expr, rtl_expr_chain): Remove.
24310         * function.c (struct temp_slot): Remove rtl_expr.
24311         (assign_stack_temp_for_type): Don't set it.
24312         (free_temp_slots, pop_temp_slots): Don't check it.
24313         (free_after_compilation): Don't clear x_rtl_expr_chain.
24314         (fixup_var_refs): Don't search it.
24315         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
24316         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
24317         or seq_rtl_expr.
24318         (push_topmost_sequence): Likewise.
24319         (end_sequence, init_emit): Likewise.
24320         (start_sequence_for_rtl_expr): Remove.
24321         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
24322         * rtl.h (preserve_rtl_expr_result): Remove.
24323
24324 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
24325
24326         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
24327         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
24328         typos.
24329
24330 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
24331
24332         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
24333         (STANDARD_STARTFILE_PREFIX_2): Define.
24334         (standard_startfile_prefix_1): Initialize to
24335         STANDARD_STARTFILE_PREFIX_1.
24336         (standard_startfile_prefix_2): Initialize to
24337         STANDARD_STARTFILE_PREFIX_2.
24338         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
24339         (STANDARD_STARTFILE_PREFIX_1): Define.
24340         (STANDARD_STARTFILE_PREFIX_2): Define.
24341         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
24342         (STANDARD_STARTFILE_PREFIX_2): Document.
24343
24344 2004-07-01  Richard Henderson  <rth@redhat.com>
24345
24346         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
24347         in order to disable scalarization.  Instead set a flag and wait
24348         for a candidate decl.
24349
24350 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
24351
24352         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
24353         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
24354         Use terminology "testsuite" and "enumerated".
24355
24356 2004-07-01  Richard Henderson  <rth@redhat.com>
24357
24358         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
24359         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
24360         (initial_return_save): Likewise.
24361         (flush_queued_reg_saves): Remap register numbers.
24362         (dwarf2out_return_reg): Likewise.
24363
24364 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24365
24366         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
24367
24368         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
24369         access functions for lower bound and element size and only output
24370         if lower bound nonzero or element size not same as that of type.
24371         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
24372
24373 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24374
24375         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
24376
24377 2004-07-01  Per Bothner  <per@bothner.com>
24378
24379         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
24380
24381 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
24382
24383         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
24384         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
24385         first operand.  Don't optimize if the bitfield is volatile.
24386
24387 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24388
24389         * c-pretty-print.c (pp_c_postfix_expression): Handle
24390         floating-point comparison operators.
24391         (pp_c_expression): Pass floating-point comparison
24392         operators to pp_c_postfix_expression.
24393
24394 2004-07-01  Roger Sayle  <roger@eyesopen.com>
24395
24396         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
24397         rtx_cost instead of "had_mult" to determine whether the transformed
24398         expression is cheaper than the original.
24399
24400 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
24401
24402         * alias.c (get_alias_set, canon_rtx, get_addr,
24403         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
24404         Use MEM_P.
24405         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
24406         expand_builtin): Likewise.
24407         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
24408         Likewise.
24409         * combine.c (can_combine_p, combinable_i3pat, try_combine,
24410         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
24411         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
24412         record_dead_and_set_regs_1, get_last_value_validate,
24413         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
24414         * cse.c (check_dependence, canon_hash, equiv_constant,
24415         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
24416         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
24417         count_reg_usage): Likewise.
24418         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
24419         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
24420         cselib_record_sets): Likewise.
24421         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
24422         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
24423         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
24424         * df.c (df_uses_record): Likewise.
24425         * dojump (do_jump): Likewise.
24426         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
24427         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
24428         decl_start_label): Likewise.
24429         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
24430         operand_subword, change_address_1, make_safe_from): Likewise.
24431         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
24432         stabilize, force_not_mem): Likewise.
24433         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
24434         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
24435         * expr.c (convert_move, convert_modes, emit_block_move,
24436         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
24437         emit_move_insn_1, expand_assignment, store_expr,
24438         store_constructor_field, store_constructor, store_field,
24439         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
24440         Likewise.
24441         * final.c (cleanup_subreg_operands, alter_subreg,
24442         get_mem_expr_from_op): Likewise.
24443         * flow.c (notice_stack_pointer_modification_1,
24444         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
24445         Likewise.
24446         * function.c (mark_temp_addr_taken, preserve_temp_slots,
24447         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
24448         optimize_bit_field, flush_addressof, purge_addressof_1,
24449         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
24450         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
24451         keep_stack_depressed): Likewise.
24452         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
24453         noce_process_if_block, find_memory): Likewise.
24454         * integrate.c (subst_constants, allocate_initial_values): Likewise.
24455         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
24456         update_equiv_regs): Likewise.
24457         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
24458         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
24459         * optabs.c (expand_abs, emit_unop_insn): Likewise.
24460         * passes.c (rest_of_handle_final): Likewise.
24461         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
24462         move2add_note_store): Likewise.
24463         * ra-build.c (detect_remat_webs): Likewise.
24464         * ra-debug.c (dump_static_insn_cost): Likewise.
24465         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
24466         * recog.c (validate_change, apply_change_group, cancel_changes,
24467         validate_replace_rtx_1, general_operand, register_operand,
24468         nonmemory_operand, push_operand, pop_operand, memory_operand,
24469         indirect_operand, asm_operand_ok, offsettable_memref_p,
24470         offsettable_nonstrict_memref_p, constrain_operands,
24471         store_data_bypass_p): Likewise.
24472         * reg-stack.c (subst_stack_regs_pat): Likewise.
24473         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
24474         copy_cost, reg_scan_mark_refs): Likewise.
24475         * regmove.c (optimize_reg_copy_3, stack_memref_p,
24476         combine_stack_adjustments_for_block): Likewise.
24477         * regrename.c (copyprop_hardreg_forward_1): Likewise.
24478         * reload.c (can_reload_into, push_reload, decompose, immune_p,
24479         find_reloads, find_reloads_address, find_reloads_address_1,
24480         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
24481         find_equiv_reg): Likewise.
24482         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
24483         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
24484         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
24485         delete_address_reloads): Likewise.
24486         * resource.c (mark_referenced_resources): Likewise.
24487         * rtlanal.c (get_jump_table_offset, count_occurrences,
24488         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
24489         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
24490         num_sign_bit_copies1): Likewise.
24491         * rtlhooks.c (gen_lowpart_general): Likewise.
24492         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
24493         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
24494         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
24495         sdbout_global_decl): Likewise.
24496         * simplify-rtx.c (simplify_subreg): Likewise.
24497         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
24498         expand_anon_union_decl, expand_end_case_type): Likewise.
24499         * unroll.c (calculate_giv_inc): Likewise.
24500         * var-tracking.c (stack_adjust_offset_pre_post,
24501         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
24502         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
24503         vt_add_function_parameters): Likewise.
24504         * varasm.c (make_var_volatile, notice_global_symbol,
24505         assemble_external, decode_addr_const, mark_weak,
24506         default_encode_section_info): Likewise.
24507
24508 2004-07-01  Steven Bosscher  <stevenb@suse.de>
24509
24510         * stmt.c (check_seenlabel): Remove.
24511         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
24512
24513 2004-07-01  Richard Henderson  <rth@redhat.com>
24514
24515         * function.h (struct function): Remove x_function_call_count.
24516         (function_call_count): Remove.
24517         * calls.c (expand_call): Don't set it.
24518         * integrate.c (copy_rtx_and_substitute): Likewise.
24519
24520         * function.h (struct function): Remove x_cleanup_label.
24521         (cleanup_label): Remove.
24522         * stmt.c (expand_value_return): Don't use it.
24523         * function.c (free_after_compilation): Don't set it.
24524         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
24525         * cfgexpand.c (tree_expand_cfg): Update call.
24526         * tree.h (expand_function_start): Update decl.
24527
24528 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
24529
24530         PR c/1027
24531         * c-lang.c (c_initialize_diagnostics): Move from here ...
24532         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
24533         (c_tree_printer): Use pretty-printer to format %T.
24534         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
24535         before '*' if not C++.
24536         (pp_c_direct_abstract_declarator): Don't try to print array upper
24537         bound for flexible array members.
24538         * c-tree.h: Include "diagnostic.h".
24539         (c_initialize_diagnostics): Declare.
24540         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
24541         * c-format.c (format_type_warning): New function.  Improve
24542         diagnostics for incorrect format argument types.
24543         (check_format_types): Use it.  Add two parameters.  Use the
24544         TYPE_MAIN_VARIANT of wanted_type.
24545         (check_format_info_main): Pass new parameters to
24546         check_format_types.
24547         (struct format_wanted_type): Update comment.
24548
24549 2004-07-01  Nick Clifton  <nickc@redhat.com>
24550
24551         * target.h (struct gcc_target): Add new field to struct cxx:
24552         import_export_class.
24553         * target-def.h (TARGET_CXX): Initialise the new field.
24554         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
24555         the new field.
24556         * doc/tm.texi: Document the new target hook.
24557
24558 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24559
24560         * builtins.c (fold_builtin_classify): Fix typo.
24561
24562 2004-07-01  Richard Henderson  <rth@redhat.com>
24563
24564         * function.c (identify_blocks, identify_blocks_1): Remove.
24565         * function.h (identify_blocks): Remove.
24566         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
24567
24568 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24569
24570         * builtins.c (fold_builtin_classify): New.
24571         (fold_builtin_unordered_cmp): Fix commentary.
24572         (fold_builtin): Use it.
24573         * builtins.def: Define builtins for isnan,
24574         isnanf, isnanl, finite, finitef, finitel,
24575         isinf, isinff, isinfl.
24576
24577 2004-07-01  Richard Henderson  <rth@redhat.com>
24578
24579         * function.h (struct function): Remove dont_emit_block_notes.
24580         * gimple-low.c (lower_function_body): Don't set it.
24581         * cfgexpand.c (expand_block): Don't check it.
24582         * cfglayout.c (insn_locators_initialize): Likewise.
24583         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
24584         * passes.c (rest_of_compilation): Likewise.
24585         * stmt.c (expand_start_bindings_and_block): Likewise.
24586         (expand_end_bindings): Likewise.
24587
24588 2004-07-01  Richard Henderson  <rth@redhat.com>
24589
24590         * cgraph.h (cgraph_build_static_cdtor): Declare.
24591         * cgraphunit.c (cgraph_build_static_cdtor): New.
24592         * c-objc-common.c (build_cdtor): Use it.
24593         * coverage.c (create_coverage): Likewise.
24594         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
24595         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
24596
24597 See ChangeLog.11 for earlier changes.